Three years ago, I wrote about bubble memory, a cool magnetic storage technology in the ‘80s. Today, we’ll go further back in time to look at magnetic-core memory! I sourced a 1KB core memory board from 1976 a few months ago. The principle of these memories is simple to understand. A core – the ferrite torus or doughnut – can be magnetized using a traversing electric current. This permanent magnetic field can have two polarities. We use this property to represent a 0 or a 1. To store information into the tori, engineers organized them along a grid of horizontal and vertical wires, with a tore woven at each intersection. To memorize words, multiple networks can be organized and accessed in parallel. Physically, these planar grids of tori are stacked, one per bit.
If you look closely to core memory pictures, you may see one or two additional long winding wires going thru every torus following complex folded and angled patterns. They are the sense and inhibit wires. In short, the former is used during the reading of a set bit from a torus, and the latter is used to reset – ore prevent setting – a bit in the torus. Last, it must be noticed that a read operation is destructive in such memory. It means that once you read the state of a torus, it is lost. This is why, often, after a read, you have a write cycle to regenerate the lost information.
To store a bit into a torus, a current is sent – the wires are driven – to the horizontal and vertical wires intersecting at the target torus (think about these lines as the x and y address of the torus). The current is split between the lines, so only the target torus is traversed by the amount of current needed to change the magnetic field’s polarity of the tori. Sounds like an AND gate to me — more on this in a jiffy. A hysteresis – the best friend of engineers – of the magnetic materials in use helps the practical implementation of these operations. To store a 0, the inhibit wire is driven as-well, which reduces the amount of net current traversing the torus, so it prevents the magnetic polarity change.
To read a bit stored into a torus, you need to write a 0 state into the torus. To do so, you drive the x and y lines as for a write. If the torus was storing a 0, nothing happens, and nothing is detected on the sense wire. If the torus was saving a 1, the polarity changes and a spike is detected on the sense wire. And of course, if you had a 1, now you have a 0 (as noted earlier, the read is destructive).
Also, as hinted above, this technology can be used to do binary logic. If you want to learn more, I recommend the excellent video by Jeri Ellsworth: Magnetic Logic – Forgotten Technology
Last, I cannot resist sharing with you a few of the pictures I took at the MIT museum of various magnetic-core memory devices, including the ones of the Apollo guidance computer. Enjoy!