
Incomputing,magnetic-core memory is a form ofrandom-access memory. It predominated for roughly 20 years between 1955 and 1975, and is often just calledcore memory, or, informally,core.
Core memory usestoroids (rings) of ahard magnetic material (usually asemi-hard ferrite). Each core stores onebit of information. Two or more wires pass through each core, forming an X-Y array of cores. When an electrical current above a certain threshold is applied to the wires, the core will become magnetized. The core to be assigned a value – orwritten – is selected by powering one X and one Y wire to half of the required current, such that only the single core at the intersection is written. Depending on the direction of the currents, the core will pick up a clockwise or counterclockwise magnetic field, storing a 1 or 0.
This writing process also causes electricity to beinduced into nearby wires. If the new pulse being applied in the X-Y wires is the same as the last applied to that core, the existing field will do nothing, and no induction will result. If the new pulse is in the opposite direction, a pulse will be generated. This is normally picked up in a separate "sense" wire, allowing the system to know whether that core held a 1 or 0. As this readout process requires the core to be written, this process is known asdestructive readout, and requires additional circuitry to reset the core to its original value if the process flipped it.
When not being read or written, the cores maintain the last value they had, even if the power is turned off. Therefore, they are a type ofnon-volatile memory. Depending on how it was wired, core memory could be exceptionally reliable.Read-onlycore rope memory, for example, was used on the mission-criticalApollo Guidance Computer essential toNASA's successful Moon landings.[1]
Using smaller cores and wires, thememory density of core slowly increased. By the late 1960s a density of about 32 kilobits per cubic foot (about 0.9 kilobits per litre)[citation needed] was typical. The cost declined over this period from about $1 per bit to about 1 cent per bit. Reaching this density requires extremely careful manufacturing, which was almost always carried out by hand in spite of repeated major efforts to automate the process. Core was almost universal until the introduction of the firstsemiconductor memory chips in the late 1960s, and especiallydynamic random-access memory (DRAM) in the early 1970s. Initially around the same price as core, DRAM was smaller and simpler to use. Core was driven from the market gradually between 1973 and 1978.
Even after magnetic-core memory became obsolete with semiconductors, main memory was often still referred to as "core", particularly by people used to the term who worked on older machines with magnetic-core memory. The process of copying the entire content of a computer's main memory to a disk file for further inspection by a system programmer is still called a "core dump". When core memory used for calculations was expensive and a scarce resource, technologies were developed toswap blocks of data "out of core" onto larger, slower storage. Algorithms whoseworking set size exceeds main memory came to be calledout-of-core algorithms, while in-core algorithms fit in main memory.
The basic concept of using the squarehysteresis loop of certain magnetic materials as a storage or switching device was known from the earliest days of computer development. Much of this knowledge had developed due to an understanding oftransformers, which allowed amplification and switch-like performance when built using certain materials. The stable switching behavior was well known in theelectrical engineering field, and its application in computer systems was immediate. For example,J. Presper Eckert andJeffrey Chuan Chu had done some development work on the concept in 1945 at theMoore School during theENIAC efforts.[2]
Robotics pioneerGeorge Devol filed a patent[3] for the first static (non-moving) magnetic memory on 3 April 1946. Devol's magnetic memory was further refined via 5 additional patents[4][5][6][7][8] and ultimately used in the firstindustrial robot. Frederick Viehe applied for various patents on the use oftransformers for building digital logic circuits in place ofrelay logic beginning in 1947. A fully developed core system was patented in 1947, and later purchased byIBM in 1956.[9] This development was little-known, however, and the mainstream development of core memory is normally associated with three independent teams.
Substantial work in the field was carried out by theShanghai-bornAmericanphysicistsAn Wang andWay-Dong Woo, who created thepulse transfer controlling device in 1949.[10] The patent described a type of memory that would today be known as adelay-line orshift-register system. Each bit was stored using a pair of transformers, one that held the value and a second used for control. Asignal generator produced a series of pulses that were sent into the control transformers at half the energy needed to flip the polarity. The pulses were timed so the field in the transformers had not faded away before the next pulse arrived. If the storage transformer's field matched the field created by the pulse, then the total energy would cause a pulse to be injected into the next transformer pair. Those that did not contain a value simply faded out. Stored values were thus moved bit by bit down the chain with every pulse. Values were read out at the end, and fed back into the start of the chain to keep the values continually cycling through the system.[11] Such systems have the disadvantage of not being random-access, to read any particular value one has to wait for it to cycle through the chain. Wang and Woo were working atHarvard University's Computation Laboratory at the time, and the university was not interested in promoting inventions created in their labs. Wang was able to patent the system on his own.
The MITProject Whirlwind computer required a fast memory system forreal-time aircraft tracking. At first, an array ofWilliams tubes—a storage system based oncathode-ray tubes—was used, but proved temperamental and unreliable. Several researchers in the late 1940s conceived the idea of using magnetic cores for computer memory, but MIT computer engineerJay Forrester received the principal patent for his invention of the coincident-current core memory that enabled the 3D storage of information.[12][13] William Papian of Project Whirlwind cited one of these efforts, Harvard's "Static Magnetic Delay Line", in an internal memo. The first core memory of32 × 32 × 16 bits was installed on Whirlwind in the summer of 1953. Papian stated: "Magnetic-Core Storage has two big advantages: (1) greater reliability with a consequent reduction in maintenance time devoted to storage; (2) shorter access time (core access time is 9 microseconds: tube access time is approximately 25 microseconds) thus increasing the speed of computer operation."[14]
In April 2011, Forrester recalled, "the Wang use of cores did not have any influence on my development of random-access memory. The Wang memory was expensive and complicated. As I recall, which may not be entirely correct, it used two cores per binary bit and was essentially a delay line that moved a bit forward. To the extent that I may have focused on it, the approach was not suitable for our purposes." He describes the invention and associated events, in 1975.[15] Forrester has since observed, "It took us about seven years to convince the industry that random-access magnetic-core memory was the solution to a missing link in computer technology. Then we spent the following seven years in the patent courts convincing them that they had not all thought of it first."[16]
A third developer involved in the early development of core memory wasJan A. Rajchman atRCA. A prolific inventor, Rajchman designed a unique core system using ferrite bands wrapped around thin metal tubes,[17] building his first examples using a convertedaspirin press in 1949.[9] Rajchman later developed versions of the Williams tube and led the development of theSelectron.[18]
Two key inventions led to the development of magnetic core memory in 1951. The first, An Wang's, was the write-after-read cycle, which solved the problem of how to use a storage medium in which the act of reading erased the data read, enabling the construction of a serial, one-dimensionalshift register (of 50 bits), using two cores to store a bit. A Wang core shift register is in the Revolution exhibit at theComputer History Museum. The second, Forrester's, was the coincident-current system, which enabled a small number of wires to control a large number of cores enabling 3D memory arrays of several million bits. The first use of magnetic core was in the Whirlwind computer,[19] and Project Whirlwind's "most famous contribution was the random-access, magnetic core storage feature."[20] Commercialization followed quickly. Magnetic core was used in peripherals of theENIAC in 1953,[21] theIBM 702[22] delivered in July 1955, and later in the 702 itself. TheIBM 704 (1954) and theFerranti Mercury (1957) used magnetic-core memory.
It was during the early 1950s thatSeeburg Corporation developed one of the first commercial applications of coincident-current core memory storage in the "Tormat" memory of its new range ofjukeboxes, starting with the V200 developed in 1953 and released in 1955.[23] Numerous uses in computing, telephony and industrialprocess control followed.
Wang's patent was not granted until 1955, and by that time magnetic-core memory was already in use. This started a long series of lawsuits, which eventually ended whenIBM bought the patent outright from Wang forUS$500,000.[24] Wang used the funds to greatly expandWang Laboratories, which he had co-founded with Dr. Ge-Yao Chu, a schoolmate from China.
MIT wanted to charge IBM $0.02 per bit royalty on core memory. In 1964, after years of legal wrangling, IBM paid MIT $13 million for rights to Forrester's patent—the largest patent settlement to that date.[25][26]
In 1953, tested but not-yet-strung cores costUS$0.33 each. As manufacturing volume increased, by 1970 IBM was producing 20 billion cores per year, and the price per core fell toUS$0.0003. Core sizes shrank over the same period from around 0.1 inches (2.5 mm) diameter in the 1950s to 0.013 inches (0.33 mm) in 1966.[27] The power required to flip the magnetization of one core is proportional to the volume, so this represents a drop in power consumption by a factor of 125.
The cost of complete core memory systems was dominated by the cost of stringing the wires through the cores. Forrester's coincident-current system required one of the wires to be run at 45 degrees to the cores, which proved difficult to wire by machine, so that core arrays had to be assembled under microscopes by workers with fine motor control.
In 1956, a group at IBM filed for a patent on a machine to automatically thread the first few wires through each core. This machine held the full plane of cores in a "nest" and then pushed an array of hollow needles through the cores to guide the wires.[28] Use of this machine reduced the time taken to thread the straight X and Y select lines from 25 hours to 12 minutes on a 128 by 128 core array.[29]
Smaller cores made the use of hollow needles impractical, but there were numerous advances in semi-automatic core threading. Support nests with guide channels were developed. Cores were permanently bonded to a backing sheet "patch" that supported them during manufacture and later use. Threading needles werebutt welded to the wires, the needle and wire diameters were the same, and efforts were made to eliminate the use of needles.[30][31]
The most important change, from the point of view of automation, was the combination of the sense and inhibit wires, eliminating the need for a circuitous diagonal sense wire. With small changes in layout, this also allowed much tighter packing of the cores in each patch.[32][33]
By the early 1960s, the cost of core fell to the point that it became nearly universal asmain memory, replacing both inexpensive low-performancedrum memory and costly high-performance systems usingvacuum tubes, and later discretetransistors as memory. The cost of core memory declined sharply over the lifetime of the technology: costs began at roughlyUS$1.00 per bit and dropped to roughlyUS$0.01 per bit.
Core memory was madeobsolete bysemiconductorintegrated circuit memories in the 1970s, though remained in use for mission-critical and high-reliability applications in theIBM System/4 Pi AP-101 (used in theSpace Shuttle until an upgrade in early 1990s, and theB-52 andB-1B bombers).[34][35][36]
An example of the scale, economics, and technology of core memory in the 1960s was the 256K 36-bit word (1.2 MiB[a]) core memory unit installed on thePDP-6 at theMIT Artificial Intelligence Laboratory by 1967.[37] This was considered "unimaginably huge" at the time, and nicknamed the "Moby Memory".[38] It cost $380,000 ($0.04/bit) and its width, height and depth was 175 cm × 127 cm × 64 cm (69 in × 50 in × 25 in) with its supporting circuitry (189 kilobits/cubic foot = 6.7 kilobits/litre). Its cycle time was 2.75 μs.[39][40][41]
In 1980, the price of a 16 kW (kiloword, equivalent to 32 kB) core memory board that fitted into a DEC Q-bus computer was aroundUS$3,000. At that time, core array and supporting electronics could fit on a single printed circuit board about 25 cm × 20 cm (10 in × 8 in) in size, the core array was mounted a few mm above the PCB and was protected with a metal or plastic plate.[citation needed]


