
Building a vacuum tube computer - ChickeNES
https://www.ludd.ltu.se/~ragge/vtc/
======
causality0
>but electron speed in cupper is about 15-20cm per nanosecond so it is usually
not a big factor.

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.

~~~
NikolaNovak
This blew my high-school-physics mind; is there a quick primer / ELI5 on this
somewhere? Are you saying that if I connect a battery to a lightbulb,
"electricity" moves at speeds we're accustomed to, but "electrons" will only
move from one side terminal of battery, through a bulb, to the other side, way
way slower than laypeople think? Or did I misread and oversimplify your
message? :|

~~~
causality0
Basically correct. If you could attach a magical GoPro to a single electron in
a conductor and applied voltage to it, you would see that it zips around at
very high speeds in various directions across very small distances and only
averages out as moving in the right direction. This average velocity is the
drift speed. If you magically labeled all the electrons in the lamp's wiring,
you would find it contains (almost) all the same electrons it started with.
The company just bills you for the energy it took to move those electrons back
and forth like the teeth on a sawblade.

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.

~~~
mstade
> 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.

This made it click for me, thanks!

~~~
jackhack
This is appropriate: [https://www.askamathematician.com/2012/04/q-can-you-
poke-som...](https://www.askamathematician.com/2012/04/q-can-you-poke-
something-thats-far-away-with-a-stick-faster-than-it-would-take-like-to-get-
there/)

------
jhallenworld
I would not target RISC-V- they need to review much simpler machines, like
Princeton IAS or Manchester Baby, and they should try a bit serial design.

[https://en.wikipedia.org/wiki/Manchester_Baby](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:

[https://tubes-store.com/index.php?cPath=30_101](https://tubes-
store.com/index.php?cPath=30_101)

~~~
tachyonbeam
The super tiny tubes are cute. They look like they have to be soldered in
though. Could be annoying to replace when they break down? The bigger tubes
are socketed.

~~~
klodolph
There are special types of high-reliability tubes used for computers. If I
recall correctly, one of the tradeoffs is that they use a different alloy for
the wire, which makes the wire more expensive to manufacture because the
process wears out the tooling more quickly. I can’t find the article where I
found this information, though.

~~~
C1sc0cat
The key to long life for valve (tube) computers was never turning it off.

~~~
klodolph
That’s not really the key. When ENIAC was first run, several tubes would fail
each day—and yes, it was turned on all the time. They addressed these problems
by adjusting heater currents. In general, there’s a tradeoff here because you
don’t want to strip the cathode (which _can_ wear out a tube quickly) and you
want good performance from the tube. The on-off cycle effect on filaments is
also largely due to surge currents with a cold tube, at least for typical
designs, and there are various techniques to limit the surge currents which
will extend tube life.

------
rrss
Some of the early tube computers had some really interesting circuits. One
that comes to mind is the use of "kirchoff adders," which are more-or-less
analog adders with easy one-bit DACs and ADCs on the inputs/outputs. I can't
remember if this ended up in the "final" IAS machine, but I'm pretty sure it
was used in the MANIAC and is described in the "Second Interim Progress Report
on the Physical Realization of an Electronic Computing Instrument":
[https://library.ias.edu/files/pdfs/ecp/secondinterimpro02ins...](https://library.ias.edu/files/pdfs/ecp/secondinterimpro02inst.pdf).

------
ncmncm
Seems like a PDP-8 would be a smarter start. Only 8 instructions, IIRC, and a
few 12-bit registers. And it can emulate a PDP-11, so (the emulator) could run
UNIX.

~~~
segfaultbuserr
Definitely.

BTW, PDP-11 (and PDP-8?) uses 74 logic chips, not discrete transistors, so I
would say it's already complex enough for tubes.

~~~
VLM
The original -8 (no slash anything) used discrete transistors and DTL logic.

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.

~~~
juliangoldsmith
As far as backplanes go, you could go with FPC cables instead of wire-
wrapping. That would fit the new components theme, but would require actual
circuit boards for the backplanes.

------
PhilWright
Maybe they only recently decided to target RISC-V but the ALU design does not
cover all the functions needed. It is missing implementation of the shift
instructions, for that they need a 32 bit 5-level barrel shifter. Plus they
also need a comparison block which is quite complex on its own. Given the
number of years it has taken to get to this point, if could be 2050 before it
is working.

~~~
Animats
You don't need a barrel shifter. You can shift one bit at a time. It's slower,
but takes far fewer components.

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.

~~~
segfaultbuserr
> _You don 't need a barrel shifter. You can shift one bit at a time. It's
> slower, but takes far fewer components._

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?

~~~
kens
I examined the ARM-1's barrel shifter on the die [1]. It takes roughly 10% of
the chip so it's a fairly hefty investment.

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...](http://www.righto.com/2015/12/reverse-engineering-
arm1-ancestor-of.html)

~~~
segfaultbuserr
> _I examined the ARM-1 's barrel shifter on the die. It takes roughly 10% of
> the chip so it's a fairly hefty investment._

> _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!

------
PaulHoule
RISC-V has pretty big registers and a lot of them, so you will need more tubes
than you otherwise might...

~~~
Taniwha
there's an embedded subset with half the number of registers

~~~
Taniwha
(and people have talked about doing 16-bit subsets)

