A 16×16 cm area core memory plane of 128×128 bits, i.e. 2048 bytes (2KB)
Magnetic core memory, or ferrite-core memory, is an early form of computer memory. It uses small magnetic ceramic rings, the cores, to store information via the polarity of the magnetic field they contain. Such memory is often just called core memory, or, informally, core.
The earliest work on core memory was carried out by the Shanghai-born American physicist, An Wang, who created the pulse transfer controlling device in 1949. The name referred to the way that the magnetic field of the cores could be used to control the switching of current in electro-mechanical systems. Wang was working at Harvard University's Computation Laboratory at the time, but unlike MIT, Harvard was not interested in promoting inventions created in their labs. Instead Wang was able to patent the system on his own.
Jay Forrester's group, working on the Whirlwind project at MIT, became aware of this work. This machine required a fast memory system for realtime flight simulator use. At first, Williams tubes —a storage system based on cathode-ray-tubes—were used, but these devices were always temperamental and unreliable.
Two key inventions led to the development of magnetic core memory, which enabled the development of computers as we know them. The first, An Wang's, was the write-after-read cycle, which solved the puzzle of how to use a storage medium in which the act of reading was also an act of erasure. The second, Jay Forrester's, was the coincident-current system, which enabled a small number of wires to control a large number of cores (see Description section below for details).
Core arrays were manually assembled; the work was performed under microscopes and required fine motor control. Initially garment workers were used.
By the late 1950s industrial plants had been set up in the far east to build core. Inside, hundreds of low-paid workers strung cores for cents a day. This lowered the cost of core to the point where it had become largely universal as main memory by the early-1960s, replacing both the low-cost/low-performance drum memory as well as the high-cost/high-performance systems using vacuum tubes as memory.
Although the manufacture of core memory was never automated, costs almost followed the not-yet-formulated Moore's Law; over the lifetime of the technology costs began at roughly a dollar a bit and eventually approached roughly $0.01 per bit. Core was in turn replaced by silicon memory chips (RAM) in the early 70s.
Dr. Wang's patent was not granted until 1955, and by this time core was already in use. This started a long series of lawsuits, which eventually ended when IBM paid Wang several million dollars to buy the patent outright. Wang used the funds to greatly increase the size of Wang Laboratories.
Core memory was part of a family of related technologies, now largely forgotten, which exploited magnetic properties of materials to perform switching and amplification. By the 1950's, vacuum-tube electronics was well-developed and very sophisticated, but tubes were fragile, and the use of heated filaments made them short-lived, high in power consumption, and unstable in their operating characteristics. Magnetic devices had many of the virtues of the transistor and solid-state devices that would replace them, and saw considerable use in military applications. A notable example was the portable (truck-based) MOBIDIC computer developed by Sylvania for the U. S. Army Signal Corps in the late fifties.
Close-up of the device shown above: The distance between the rings is ca. 1 mm
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), so many cores are needed to provide a reasonable amount of memory. Each plane stored one bit of an array of machine words, the full word was provided by a stack of planes. Only one word could be accessed in a single cycle.
Core relies on the hysteresis of the magnetic material used to make the rings. Only a magnetic field over a certain intensity (generated by the wires through the core) 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 required to cause this change. Only the combined magnetic field generated where the X and Y lines cross is sufficient to change the state, other cores will see only half the needed field, 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 field to point in one direction or the other (north or south).
Other forms of core memory were used for other purposes.
Register memory was often provided using word line core memory. This form of core memory typically wove three wires through each core on the plane, word read, word write, and bit sense/write, To read or clear words, the full current is applied to one or more word read lines; this clears the selected cores and any that flip induce voltage pulses in their bit sense/write lines. For read, normally only one word read line would be selected; but for clear, multiple word read lines could be selected while the bit sense/write lines ignored. To write words, the half current is applied to one or more word write lines, and half current is applied to each bit sense/write line for a bit to be set. For write, multiple word write lines could be selected. This offered a speed advantage over X/Y line coincident-current in that multiple words could be cleared or written with the same value in a single cycle. A typical machine's register set usually used only one small plane of this form of core memory.
Another form of core memory called core rope memory provided read-only storage. In this case, the cores were simply used as transformers; no information was actually stored magnetically within the core.
Reading and writing
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 at half power in the direction that causes the core to flip to whatever polarity the machine considers to be zero. If the ring was already in the 0 state nothing will happen. However if the ring was in the 1 state it will flip to 0. If this flip occurs, a brief pulse of power will be induced into the Sense line, saying, in effect, that the memory location used to hold a 1. If the pulse is not seen that meant no flip occurred, so the ring must have already been in the 0 state. Note that every read forces the ring in question into the 0 state, so reading is destructive, which is one of the oddities of core memory.
Writing is similar in concept, but always consists of a "flip to 1" operation, relying the memory already having been set to the 0 state in a previous read. If the ring in question is to hold a 1, then the operation proceeds normally and the ring flips to 1. However if the ring is to instead hold a zero, a small amount of current is sent into the Inhibit line, enough to drop the combined field from the X and Y lines below the amount needed to make the flip. This leaves the core in the 0 state.
Note that the Sense and Inhibit wires are used one after the other, never at the same time. For this reason later core systems combined the two into a single wire, and used circuitry in the memory controller to switch the duty of the wire from Sense to Inhibit.
Due to the fact that core always requires a write after read, many computers included instructions that took advantage of this. These instructions would be used when the same location was going to be read, changed and then written, such as an increment operation. In this case 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. When the instruction was complete the controller would be unpaused, and the write would occur with the new value. For certain types of operations, this effectively doubled the speed.
The speed of early core memories can be characterized in today's terms as being very roughly comparable to a clock speed of 1 MHz (0.001 GHz) (equivalent to early 1980s home computers, like the Apple II and Commodore 64). Early core memory systems had cycle times of about 6µs, which had fallen to 1.2µs by the early 1970s, and by the mid-70s it was down to 600ns (0.6µs). Everything possible was done in order to speed access, including the simultaneous use of multiple grids of core, each storing one bit of a data word. For instance a machine might use 32 grids of core with a single bit of the 32-bit word in each one, and the controller could access the entire 32-bit word in a single read/write cycle.
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 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 (see also MOSFET).
A characteristic of core was that it is current-based, not voltage-based. The "half select current" was typically about 400 mA for later, smaller, faster cores. Earlier, larger cores required more current.
Another characteristic of core is that the hysteresis loop was temperature sensitive, the proper half select current at one temperature is not the proper half select current at another temperature. So the memory controllers could include temperature sensors (typically a thermistor) to check the temperature and adjust the current levels to correct for temperature changes. An example of this is the core memory used by Digital Equipment Corporation for their PDP-1 computer; this strategy continued through all of the follow-on core memory systems built by DEC for their PDP line of air-cooled computers. Another method of handling the temperature sensitivity was to enclose the magnetic core "stack" in a temperature controlled oven. Examples of this are the heated air core memory of the IBM 1620 (which could take up to 30 minutes to reach operating temperature, about 106°F, ~41°C) and the heated oil bath core memory of the IBM 709.
- Although computer memory long ago moved to silicon chips, a file which is a dump of memory produced after a program error is still known as a core dump.
- Core Memory (http://www.columbia.edu/acis/history/core.html)
- Navy Manual (http://www.ed-thelen.org/comp-hist/navy-core-memory-desc.html)
- Core Memory on the PDP-11 (http://www.psych.usyd.edu.au/pdp-11/core.html)