One form of random access computer memory is called magnetic core memory. To store information, it uses small magnetic rings that are threaded through the magnetic field. Presently, memory can still be referred to as core memory, even though the majority of it has moved to silicon chips. Core is mostly seen when recording contents of memory at the time of errors.
The history of core memory begins with Frederick Viehe. In 1947, he claimed the first patent of the magnetic core memory by developing it device in his home laboratory. Later, other American physicists made the pulse transfer controlling device, which uses the magnetic field of the cores to control the switching of currents in electro-mechanical systems. Two crucial inventions led to the development of magnetic core memory in 1951, which enabled the development of computers as we know them. The first was the write-after-read cycle, which made the act of reading an act of erasure as well. The second was the coincident-current system, which allowed a small number of wires to control a large number of cores. The coincident-current system required one of the wires to be run at a right angle to the cores by hand. The cost of core memory started at about US $1.00 per bit and over time has decreased to about US $0.01 per bit.
X/Y line coincident-current is the most common form of core memory which is used for the main memory of a computer. It is made of many small ferromagnetic ceramic rings held together in a plane. On the plane the wires are woven through the holes in the middle of the cores. The first systems had four wires, X, Y, Sense and Inhibit, but later cores combined them into one Sense/Inhibit line. Each ring stores one bit, and each bit could be accessed in one cycle. Each machine word in an array of words was spread over a stack of planes that would operate one bit of a word in parallel, allowing the full word to be read or written in one cycle.
The magnetic rings are essential to building core memory. The wires that pass through the cores create magnetic fields. If a magnetic field is greater than a certain intensity, then it can cause the core to change its magnetic polarity. To select a memory location, one of the X and one of the Y lines are driven with half the current needed. By forcing the current through the wires in a particular direction, the field causes the core’s magnetic flux to circulate in one direction.
Reading from core memory can be difficult to understand. Basically, the read operation consists of doing a “flip to 0″ operation to the particular bit that is driving the selected X and Y lines and flipping the core to whatever polarity the machine considers to be zero. Once the flip occurs, a current pulse is sent into the Sense line. If there was no pulse, that means that a flip didn’t happen and the core was already in the 0 state. Writing core memory is similar, but always consists of a “flip to 1″ operation. To write core, the memory must have been set to the 0 state in a previous read, and then the current in the X and Y lines goes in the opposite direction as it did for the read. Next, the current is sent into the Inhibit line, which drops the combined field to half of the field needed for a flip. This leaves the core in the 0 state. With core memory, each read must be followed immediately by a write.
One advantage to core memory is that it has the ability to hold onto its contents indefinitely without power. It is also relatively unaffected by EMP and radiation. These were important advantages for some applications like first generation industrial programmable controllers, and military installations and vehicles. Another characteristic of core was that it is current-based, not voltage-based. Also, the hysteresis loop was temperature sensitive, meaning that the proper half select current at one temperature is not the proper half select current at another temperature. Because of this, memory controllers began including temperature sensors to adjust the current levels correctly for temperature changes. Sometimes engineers wondered why the core was heated instead of cooled. This was because the primary requirement was a consistent temperature, and it was easier and more cost efficient to maintain a constant temperature well above room temperature than one at or below it.
Diagnosing hardware problems in core memory proved to be a challenge. It required time-consuming diagnostic programs to be run as well as other quick tests. While a quick test checked if each bit could contain a one and a zero, the diagnostics took several hours to test the core memory with worst-case patterns. With the majority of computers having only one core memory board, these diagnostics also moved themselves around in memory, making it possible to test every bit. Often errors could be resolved by tapping the printed circuit board with the core array on a table, which could change the position of the cores to the wires running through and could fix the problem. The procedure was rarely needed, though, as core memory proved to be very reliable compared to other computer machinery.