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!
4 thoughts on “Magnetic-Core Memory”
Hi Jamel – just wanted to let you know that the bigger on-click images fail to load, apparently everywhere on the website – which is a pity, since these are usually great photos.
Otherwise, as usual, thanks for the article!
Hi Norbert, thanks for the heads-up.
I tried myself, I clicked on one of the images in a grid of a post, and I obtained a “the image could not be loaded” message. I guess that this is the problem you are reporting. If so, this is a “user error”. The ”user” being *me* of course…
I’ve fixed the Core Memory post, as well as the last one per today. Unfortunately, I cannot go back and fix all of them at once 🙁
So, I will check that I don’t make the same mistake for my new posts. My intent is to allow my readers to access the media of my posts freely. So, thank you for the heads-up, really appreciated!
If there is a photo or video that you would like to download, shoot me an email and I will be happy to share.
if it’s just a matter of paths, consider some server directive (htaccess, etc) to fix all posts at once.
If I’m not mistaken, there’s a pattern where an image should include dimensions and an extension, e.g., “IMG_nnnn-300×225.jpg”, an address “IMG_nnnn-2” is loaded instead. I guess, this could be fixed by a directive based on a regular expression looking for “/IMG_” and the respective end of the path/filename. (Using some default dimensions, if these should be required, may be better than having no images at all, since you put quite some effort into them.)