Core Rope Memory
Core rope memory is a form of read-only memory (ROM) for computers, first used by early NASA Mars probes and then in the Apollo Guidance Computer (AGC) designed by MIT and built by Raytheon.
A relatively large (by the standards of the time) amount of data could be stored in a small installed volume of core rope memory (72 kilobytes per cubic foot; roughly 2.5 megabytes per cubic meter); about 18-folda the amount of data per volume compared to standard read-write core memory.
The Block II Apollo Guidance Computer (AGC) used 36,864 sixteen-bit words of core rope memory (placed within one cubic foot) and 4,096 words of magnetic core memory (within two cubic feet). Other machines will have somewhat different ratios between the two memory types.
Magnetic core memory is an early form of random access computer memory. It uses small magnetic rings, the cores, through which wires are threaded to store information via the polarity of the magnetic field they contain. Such memory is often just called core memory, or, informally, core.
How core memory works:
The most common form of core memory, X/Y line coincident-current – used for the main memory of a computer, consists of a large number of small ferrite (ferromagnetic ceramic) rings — cores— held together in a grid structure (each grid called a plane), with wires woven through the holes in the cores' middle. In early systems there were four wires, X, Y, Sense and Inhibit, but later cores combined the latter two wires into one Sense/Inhibit line. Each ring stores one bit (a 0 or 1). One bit in each plane could be accessed in one cycle, so each machine word in an array of words was spread over a stack of planes. Each plane would manipulate one bit of a word in parallel, allowing the full word to be read or written in one cycle.
Core relies on the hysteresis of the magnetic material used to make the rings. Wires that pass through the cores create magnetic fields. Only a magnetic field greater than a certain intensity ("select") 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 ("half-select") required to cause this change. Only the combined magnetic field generated where the X and Y lines cross (a logical AND function) is sufficient to change the state; other cores will see only half the needed field ("half-selected"), or none at all.
By driving the current through the wires in a particular direction, the resulting induced field forces the selected core's magnetic flux to circulate in one direction or the other (clockwise or counterclockwise). One direction is a stored 1, while the other is a stored 0.
Close-up of a core plane similar to the one shown below. The distance between the rings is roughly 1 mm (0.04 in). The green horizontal wires are X; the Y wires are dull brown and vertical, toward the back. The sense wires are diagonal, colored orange, and the inhibit wires are vertical twisted pairs.
Reading from core memory is somewhat complex. Basically the read operation consists of doing a "flip to 0" operation to the bit in question, that is, driving the selected X and Y lines in the direction that causes the core to flip to whatever polarity the machine considers to be zero. If the core was already in the 0 state, nothing will happen. However if the core was in the 1 state it will flip to 0. If this flip occurs, a brief current pulse is induced into the Sense line, saying, in effect, that the memory location used to hold a 1. If the pulse is not seen, that means no flip occurred, so the core must have already been in the 0 state. Note that every read forces the core in question into the 0 state, so reading is destructive, which is one of the attributes of core memory.
A fundamental principle of core memory is that each read must be followed immediately by a write, to restore the value that is always destroyed by the read operation. Many computers began to include instructions that took advantage of this fact; if a location was going to be read, changed and re-written (for example by an increment operation), the computer would ask the memory controller to do the read, but then signal it to pause before doing the write that would normally follow. Once the increment instruction was complete the controller would be unpaused, and the usual write would occur, but using the new value. For certain types of operations, this effectively doubled the performance.
These amazing devices were assembled by third world garment workers. By hand. Under microscopes. If you have any doubt that this is true, take a look at these close-up shots that clearly show that this is done by hand.
Core memory is non-volatile storage – it can retain 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, military installations and vehicles like fighter aircraft, as well as spacecraft, and led to core being used for a number of years after availability of semiconductor MOS memory (MOSFET). For example, the Space Shuttle flight computers initially used core memory, which preserved the contents of memory even through the Challenger's explosion and subsequent plunge into the sea in 1986.