The term "core" comes from conventionaltransformers whose windings surround amagnetic core. In core memory, the wires pass once through any given core—they are single-turn devices. The properties of materials used for memory cores are dramatically different from those used in power transformers. The magnetic material for a core memory requires a high degree of magneticremanence, the ability to stay highly magnetized, and a lowcoercivity so that less energy is required to change the magnetization direction. The core can take two states, encoding onebit. Core memory contents are retained even when the memory system is powered down (non-volatile memory). However, when the core is read, it is reset to a "zero" value. Circuits in the computer memory system then restore the information in an immediate re-write cycle.



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 smalltoroidalferrimagneticceramicferrites (cores) held together in a grid structure (organized as a "stack" of layers calledplanes), with wires woven through the holes in the cores' centers. In early systems there were four wires:X,Y,Sense, andInhibit, but later cores combined the latter two wires into oneSense/Inhibit line.[32] Each toroid stored onebit (0 or 1). One bit in each plane could be accessed in one cycle, so each machineword in an array of words was spread over a "stack" of planes. Each plane would manipulate one bit of a word inparallel, allowing the full word to be read or written in one cycle.
Core relies on the square hysteresis loop properties of the ferrite material used to make the toroids. An electric current in a wire that passes through a core creates a magnetic field. Only amagnetic 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 (thelogical conjunction) 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 resultinginduced field forces the selected core's magnetic flux to circulate in one direction or the other (clockwise or counterclockwise). One direction is a stored1, while the other is a stored0.
The toroidal shape of a core is preferred since the magnetic path is closed, there are no magnetic poles and thus very little external flux. This allows the cores to be packed closely together without their magnetic fields interacting. The alternating 45-degree positioning used in early core arrays was necessitated by the diagonal sense wires. With the elimination of these diagonal wires, tighter packing was possible.[33]

