RAM is 59
Today is the anniversary of the day on which Jay Forrester patented the first really practical RAM. I worked for him in school doing odd jobs around the office when I was in school. He had one of these early planes of ferrite cores over his desk.
He designed this when he was developing Whirlwind. Whirlwind was originally designed with Williams tubes as memory. A Williams tube is a variation on what is called delay line memory. They store bits the same way a juggler “stores” balls. The bits keep moving around a track and you can read them or write them as they go by. In the case of a Williams tube, the bits are kept in flight on the screen of a tiny TV set. A sensor over the front of the screen feeds back to the input. The time it takes to refresh the screen is the time it takes the bits to go around.
Williams tubes are interesting devices, and were probably the best memory devices available at the time, but they obviously have some latency issues. When you want to read or write a bit, you have to wait for it to go by. Whirlwind was originally designed to drive a flight simulator. It was one of the very first real time systems. The latency of the Williams tubes was a problem. So Jay came up with a really interesting solution. If you look at that picture above, you’ll see a 2D grid of wires with a little metal donut around each intersection. The donuts are ferrite cores. They’re commonly used in small transformers. They’re good at holding a magnetic field, and they can hold one that is either clockwise or counterclockwise. That’s all you need to store a bit. You can use a clockwise magnetic field to represent a 1 and a counterclockwise field to represent a 0. An Wang (founder of Wang) was making memory out of ferrite cores in 1949, but he arranged them sequentially like the existing delay line memory devices.
Forrester’s innovation was arranging them in the grid you see above. You can set the field in a particular core by applying an electric current to one of the row wires and one of the column wires. This will set the field of the donut which surrounds the intersection of those two wires. This means that you can read or write any bit at any time. You don’t need to wait for it to come around.
The bits in a modern computer’s memory are organized in rows and columns just like the donuts in that picture. They’re just a lot smaller. The story around the office was that these early memory planes were built by local women who were skilled knitters. They would spend their days threading those little donuts onto the intersecting wire grids. That wouldn’t scale down to today’s memory scales.
Jay Forrester is a very interesting guy. By the time I knew him, he was working on something called System Dynamics, but he was interested in just about anything you could think of. I have a lot of fond memories of him walking around the office with his hands behind his back asking people what they were working on and really listening to their answers. I’ve always enjoyed being around people who see the world as a collection of interesting puzzles.