Further on delay line storage:
Physically one of the most common ones was a cylinder of liquid mercury.
There was a device at one end for introducing pressure waves into the
mercury (think loudspeaker) and a device at the other end for measuring the
pressure waves arriving (think microphone). The pulses that came off the
microphone end were then fed back to the loudspeaker end, after being
cleaned up.
=====
<https://www.mindthegapdialogs.com/home>
On Tue, Dec 13, 2022 at 10:12 AM Douglas McIlroy <
douglas.mcilroy(a)dartmouth.edu> wrote:
A delay line is logically like a drum, with
circulating data that is
accessible only at one point on the circle. A delay line was
effectively a linear channel along which a train of data pulses was
sent. Pulses received at the far end were reshaped electronically. and
reinjected at the sending end. One kind of delay line was a mercury
column that carried acoustic pulses.. The PB 250 delay line was
magnetostrictive (a technology I know nothing about).
If instruction timing is known, then the next instruction to appear is
predictable. The only caveat is that instruction times should not be
data-dependent. You can lay out sequential code along the circle as
long as no instruction steps on one already placed. When that happens
you must switch modes to jump to an open spot, or perhaps insert nops
to jiggle the layout.
Doug
On Tue, Dec 13, 2022 at 9:31 AM <arnold(a)skeeve.com> wrote:
Douglas McIlroy <douglas.mcilroy(a)dartmouth.edu> wrote:
Apropos of accessing rotating storage, John Kelly
used to describe the
Packard-Bell 250, which had a delay-line memory, as a machine where
addresses refer to time rather than space.
The PB 250 had two instruction-sequencing modes. In one mode, each
instruction included the address of its successor. In the other mode,
whatever popped out the delay line when the current instruction
completed would be executed next.
Doug
For us (relative) youngsters, can you explain some more how delay
line memory worked? The second mode you describe sounds like it
would be impossible to use if you wanted repeatable, reproducible
runs of your program.
Thanks,
Arnold