← presker.at / lab

Core Memory

Sixty-four tiny ferrite rings on a grid of wires, the way computers stored their bits from the 1950s into the 1970s. Tap a ring to flip its bit. Each wire carries only half the current needed to switch a ring, so only the ring where the two energised wires cross gets enough to flip.

For kids: Bit Blocks tells the same story with blocks and water, in English and German →

X / Y drive wires inhibit wire sense wire core holding 1
Tap any core. Keys: arrows move, space toggle, R read, 1/0 write.

Why only one ring flips

A ferrite core has a nearly square hysteresis loop. Below a sharp threshold the field barely disturbs it; above it, the whole ring snaps to the other direction of magnetisation, and it stays there with no power.

The controller sends half the switching current down one X wire and half down one Y wire. Fourteen cores feel one half and stay put. Only the core where the two wires cross gets the full current and flips. This is called coincident-current selection.

Reading erases the bit

A core cannot be asked which way it is magnetised. To read it, the controller tries to write a 0. If the core held a 1, it flips and induces a short voltage pulse in the sense wire, which runs through every core. If it held a 0, nothing happens and the sense wire stays quiet.

The bit is known now, but the core holds 0. So every read is followed by a write that puts the bit back. Untick write back after read and use Read all to see what happens without it.

Writing needs a fourth wire

Every write starts by clearing the core to 0. Then the controller drives X and Y towards 1. To store a 0 instead, the inhibit wire carries half a current in the opposite direction, so the chosen core only gets half and stays 0.

In a real machine there was one plane per bit of the word. A whole word was read and written at once, all its bits sharing the same X and Y wires. Here one plane is shown, and each row holds one byte (most significant bit on the left).