The access time plus the time to rewrite is thememory cycle time.
To read a bit of core memory, the circuitry tries to flip the bit to the polarity assigned to the 0 state, by driving the selected X and Y lines that intersect at that core.
The detection of such a pulse means that the bit had most recently contained a 1. Absence of the pulse means that the bit had contained a 0. The delay in sensing the voltage pulse is called theaccess time of the core memory.
Following any such read, the bit contains a 0. This illustrates why a core memory access is called adestructive read: Any operation that reads the contents of a core erases those contents, and they must immediately be recreated.
To write a bit of core memory, the circuitry assumes there has been a read operation and the bit is in the 0 state.
The Sense wire is used only during the read, and the Inhibit wire is used only during the write. For this reason, later core systems combined the two into a single wire, and used circuitry in the memory controller to switch the function of the wire.
However, when the Sense wire crosses too many cores, the half-select current can also induce a considerable voltage across the whole line due to the superposition of the voltage at each single core. This potential risk of "misread" limits the minimum number of Sense wires.
Increasing Sense wires also requires more decode circuitry.
Core memory controllers were designed so that every read was followed immediately by a write (because the read forced all bits to 0, and because the write assumed this had happened).Instruction sets were designed to take advantage of this.
For example, a value in memory could be read and modified almost as quickly as it could be read and written. In thePDP-6, theAOS* (orSOS*) instructions incremented (or decremented) the value between the read phase and the write phase of a single memory cycle (perhaps signaling the memory controller to pause briefly in the middle of the cycle). This might be twice as fast as the process of obtaining the value with a read-write cycle, incrementing (or decrementing) the value in some processor register, and then writing the new value with another read-write cycle.

