Core Memory (with a little Theory)

[Core stack from PDP-8/I]

    Core memory is not something that people run into very often anymore; it's long been superceded by semiconductor memory implementations that are smaller, faster, more reliable, and store vastly more information than systems available 15 years ago.

    Core systems posess many features that, in some instances, make them preferable to solid state memories. Chief among these is that core memory does not lose its contents when the power is shut off; I've seen systems that haven't been powered on in years fire up right in the operating system as if they'd never been shut down! Core systems, however, tend to be large, some are maintenance intensive, and can be power hogs.

    Core, named such for the shape of the actual storage devices, memories came into widespread use in the '50s (I think), as true digital devices. This allowed the computer architects to design systems with more storage than was practical with analogue techniques.

    Core memory works by virtue of magnetising a little ferrite doughnut (or core) differently for "1" and "0" indications. The difference used in all core systems is the polarisation of the core's magnetic field. The principle is roughly analogous to magnetising a screwdriver using another magnet; for instance, if the tip is made to be the "south" pole the screwdriver could be said to be storing a "0"; if the tip was magnetised to "north", the tool would be storing a "1".

    Ferrite cores posess a large amount of what is known as magnetic "hysteresis"; that is to say that they hold magnetism quite well, and require a large perturbance to change the direction of their own magnetic field. When that field is reversed, the change is sudden and violent; violent enough to induce a current in a wire running through it (the sense line). Cores are magnetised in more or less the same manner (except, of course, electricity is used to do the magnetising, and the cores are round). We'll look at a (ridiculously) simple memory system as an example of exactly how these systems work.

    Our memory system, call it the "Mark I" will store a single bit of information; not terribly useful for everyday applications, but enough to get the idea across. This one bit of storage capacity will occupy a single ferrite core (surprise) and have all the necessary drive circuitry to manipulate that core in ways that allow us to store things on it.

    The core, to start with, has 3 wires running through it; "X" and "Y" drive lines and a single sense line. The drive lines supply the necessary magnetic force to polarise the core in one direction or the other and the sense line "reads" which direction the core is in. For the example, let's say that "left" magnetisation is a "0" and "right" is a "1".

    Magnetising the core in the first place is performed using the X and Y drive lines, each line receiving 1/2 the power required to polarise the core. In our one-bit system, we could use a single drive wire, but the example would not carry over to larger systems.

    Reading what is in a core involves driving that core to a known state and seeing what happens. Let's assume that the "known state" is "left" polarisation (for a "0").

    Let's say that our little friend was previously magnetised to a "0" state: we'll send current through the drive lines to force him to a "zero" and watch the sense line to see what happens. Nothing happens at all on the sense line (except a little electrical noise picked up from the drive lines). On the other hand, if the core had been in a "1" state, it would have required a state change of the core; that change would induce a good sized current in the sense line (far in excess of the noise) that we could pick up and use.

    Unfortunately, we really wanted that "1" to stay there; but in the process of reading the core, we destroyed the information (by driving to "0"). At this point we need to rewrite the "1" back so we can use it in the future. In our system, we'll simply tell the transistors controlling the drive lines to reverse the current and drive our core back to "right" polarisation. It is because of this property that core systems are termed "destructive read" memories.

    Some systems add a fourth wire to their cores, known as an "inhibit" line to simplify the write-back process. This line serves to "oppose" one of the drive lines and prevent what would normally (i.e. without the inhibit line) result in a successful write. Core memories with the 4-wire system typically (on write-back) attempt to drive all the cores to a "1", and inhibit those which are supposed to be "0". This system simplifies the drive electronics somewhat at the expense of more labour in stringing the cores.

    Real memory systems use tens of thousands of individual cores arrayed in matricies and arranged into "stacks" so an entire word is read from the system (or written into) upon request from the computer. For instance, a 8 kword Nova memory board contains 131,072 individual cores.


[ Museum Lobby ] [ Museum Catalogue ] [ Carl's Homepage ]


Copyright © 1996 - 2003, Carl R. Friend. All rights reserved.
Webspace design by: Carbon & Silicon Alliance

Comments to: carl.friend@rcsri.org
Last Modified: Sun Oct 3 19:48:56 EDT 1999