OK, now how does it work? We have said how we can store a 1 or 0 in a core by flipping it from one state to the other. The core can be magnetised in one direction or the other, clockwise ,or counter-clockwise, 1 or 0. We start with a clear memory, all bits in all addresses set to 0.
To write a 1 in address 0 we would need to write a 1 bit in bit 0 of address 0000 0000 0000. All other bits would be zero. We would need to enable address lines X-0 and Y-0 by passing a small pulse through them, each pulse being half the size needed to flip the magnetic field. The one point where the two address lines pass through the same core would therefore cause a flip, as the sum of the two address line pulses is sufficient for this to happen.
On each plane we have a 'write inhibit' wire passing through all cores in that plane. To write a 1 bit we do not use this wire, however to write a zero in the other bit planes we pass an 'inhibit write' pulse. This pulse reduces the effect of the two address lines, such that there is insufficient current to flip the magnetic field, and the value remains at zero.
No other core will flip as we need all three components, two address lines, plus no 'inhibit write', pulse to flip the magnetic field, if required. The addressed core is the only one to have both address wires active, and so is the only one which will flip for a one bit, or remain at 0 if the 'inhibit write' pulse is present.
Now, how do we read this data? As mentioned above we have a sense wire, which passes through all cores in each plane. We use the address lines as before to select one core in each plane. If the core is set to a 1, it will flip to 0, the change in magnetic field will induce a pulse in the sense wire, which will be read as a 1 bit. This action is similar to a generator, where a changing magnetic field induces a current in the coil. If the value is zero, it will remain so.
This type of read is called a 'destructive readout', because the location which was read is now all zeros. For this reaon, the data is written back to the location in the next memory cycle. A subsequent write of data will also require a prior read, to set the state to all zeros.
Core memory has one big advantage over the 'chip memory' currently in use, in that it is non-volatile. This means it retains its data even if power is removed. A computer may be restarted after being powered off, with all data intact. You may be familiar with the term NVRAM, typically used in the BIOS or preset data in your home PC. NVRAM stands for Non Volatile Random Access Memory, In this case it is a bit of a cheat, as it needs a battery to maintain the data when power is removed. (BIOS means Basic Input Output System, the subject of a later article.)
Tony is an experienced computer engineer. He is currently webmaster and contributor to http://www.what-why-wisdom.com A set of diagrams accompanying these articles may be seen at http://www.what-why-wisdom.com/history-of-the-computer-0.html RSS feed also available - use http://www.what-why-wisdom.com/Educational.xml