Word line core memory was often used to provide register memory. Other names for this type arelinear select and2-D. This form of core memory typically wove three wires through each core on the plane,word read,word write, andbit sense/write. To read or clear words, the full current is applied to one or moreword read lines; this clears the selected cores and any that flip induce voltage pulses in theirbit sense/write lines. For read, normally only oneword read line would be selected; but for clear, multipleword read lines could be selected while thebit sense/write lines ignored. To write words, the half current is applied to one or moreword write lines, and half current is applied to eachbit sense/write line for a bit to be set. In some designs, theword read andword write lines were combined into a single wire, resulting in a memory array with just two wires per bit. For write, multipleword write lines could be selected. This offered a performance advantage overX/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. Some very large memories were built with this technology, for example theExtended Core Storage (ECS) auxiliary memory in theCDC 6600, which was up to 2 million 60-bit words.
Core rope memory is aread-only memory (ROM) form of core memory. In this case, the cores, which had more linear magnetic materials, were simply used astransformers; no information was actually stored magnetically within the individual cores. Each bit of the word had one core. Reading the contents of a given memory address generated a pulse of current in a wire corresponding to that address. Each address wire was threaded either through a core to signify a binary [1], or around the outside of that core, to signify a binary [0]. As expected, the cores were much larger physically than those of read-write core memory. This type of memory was exceptionally reliable. An example was theApollo Guidance Computer used for theNASA Moon landings.
The performance of early core memories can be characterized in today's terms as being very roughly comparable to a clock rate of 1 MHz (equivalent to early 1980s home computers, like theApple II andCommodore 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 600 ns (0.6 μs). Some designs had substantially higher performance: theCDC 6600 had a memory cycle time of 1.0 μs in 1964, using cores that required a half-select current of 200 mA.[42] Everything possible was done in order to decrease access times and increase data rates (bandwidth). To mitigate the often slow read times of core memory, read and write operations were often paralellized, with one word's worth of single-bit memory arrays set to work together so that a whole word's worth of memory could be read in a single memory access cycle.
Core memory isnon-volatile storage—it can retain its contents indefinitely without power. It is also relatively unaffected byEMP and radiation. These were important advantages for some applications like first-generation industrialprogrammable controllers, military installations and vehicles likefighter aircraft, as well asspacecraft, and led to core being used for a number of years after availability ofsemiconductor MOS memory (see alsoMOSFET). For example, theSpace ShuttleIBM AP-101B flight computers used core memory, which preserved the contents of memory even through theChallenger's disintegration and subsequent plunge into the sea in 1986.[43]
Another characteristic of early core was that the coercive force was very temperature-sensitive; the proper half-select current at one temperature is not the proper half-select current at another temperature. So a memory controller would include a temperature sensor (typically athermistor) to adjust the current levels correctly for temperature changes. An example of this is the core memory used byDigital Equipment Corporation for theirPDP-1 computer; this strategy continued through all of the follow-on core memory systems built byDEC for theirPDP 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 theIBM 1620 (which could take up to 30 minutes to reachoperating temperature, about 106 °F (41 °C) and the heated-oil-bath core memory of theIBM 7090, earlyIBM 7094s, andIBM 7030. Core was heated instead of cooled because the primary requirement was aconsistent temperature, and it was easier (and cheaper) to maintain a constant temperature well above room temperature than one at or below it.
Diagnosing hardware problems in core memory required time-consuming diagnostic programs to be run. While a quick test checked if every bit could contain a one and a zero, these diagnostics tested the core memory with worst-case patterns and had to run for several hours. As most computers had just a single core-memory board, these diagnostics also moved themselves around in memory, making it possible to test every bit. An advanced test was called a "Shmoo test" in which the half-select currents were modified along with the time at which the sense line was tested ("strobed"). The data plot of this test seemed to resemble a cartoon character called "Shmoo," and the name stuck. In many occasions, errors could be resolved by gentlytapping the printed circuit board with the core array on a table. This slightly changed the positions of the cores along the wires running through them, and could fix the problem. The procedure was seldom needed, as core memory proved to be very reliable compared to other computer components of the day.
{{cite book}}:ISBN / Date incompatibility (help)