The Wonderful World of Core Memory!

in #education3 years ago

Every computing device we use today has RAM, or Random Access Memory. RAM is a form of data storage. Unlike a hard drive, it is used for temporary storage. The computer uses it to store information that it needs to access quickly or often.

RAM goes a long ways back and has had many different variations over the years. For this post I'll dive into the magic science behind Magnetic-core Memory.

Magnetic-core Memory, referred to as Core Memory from here on, goes back to the late 1940s. It remained in use up through the early 1970s. It was expensive and time consuming to build. Early units were built by hand, and later on they were threaded using machines. At one point memory cost around 1$ per bit!

Core Memory is made up of an array of ferrite cores, or toroids, all wired together. Each one of these toroids represents a binary 1 or 0. How does a computer know whether it's a 1 or a 0 stored there? The answer is magnetic fields! (Or in more scientific terms, its the hysteresis of the magnetic material making up the toroids).

Essentially the polarity of the magnetic field in the core/toroid determines whether it stores a binary 1 or 0. The X and Y lines determine this polarity change. The toroids will only change their state when a certain level of current is run through it. The X and Y lines both supply half of this required current. When the two currents intersect at a toroid it will change its polarity, thus changing the bit to a 1 or a 0.

Core Memory.png

One thing about Core Memory is that reads are destructive, meaning after a location is read it is wiped. By accompanying every read cycle with a write cycle to replace the data, we can get around this problem. The sense/inhibit line is used to detect or change the contents of a specific memory location.

So when the computer decides to read from memory the address will be converted to an X/Y coordinate and try to flip that bit to a 0. If it was already 0 then the state is unaffected, and if it was a 1 then the core changes polarity creating a voltage pulse into the sense/inhibit line. The sense/inhibit line takes this pulse (or lack thereof) and tells the computer whether it was a 1 or 0 stored in the bit being read.

Since reads are accompanied by writes, the computer assumes that the memory is in a 0 state before executing a write. To write a 1 the desired address is selected with the X/Y coordinates and the lines are driven with current to change the magnetic polarity of the bit. To write a 0 the X/Y lines are driven and the sense/inhibit line is driven with the same amount of current flowing in the opposite direction of the X/Y lines. This reduces the overall current flowing through that bit and inhibits the writing of a 1.

One last interesting point is that Core Memory is non-volatile. This means that when the power is turned off the cores retain their magnetic polarities.

Now, I am by no means an expert on vintage computers or physics, but I'm an avid learner and love to share what I've learned through my studies and projects.