page_title: Magnetic-core memory
section_title: How core memory works
hierarchical_section_title: Magnetic-core memory / Description / How core memory works
caption_attribution_description: English: One of three inter-connected modules that make up a PDP-8 core memory plane. This is the middle of the three and contains the array of actual ferrite cores.
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 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 toroidal ferrimagnetic ceramic ferrites (cores) held together in a grid structure (organized as a "stack" of layers called planes), with wires woven through the holes in the cores' centers. 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 toroid stored one bit (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 "square 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 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.
  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 allowing their magnetic fields to interact. 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.
caption: One of three inter-connected modules that make up an Omnibus-based PDP-8 core memory plane.  This is the middle of the three and contains the array of actual ferrite cores.
exif: {"Image Make": "motorola", "Image Model": "moto x4", "Image Orientation": "Horizontal (normal)", "Image XResolution": "72", "Image YResolution": "72", "Image ResolutionUnit": "Pixels/Inch", "Image Software": "payton_fi-user 8.1.0 OPWS28.46-21-12 3dc09 release-keys", "Image DateTime": "2018:11:09 20:34:11", "Image YCbCrPositioning": "Centered", "Image ExifOffset": "256", "Image GPSInfo": "1758", "Thumbnail Compression": "JPEG (old-style)", "Thumbnail Orientation": "Horizontal (normal)", "Thumbnail XResolution": "72", "Thumbnail YResolution": "72", "Thumbnail ResolutionUnit": "Pixels/Inch", "Thumbnail JPEGInterchangeFormat": "1870", "Thumbnail JPEGInterchangeFormatLength": "12925", "EXIF ExposureTime": "1/15", "EXIF FNumber": "2", "EXIF ExposureProgram": "Unidentified", "EXIF ISOSpeedRatings": "673", "EXIF ExifVersion": "0220", "EXIF DateTimeOriginal": "2018:11:09 20:34:11", "EXIF DateTimeDigitized": "2018:11:09 20:34:11", "EXIF ComponentsConfiguration": "YCbCr", "EXIF ShutterSpeedValue": "1953/500", "EXIF ApertureValue": "2", "EXIF BrightnessValue": "0", "EXIF ExposureBiasValue": "0", "EXIF MeteringMode": "Unidentified", "EXIF Flash": "Flash did not fire, auto mode", "EXIF FocalLength": "399/100", "EXIF SubSecTime": "684239", "EXIF SubSecTimeOriginal": "684239", "EXIF SubSecTimeDigitized": "684239", "EXIF FlashPixVersion": "0100", "EXIF ColorSpace": "sRGB", "EXIF ExifImageWidth": "4032", "EXIF ExifImageLength": "3024", "Interoperability InteroperabilityIndex": "R98", "Interoperability InteroperabilityVersion": "[48, 49, 48, 48]", "EXIF InteroperabilityOffset": "1728", "EXIF SensingMethod": "0", "EXIF SceneType": "Directly Photographed", "EXIF ExposureMode": "Auto Exposure", "EXIF WhiteBalance": "Auto", "EXIF DigitalZoomRatio": "1", "EXIF SceneCaptureType": "Standard"}