// HACKER NEWS — CYBERSECURITY
RAM: the forgotten history (2024)
In my 2023 article on the evolution of the calculator, I griped about the way we teach the history of computers. I felt that we’re giving far too much credit to Charles Babbage. We have known how to make mechanical calculators at least since the 17th century; the concept of programmable machinery predated the English polymath’s writings by a wide margin, too. The remaining bottleneck was mostly technological: past a very modest scale, sprockets and cams made it too cumbersome to shuffle data back and forth inside a sufficiently complex computing machine.
The breakthrough was an electronically-controlled data register. These circuits allowed computation results to be locked in place and then effortlessly routed where needed, no matter how complex and sprawling the overall design. In contrast to the musings of Mr. Babbage, the history of this “working memory” has gotten less attention than it deserves. We conflate it with the evolution of bulk data storage and computer I/O and keep forgetting that RAM constraints were the most significant drag on personal computing until the final years of the 20th century.
The first practical form of electronic memory was a relay. A relay is essentially a mechanical switch actuated by an electromagnet. Its switching action can be momentary — lasting only as long as the electromagnet is powered — or it can be sustained, latching in the “on” state until a separate “reset” coil is energized.
Latching relays can be used to store bits in a fairly obvious way; a momentary relay can also be wired to latch by having the relay supply its own power once the contacts are closed. A simple illustration of this principle is shown below:
In this circuit, pressing the “set” button will energize the relay, therefore also closing the parallel relay-actuated switch. The current will continue flowing through this path even after the “set” button is released. To unlatch the circuit, the normally-closed (NC) “reset” button must be pressed to interrupt the flow of electricity.
Relay-based main memory featured prominently in what was probably the first true electronic computer, Konrad Zuse’s Z3:
Electromechanical relays have switching speeds measured in tens of hertz; Mr. Zuse understood from the get go that the technology is a dead end. He took the expedient path in hopes of securing longer-term funding from the Nazi regime. Unfortunately for him — and fortunately for much of Europe — the officials were unimpressed and the funding never came through.
Zuse’s counterparts on the Allied side had more luck: early successes in codebreaking allowed them to pursue more costly and complicated vacuum tube designs. The blueprint for a tube-based memory cell came from William Eccles and Frank Wilfred Jordan — a largely-forgotten duo of British inventors who proposed the following bistable circuit as a replacement for an electromechanical relay:
The circuit latches when an input current flows through the transformer winding on the left. This momentarily makes the G1 grid voltage more positive, upsetting the current balance between the tubes in a self-reinforcing feedback loop.
In modern terms, both of these circuits would be described as set-reset (SR) latches. Their fundamental operation is shared with the cells that make up high-speed, low-power SRAM memories found on the dies of most microcontrollers and microprocessors today. A contemporary textbook example of an SR architecture could be this: