The Refreshing Persistence of Memory
November 24, 2018 11:04 PM   Subscribe

This is a fun and fascinating read, even/especially if you don't know anything about computer memory. It's wonderful to see someone chase down a question and leave such great trailsign for any who might want to follow.
posted by freebird (14 comments total) 29 users marked this as a favorite
mind you refresh is not a mystery, maybe it's one of those things that each generation discovers again for itself
posted by mbo at 3:47 AM on November 25, 2018 [4 favorites]

Must be tricky to get that right with a melted clock.
posted by pompomtom at 4:00 AM on November 25, 2018 [6 favorites]

If you'd like to play around with core memory, you can get an Arduino core memory shield.
posted by zamboni at 5:14 AM on November 25, 2018 [9 favorites]

Old core memory modules are pretty available on ebay or such, kind of beautiful in a certain obsolete tech way. The electrical engineering to keep these things working was amazing. Very happy to have all the details abstracted away and can just push data magically into the cloud. Thinking about what actually occurs after you click the save icon really messes with your head way before you get down to electrical signals.

Static memory is a thing and does not need a refresh cycle, it's slower and more expensive than dynamic memory so important but speed (and cost) wins and is really worth the extra electronics.
posted by sammyo at 7:12 AM on November 25, 2018 [1 favorite]

I’m completely uninterested in the research question posed, but the method used (and the clear explanation/documentation) is still quite fascinating! FFT FTW!
posted by darkstar at 7:57 AM on November 25, 2018 [2 favorites]

Early memory cells had to be refreshed much more often, like 500 times a second. (Luckily, there wasn't as much RAM to refresh.) But early PCs and video games were pretty much designed around DRAM refresh. You ended up with designs like the Apple ][, where the video subsystem is scanning through RAM anyway, so might as well make it refresh all the RAM too. You also had CPUs like the Z80 that had DRAM refresh as a first-class feature, performing it when the CPU didn't need the memory bus.
posted by RobotVoodooPower at 8:10 AM on November 25, 2018 [3 favorites]

Furthermore, memory chips are responsible for a nontrivial share of typical computer's power draw, and large chunk of that power is spent on performing the refreshes.

This is something that surprised me when I first encountered it[0] some years back, and always makes me wonder about the drive to cram a terabyte of memory into high-end laptops and then spend countless hours on making software go to sleep more aggressively. If you care about battery life, get only as much RAM as you need and no more. (And don't include any spinning disks, but that is pretty much a done deal at this point.)


[0]: Years ago I had a job working in hardware certification for a Linux distro where we had labs chock full of various types of hardware for doing daily tests, checking boot times, testing to make sure previously supported hardware still worked with newer kernels, etc.

But having all that hardware meant we could do interesting (and not *at all* rigorous) experiments. Do Intel or AMD processors run a particular chunk of code faster? (Yes, for each, depending on the code and compiler, about as you'd expect.) How much does SSD vs. spinning disk affect boot time? (A ton.)

But the most interesting one to me was "what component affects battery life the most?" I assumed it would be video hardware or processor speed, but there was a very clear inverse correlation between RAM size and battery life, at least when just running test code without hitting disk too much.

I've always slightly underspecced my mobile systems on RAM since then.

posted by fader at 8:45 AM on November 25, 2018 [5 favorites]

> Must be tricky to get that right with a melted clock.

Even a melted clock is fish twice a bicycle.
posted by ardgedee at 10:17 AM on November 25, 2018 [11 favorites]

A while ago I read 'Turing's cathedral' which is petty much a history of John von Neumann at the IAS. At some point they describe how vacuum tubes were used for memory in the early days. Turns out it's pretty much just a crt TV where the cathode ray places evenly spaced dots on the screen, with exactly the same scan line timing problems that later computer graphics had... Morale of the story: Everything old is slightly less old again, I guess.
posted by kaibutsu at 10:57 AM on November 25, 2018

Everything old is slightly less old again

You might even say it refreshes.
posted by freebird at 11:21 AM on November 25, 2018 [3 favorites]

Came for the surrealism, stayed for the content.

As someone who knows a fair bit about how individual components work, but almost nothing about what happens at levels between a single transistors and a high level programming language, this was a perfectly tuned article. Thanks!
posted by eotvos at 1:15 PM on November 25, 2018

kaibutsu, you must be talking about a Williams tube.
posted by RobotVoodooPower at 3:24 AM on November 26, 2018 [1 favorite]

You also had CPUs like the Z80 that had DRAM refresh as a first-class feature, performing it when the CPU didn't need the memory bus.

Which Sinclair used as part of the video display system on its early Z80 computers. Because why not. (The unexpanded ZX81 had 2 x 2114 static RAMs anyway, but the Spectrum used the ULA to refresh its DRAMs. There were quite a few experiments to see how long DRAM did keep its data, as the early chips had quite big capacitors in the cells and quite fat insulator layers. You could be very parsimonious with your refresh cycling with the right parts.)
posted by Devonian at 6:44 PM on November 26, 2018 [3 favorites]

Now look here you I am always parsimonious with my refresh cycling.
posted by freebird at 9:37 PM on November 29, 2018

« Older Tapers: picking up the sound at its moment of...   |   hi tim, kathleen thought yooh should have this Newer »

This thread has been archived and is closed to new comments