Building a vacuum tube computer
ludd.ltu.se
ludd.ltu.se
I'm going to be extremely pedantic for a moment, but this is a case where there's a bit of a difference between electricity and electrons. The speed of electricity, aka electrical energy, aka electric field propagation through copper is 15-20cm per nanosecond. The speed of electrons, aka drift velocity, is far slower and governed by the current and conductor cross-section. Vd=I/neA. For a 91w TDP desktop CPU at maximum current draw, the drift velocity through the power connector would be about 245cm per hour. Yes, per hour. For AC circuits the drift velocity is effectively zero because the electrons vibrate back and forth around their starting position.
You can also think of it like water in a filled tube. If you pump more water into one end the person on the other end will get your signal long before the physical water you put in to create the signal reaches him. You could put a water wheel or propeller in the tube to convert the energy of the moving water into work, and just like the lamp you don't have to wait until the physical molecules of water you pumped in reaches the wheel to start using energy from the moving water.
This made it click for me, thanks!
On electronics.stackexchange we battle this misconception a lot, e.g. https://electronics.stackexchange.com/questions/245610/is-vo...
For almost all practical purposes you should ignore electrons when doing electronics. They're only relevant in detailed theoretical analysis of semiconductors, or (as per article) in vacuum tubes and related items (VFD displays, CRTs).
>In metals, electric current is a flow of electrons. Many books claim that these electrons flow at the speed of light. This is incorrect. Electrons in an electric current actually flow quite slowly; at speeds on the order of centimeters per minute. And in AC circuits the electrons don't really "flow" much at all, instead they sit in place and vibrate. It's the energy in the circuit which flows fast, not the electrons.
> Metals are always full of movable electrons. In a simple circuit, all of the wires are totally packed full of electrons all the time. And when a battery or generator pumps the electrons at one point in the circuit, electrons in the entire loop of the circuit are forced to flow, and energy spreads almost instantly throughout the entire circuit. This happens even though the electrons move very slowly.
One way to think about it is as a newton's cradle sorta deal. It's not perfect, but fairly close. Also maybe flicking a jump rope - energy propagates, but the bits of rope don't move from beginning to end.
Flicking a jump rope sounds more akin to AC to me, though. Maybe, pulsed DC?
What about a train or bumper car analogy (not joking)?
I would really like to see this as a visualization.
Bulk material moves slower than forces move... usually. The physics of shock waves and supersonic stuff is interesting.
It astonishes me that much energy can be transmitted / work can be done, with so little actual movement of electrons... I'll follow the links / articles suggested and see what I can gleam; thanks all! :)
Also astonishing is to calculate the weight, or mass, of the electrons participating in a lightning discharge. So little mass, so much energy.
On the other hand, electric fields move quickly. At some large proportion of the speed of light depending on the particular materials of the wire and some other factors.
https://en.wikipedia.org/wiki/Manchester_Baby
"By June 1948 the Baby had been built and was working.[23] It was 17 feet (5.2 m) in length, 7 feet 4 inches (2.24 m) tall, and weighed almost 1 long ton (1.0 t). The machine contained 550 valves (vacuum tubes)—300 diodes and 250 pentodes—and had a power consumption of 3500 watts."
Also look at super tiny tubes:
BTW, PDP-11 (and PDP-8?) uses 74 logic chips, not discrete transistors, so I would say it's already complex enough for tubes.
Going the opposite direction I always wanted to reimplement the flipchip modules using SMD technology just for fun. A discrete transistor SMD PDP8 that fits on a desk would superficially seem realistic, at least for a large enough desk. Honestly I just don't want to pay for the connectors and wire the backplane connectors. The SMD components could turn 60s era "handheld" flipchip modules into postage stamps, but no technological progress has happened for wire wrapped backplanes so my SMD design's backplane would remain exactly the same size and complication as the original -8, unfortunately. I'd have a giant tangle of wire wrap wires and a couple hundred postage stamp size "nano-flipchips". Probably 50 pounds of interconnect copper and 1 pound of circuit boards, LOL.
This is whats likely to get Op. Its easy to make an adder or a latch, but takes an entire spool of wire to connect one up to the overall circuit. Lots of work.
Sure, if you use 1950s germanium transistors, RTL and DTL logic is no fun anymore. I always wanted to try RTL and DTL using something more fun, like 2010s era microwave low power amplifier FETs. I would not like to pay for it, but it would be a lot of fun to build a 50 GHz ALU or similar. I have no idea what I'd do with it other than say "wow" a lot, which makes it an ideal hobby experiment.
Capacitor memory addressed with tubes seems a strange choice. DRAM is capacitor memory, of course. Atanasoff, who had a a sort of computer in 1939, had capacitor memory, but he had to use a drum rotary switch to address it.
Memory was the big problem in the early days. IBM had an electronic multiplier before WWII, and plugboard-programmed machines, but no good memory elements. (Just registers with motor driven wheels and clutches and contacts.) Pilot ACE had a delay line (slow, serial access), the Manchester Baby had a Williams tube (too expensive per bit, but random access), and the EDVAC had mercury tank delay lines (slow, serial access, and toxic). Whirlwind (1951) had the first core memory (expensive per bit, but got cheaper over time.)
Core would be a reasonable choice for a tube system. Addressing is XY, so you need O(sqrt(N)) tubes.
Memory was a million dollars a megabyte as late as 1970.
Core memory was much better than the earlier approaches you described, and is really the only way to go for a pre-DRAM computer. Once core memory came along, the other approaches vanished. The IBM tube computers used dynamically-refreshed capacitors for register storage (called a Havens Delay Unit), but I agree that capacitor memory is a strange choice for main memory since it needs O(N) tubes.
I think I've finally found someone to ask this question.
How many transistors and space did it take to implement a 8-bit barrel shifter in the 1980s? I found the computing capabilities of 8-bit CPUs in retrocomputers, like the Z80 or 6809, were actually not too bad. With shift-and-add, a lot of computation can be done effectively, but their biggest limitation is the lack of a barrel shifter. Without one, no constant-time bitshift is possible with variable step, you have to shift 1-bit at a time. Performance could be boosted dramatically if a single 8-bit barrel shifter is included, and would open the avenue of a lot of optimization techniques for graphics as well.
Why didn't they include one? Especially when you consider that the Z80 was an "ultimate upgrade" of the Intel 8080, and the 6809 was the "ultimate upgrade" of the 6800.
Was it technical limitations, i.e. even a 8-bit barrel shifter is still too expensive for a 8-bit chip? Or was it that the cost of additional shift instructions decoding/processing is much higher than the barrel shifter itself? Or was it the lack of demand, i.e. it could be done reasonably well with acceptable cost, but simply no commercial reason in the 8-bit era to add one?
8-bit chips probably didn't have a barrel shifter because they were very limited in functionality. (I didn't realize how limited until I looked at mainframes of the time.) Functions like multiply and divide are more useful than barrel shifting, and those were missing too. Barrel shifting is sort of a frill. As for the Z80, it was very, very tight on space so it's not surprising the barrel shifter was lacking. It didn't even have an 8-bit ALU; it had a 4-bit ALU that was used twice per operation.
[1] http://www.righto.com/2015/12/reverse-engineering-arm1-ances...
> Functions like multiply and divide are more useful than barrel shifting, and those were missing too.
My thought was that the lack of multiplier/divider can be somewhat compensated by adding a cheaper 8-bit barrel shifter instead. So according to your analysis, apparently even that didn't make economic sense for a 8-bit chip.
Thanks a lot for giving an authoritative assessment, Ken!
Besides, a 32-bit barrel shifter is considerably more complex than an 8-bit one. It's not just four times larger to deal with the wider operands; it also needs another two levels of muxes, making it closer to 6x as complex.
Yes, they don't have a barrel shifter because they don't have variable shift instructions. But unfortunately, you didn't answer the actual question: Why didn't they have it then? As I've already asked, Was it technical/cost limitations? Or was it simply the lack of demand/commercial reasons to add one?