Spacelab was a reusable laboratory that could be carried in the Space Shuttle’s cargo bay, providing lab space for astronauts
and experiments.1Because Spacelab was a European project, it used a French-built minicomputer, the Mitra 125 MS,2rather than the Shuttle’s main computers, IBM-built AP-101 systems.
For storage, the Spacelab computer contained 128 kilobytes of RAM.
Rather than silicon memory, the computer used magnetic core memory, with each bit stored in a tiny ferrite ring.
In this article, I take a close look at this computer’s core memory system.
The core stack from the Spacelab computer. I removed the top board to show the core planes.
The illustration below shows how Spacelab fit inside the Shuttle’s cargo bay.
The pressurized laboratory is the cylindrical module in the front of the cargo bay, connected to the Shuttle by a tunnel.
Experiments were mounted on pallets behind the laboratory.
The laboratory held three identical Mitra computers.3One computer
managed Spacelab itself, while the second computer managed the experiments. The third computer provided a backup in case of failures.
Spacelab was a pressurized cylinder in the Shuttle’s cargo bay, connected to the Shuttle by a tunnel. It provided a laboratory for researchers to perform experiments. This illustration of Spacelab is from NASA, C-1976-4380.
The photo below shows the core memory stack, removed from the computer.
The core memory stack takes up roughly a third of the computer. The entire side panel of the computer detaches, and the core
memory unit slides out.
Since the computer is cooled by conduction, firmly attaching the core memory stack to the side panel kept it cool.
The core memory stack consists of seven boards: a driver board, four core plane boards, a second driver board, and an interface board.
Each board has two 160-pin connectors that plug into a large daughter board on each side, providing extensive connectivity between the boards.
The daughter board on the right has another 160-pin connector that links the memory stack to the rest of the computer.
(These connectors are the long blue connectors in the photo.)
The core memory stack in front of the Mitra computer. The circuit boards have been removed from the far side of the computer.
One of the hardest problems for early computers was storage.
Computers of the late 1940s and early 1950s stored data through techniques such as sound waves in mercury, spots on a CRT screen, or spinning magnetic drums, but these
all had limitations.
What computers needed was dense, inexpensive storage that was fast, reliable, and could be accessed randomly.
During World War II, Germany developedspecial magnetic alloysthat could “flip” from one magnetic state to another.
After the war, American researchers realized that these materials could be used for storing binary data: “It was completely obvious that you could make a
memory with this material,” in the words of Jan Rajchman.
Different aspects of core memory were patented by various inventors (including independent inventor Frederick Viehe, An Wang at Harvard, Jan Rajchman at RCA, and Jay Forrester at MIT), leading to expensive patent battles.
(IBM ended up paying $400,000 to Wang—who used the money to build the computer company Wang Laboratories—and $13,000,000 to MIT.)
I view Jay Forester
as the most important inventor, developing the design of practical core memory, researching magnetic materials, and building the first core memory in 1953 for
the groundbreaking Whirlwind computer.
Core memory is based around a tiny toroidal magnetic core, one per bit.4A core can be magnetized clockwise or counterclockwise to store a bit.
The core can be magnetized by threading a wire through the core: running a current through the wire produces a magnetic field that magnetizes the core, while
running a current in the opposite direction produces the opposite magnetization.
A key problem with core memory was how to wire the cores without an absurd number of wires: if each core had a separate wire, just 16 KB of storage would require over 100,000 wires.
The solution was called “coincident current addressing”. The cores are arranged in a grid, with horizontal and vertical wires, as shown below.
By running a current through one horizontal wire and one vertical wire, the single core at the intersection was selected.
But wouldn’t that magnetize all the cores along the horizontal and vertical wires?
The key was that the cores were constructed from special magnetic materials with a property calledhysteresis: a small current leaves the core completely unchanged,
while a larger current flips the core’s magnetic state.
The currents through the horizontal and vertical wires were carefully selected so each wire had half the current necessary to flip the core; where
the wires intersected, the two currents provided sufficient magnetic field to flip the core.
Energizing an X drive wire and a Y drive wire selects one core, highlighted in yellow. Diagram adapted fromDigital Computer Components and Circuits, R. K. Richards, p355
The next step was reading the core.
A sense wire was threaded through all the cores in the two-dimensional plane. To read a core, the X and Y select wires were driven to flip the desired core to the 0 state.
If the core was already in the 0 state, nothing happened. But if the core was originally in the 1 state, the magnetic field changed as the
core changed state. This induced a small current in the sense line, indicating that the core held a 1.
Note that reading the value of a bit destroys that value. Thus, a core needs to be rewritten after reading, to restore the original data.