Delay line memoryDelay line memory was a form of computer memory used on some of the earliest digital computers, such as the EDSAC and UNIVAC I.
The first such systems consisted of a column of mercury with piezo crystal transducers (a combination of speaker and microphone) at either end. Data from the computer was sent to the piezo at one end of the tube, and the piezo would pulse and generate a small wave in the mercury. The wave would quickly travel to the far end of the tube, where it would be read back out by the other piezo and sent back to the computer.
To form a memory, additional circuity was added at the receiving end to send the signal back to the input. In this way the pattern of waves sent into the system by the computer could be kept circulating as long as the power was applied. The computer would count the pulses by comparing to a master clock to find the particular bit it was looking for.
Mercury was used because the speed of sound in mercury is fairly fast, at 1450 m/s. This meant that the time needed to wait for a particular pulse to arrive at the receiving end was shorter than it would be had they used a slower medium such as air, but also meant that the total of pulses that could be stored in any reasonably sized column of mercury was limited.
A considerable amount of engineering was needed to maintain a "clean" signal inside the tube. Large tranducers were used to generate a very tight "beam" of sound that would not touch the walls of the tube, and care had to be taken to eliminate reflections off the far end of the tubes. The tightness of the beam then required considerable tuning to make sure the two piezos were pointed directly at each other. Since the speed of sound changes with temperature (indirectly, changes in temperature change density) the tubes were heated in large ovens to keep them at a precise temperature. Other systems adjusted the computer clock to the ambient temperature instead.
EDSAC, the first stored-program digital computer, began operation with 512 35-bit words of memory, stored in 32 delay lines holding 576 bits each (a 36th bit was added to ever word as a start/stop indicator). In the UNIVAC I this was reduced somewhat, each column stored 120 bits (although the term "bit" was not in popular use at the time), requiring seven large memory units with 18 columns each to make up a 1000-word store. Combined with their support circuitry and amplifiers, the memory subsystem formed it's own walk-in room. The average access time was about 222 microseconds, which was considerably faster than the mechanical systems used on earlier computers.
A later version of the delay line used metal wires as the storage medium. Transducers were built by applying the magnetostrictive effect; small pieces of a magnetostrictive material, typically nickel, were attached to either side of the end of the wire, inside an electromagnet. When bits from the computer entered the magnets the nickel would contract or expand (based on the polatity) and twist the end of the wire. The resulting tortional wave would then move down the wire just as the sound wave did down the mercury column.
Unlike the compressive wave however, the tortional wave was considerably more resistant to problems caused by mechanical imperfections, so much so that the wires could be wound into a loose coil and pinned to a board. Due to their ability to be coiled, the wire-based systems could be built as "long" as needed, and tended to hold considerably more data per unit, 1k units were typical on a board only 1 foot square. Of course this also meant that the time needed to find a particular bit was somewhat longer as it travelled through the wire, and access times on the order of 500 microseconds were typical.
Delay line memory was far less expensive and far more reliable per bit than flip-flops made from tubes, and yet far faster than a latching relay. It was used right into the 1950s, notably on British commercial machines like the LEO I and various Ferranti machines.