page_title: Magnetic-core memory
section_title: Reading and writing
hierarchical_section_title: Magnetic-core memory / Description / Reading and writing
caption_attribution_description: Deutsch: Verhältnisse an der magnetischen Hysteresekurve bei einem Rindgkernspeicher English: Diagram of the magnetic hysteresis curve for a magnetic memory core during a read operation. Sense line current pulse is high ("1") or low ("0") depending on original magnetization state of the core.
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: 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.
  If the bit was already 0, the physical state of the core is unaffected.
  If the bit was previously 1, then the core changes magnetic polarity. This change, after a delay, induces a voltage pulse into the Sense line.
  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 the access time of the core memory.
  Following any such read, the bit contains a 0. This illustrates why a core memory access is called a destructive 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.
  To write a 1 bit, the selected X and Y lines are driven, with current in the opposite direction as for the read operation. As with the read, the core at the intersection of the X and Y lines changes magnetic polarity.
  To write a 0 bit (in other words, to inhibit the writing of a 1 bit), the same amount of current is also sent through the Inhibit line. This reduces the net current flowing through the respective core to half the select current, inhibiting change of polarity.
  The access time plus the time to rewrite is the memory cycle time.
  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.
  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). Computers began to take advantage of this fact. For example, a value in memory could be read and incremented (as for example by the AOS instruction on the PDP-6) almost as quickly as it could be read; the hardware simply incremented the value between the read phase and the write phase of a single memory cycle (perhaps signalling 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 the value in some processor register, and then writing the new value with another read-write cycle.
caption: Diagram of the hysteresis curve for a magnetic memory core during a read operation. Sense line current pulse is high ("1") or low ("0") depending on original magnetization state of the core.
exif: {}