page_title: Magnetic-core memory
section_title: Physical characteristics
hierarchical_section_title: Magnetic-core memory / Description / Physical characteristics
caption_attribution_description: English: Magnetic-core memory close-up
context_page_description: Magnetic-core memory was the predominant form of random-access computer memory for 20 years between about 1955 and 1975.
  Such memory is often just called core memory, or, informally, core.
  Core memory uses toroids of a hard magnetic material as transformer cores, where each wire threaded through the core serves as a transformer winding. Three or four wires pass through each core.
  Each core stores one bit of information. A core can be magnetized in either the clockwise or counter-clockwise direction. The value of the bit stored in a core is zero or one according to the direction of that core's magnetization. Electric current pulses in some of the wires through a core allow the direction of the magnetization in that core to be set in either direction, thus storing a one or a zero. Another wire through each core, the sense wire, is used to detect whether the core changed state.
  The process of reading the core causes the core to be reset to a zero, thus erasing it. This is called destructive readout. 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 of non-volatile memory.
context_section_description: 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 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 600 ns (0.6 µs). Some designs had substantially higher performance: the CDC 6600 had a memory cycle time of 1.0 µs in 1964, using cores that required a half-select current of 200 mA. Everything possible was done in order to decrease access times and increase data rates (bandwidth), 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 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 (see also MOSFET). For example, the Space Shuttle IBM AP-101B flight computers used core memory, which preserved the contents of memory even through the Challenger's disintegration and subsequent plunge into the sea in 1986.
  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 a thermistor) to adjust the current levels correctly 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 7090, early IBM 7094s, and IBM 7030.
  Core was heated instead of cooled because the primary requirement was a consistent temperature, and it was easier (and cheaper) to maintain a constant temperature well above room temperature than one at or below it.
  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 around US$3,000. At that time, core array and supporting electronics fit on a single printed circuit board about 25 × 20 cm in size, the core array was mounted a few mm above the PCB and was protected with a metal or plastic plate.
  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 "Schmoo 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 "Schmoo," and the name stuck. In many occasions, errors could be resolved by gently tapping 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
caption: Magnetic-core memory close-up
exif: {"Image Make": "NIKON CORPORATION", "Image Model": "NIKON D7100", "Image Orientation": "Horizontal (normal)", "Image XResolution": "300", "Image YResolution": "300", "Image ResolutionUnit": "Pixels/Inch", "Image Software": "Ver.1.02", "Image DateTime": "2015:04:22 21:32:58", "Image Artist": "Judson McCranie, jud@judmccranie.com", "Image YCbCrPositioning": "Co-sited", "Image Copyright": "Copyright Judson McCranie 2015", "Image ExifOffset": "348", "GPS GPSVersionID": "[2, 3, 0, 0]", "Image GPSInfo": "38432", "Thumbnail Compression": "JPEG (old-style)", "Thumbnail XResolution": "300", "Thumbnail YResolution": "300", "Thumbnail ResolutionUnit": "Pixels/Inch", "Thumbnail JPEGInterchangeFormat": "38900", "Thumbnail JPEGInterchangeFormatLength": "8146", "Thumbnail YCbCrPositioning": "Co-sited", "EXIF ExposureTime": "1/60", "EXIF FNumber": "18", "EXIF ExposureProgram": "Aperture Priority", "EXIF ISOSpeedRatings": "640", "EXIF SensitivityType": "Recommended Exposure Index", "EXIF ExifVersion": "0230", "EXIF DateTimeOriginal": "2015:04:22 21:32:58", "EXIF DateTimeDigitized": "2015:04:22 21:32:58", "EXIF ComponentsConfiguration": "YCbCr", "EXIF CompressedBitsPerPixel": "4", "EXIF ExposureBiasValue": "0", "EXIF MaxApertureValue": "5", "EXIF MeteringMode": "Pattern", "EXIF LightSource": "Unknown", "EXIF Flash": "Flash did not fire, compulsory flash mode", "EXIF FocalLength": "100", "EXIF SubSecTime": "10", "EXIF SubSecTimeOriginal": "10", "EXIF SubSecTimeDigitized": "10", "EXIF FlashPixVersion": "0100", "EXIF ColorSpace": "sRGB", "EXIF ExifImageWidth": "6000", "EXIF ExifImageLength": "4000", "Interoperability InteroperabilityIndex": "R98", "Interoperability InteroperabilityVersion": "[48, 49, 48, 48]", "EXIF InteroperabilityOffset": "38400", "EXIF SensingMethod": "One-chip color area", "EXIF FileSource": "Digital Camera", "EXIF SceneType": "Directly Photographed", "EXIF CVAPattern": "[2, 0, 2, 0, 0, 1, 1, 2]", "EXIF CustomRendered": "Normal", "EXIF ExposureMode": "Auto Exposure", "EXIF WhiteBalance": "Auto", "EXIF DigitalZoomRatio": "1", "EXIF FocalLengthIn35mmFilm": "150", "EXIF SceneCaptureType": "Standard", "EXIF GainControl": "Low gain up", "EXIF Contrast": "Normal", "EXIF Saturation": "Normal", "EXIF Sharpness": "Normal", "EXIF SubjectDistanceRange": "0"}