Back to Diane's HomePage

Diane's DEC Alpha & VAX Page

Deutsche Version


Diane Neisius aka ~medusa

Last update: 15. Dezember 2012


DEC Alpha 21164



Anti spam coded email adress :
medusa ät diane minüs neisius döt de

DEC Alpha 21164

Somtimes a project starts by accident. For long time I tried to get an Alpha chip somewhere. As these things go it was a lucky find to get a cheap one from the electric bay. But I still was curious if that block of ceramic and gold still would work which let me end up with another lucky bid on an Alpha PC mainboard. A real good one with an additional 533 MHz 21164 CPU, it had 1GB RAM on it plus an additional PCI64 card with 2x ethernet, 2x SCSI and a graphics chip. To be honest I do not need the card (if someone needs it, I'm willing to trade it in, preferably for some PDP-11 or microVAX hardware).
All stuff worked quite well, even the first CPU chip runs slightly overclocked at 466 MHz quite well on the board.
Picture 1 - This chip started my Alpha project. Bought as scrap in the 'bay, it is still fully operational.

So, what to do with a naked AlphaPC 164LX board? For me the first goal is (of course) to put Debian Linux on it... there are quite good tutorials about this in the web so I omit the installation procedure here just giving some hints where problems arised.
I used the first serial port on the board (that's the upper of the two DB9 plugs). Connected it via a null modem cable to a PC running a terminal emulator, same way as for my PDP-11. A common PC style ATX PSU plugged into the power connector of the Alpha board and up & running was the SRM console.
Picture 2 - The AlphaPC 164LX viewed from above. Characteristic pattern by L3 cache chips is upper left edge of the photo. I used two CF cards in IDE adaptor boards in place of true HDDs, their control leds light up half of the board. In one of the PCI32 slots there is an old Realtek 8139 ethernet card (hard to see, just the edge) which is detected by the OS.

Picture 3a/b - Besides the PC ATX PSU there should be at least a power button (left besides the 20-pin power connector). I also added a power led, a HDD led, and a reset button (left photo). All buttons/leds I soldered onto pieces of IC sockets and plugged them directly to the pins on the board.

For the first boot I removed the DVD drive from my desktop PC and connected it to the secondary IDE plug. The Debian installer DVD boots quite nice from it using the SRM command "boot dqb0 -flags 1".
On the primary IDE bus I plugged a CF adaptor holding an 8GB card. A poor girl's SSD in a way, it is way enough for such an old machine.
At first all this worked quite well. Debian installed automatically on the 8GB CF card. Just the install screen looked a bit funny via the monochrome terminal/ serial interface screen but no problems so far. Just rebooting after the installer finished did NOT work. I tried a number of tips and tricks from the Alpha Linux nerd forums around the web but nothing helped. Even partitioning of the drive in BSD mode was a fail.

Booting from installer DVD still worked well, and a change to rescue mode, open a shell and a "chroot" to my CF card filesystem did as well. Thus, my filesystem was ok just the bloody SRM didn't want to boot it. Which, on the other hand, it did from an ISO file system... hmmmm...
Alas, the solution was to set up the /boot partition as its own ISO disk. I copied /boot from the 8GB card to my PC (using a multi card adaptor that's a lot easier than to change an entire HDD). Made an *.iso image of /boot by a common CD burner app (use your favourite one, doesn't matter as long as it does ISO9660 format). Next step is done by the tool "isomarkboot" which makes the *.iso bootable on an Alpha. The aboot loader has to be in the *.iso's root (from a Debian install, it already is; its name for the 164LX board is "bootlx").
On the shell then enter "isomarkboot mybootiso.iso bootlx" (substitute the name of your *.iso here). Before setting up the iso image I also customized some of the Linux kernel parameters in the file etc/aboot.conf. As I planned to run the board only via serial console, I put in here a "console=ttyS0" as a kernel parameter.
Last step was to "burn" the *.iso image to a second CF card. The smallest cheapest slowest card will do here for the iso size is just 100MB, leaving the rest of the CF card unused.
Of course, also a real burn of the *.iso image to a CD is possible. Tried it, too, worked the same way as a CF card adaptor on the secondary IDE. Just my desktop PC wanted its DVD drive back. ;)
Picture 4 - AlphaPC 164LX board running under Debian Linux. Left in the back the serial null modem cable. A window running a terminal emulator is visible on the desktop flatscreen. Serial is running 9600 baud, 8bit, no parity, 1 stopbit (default). Stylish black-green VT102 which I use normally for my PDP also fits the 15 year old Alpha well, too...

Yes, and now, what to do with it... of course I did a performance test with linpack. I was surprised the Alpha has quite a power, it keeps close to the results of newer ARM based machines such as the iPad 1 or a Wii.
Using the full 1GB ram even a 10,000x10,000 Matrix fits, but it takes the 21164 CPU about 1.5 hours to do the LU decomposition of it.

Missing: a case. A small 2HU one would be nice. Like very much the style of the AlphaStation 500 ones...


With a PDP-11 and an Alpha there was just a VAX missing in my collection... concerning this I also first thought only about a CPU (maybe a fancy KA820?). Of course also in this case it would be nice if that old silicon still would be able to run. Without additional effort, a check only is possible in my Qbus PDP-11 backplane... which led me towards the microVAXen.
Got a cheap KA630 CPU in the end, the original microVAX II with the 78032 chip on it which was the first VAX core fitting in a single chip. Mine is an "A2" which looks like the "A1". Nice item for a collection. Also this CPU has nearly the same power as the famous VAX 11/780 which can lead to some naming fantasy about the uVAX II (see below).
The KA630 CPU has a console interface, ROM, 1MB RAM and firmware onboard. Thus it can run standalone - the console firmware reminds a bit to the Alpha SRM console in a rudimentary form. Just enough to understand the Alpha's origin.
The M7606 is quad-height module (the KA630 CPU) thus it doesn't fit into a dual backplane I own. However, a closer look shows there are only adress bus signals on the C and D finger. The power supply leads are redundantly present on the A and B fingers. All control signals of the VAX Qbus are the same as for the PDP-11 Qbus (especially the DC_OK, see my PDP-11 page). So it is possible to run a lone uVAX CPU in a dual backplane. You just can't plug any other module in. Additionally, my dual backplane is only Q18 but since there is nothing else present it doesn't matter.

Picture 5 - Probably the weirdest VAX found in the web: my H9281 dual backplane (from my PDP-11/03) removed from its card cage for otherwise a quad module will not be able to get a mechanical fit. The naked backplane can't lie on it bottom side or else the wire-wrap pins will bend and produce shorts. Thus, the uVAX II CPU with the dual backplane only on its AB fingers is turned by 90 degrees here. Left end hangs the little control board from the PDP.
Important: the uVAX must get forced air cooling. Without both the 78032 and 78132 chips become to hot to touch after a few minutes. Not good as every owner of an overclocked graphics card knows, too. Semiconductors live the longer the cooler they're kept. Cooling here is done by a free-hanging PC case fan which blows air to the both mushroom-shaped heat sinks.
Behind the board there is my PC flatscreen with a terminal emulator - again, stylish black and green.

Also the serial console interface can use stuff from the PDP-11. It has same pinout as the serial interfaces on a DLV11-J quad serial card so I already had cables for it - see my PDP-11 page for it, too.
All else connectors of the CPU board can be left unconnected for a first test. This is like logical zeroes on the pins and means:

This way the uVAX II CPU starts for a test. Console prompt is already the same which is used still at the Alpha SRM: a ">>>".
Immediately after entering the console mode the CPU is in interrupt mode of highest priority (all interrupts are masked out). Interrupt stackpointer (ISP) is mapped to R14 and initialized to value 0x200. Moreover, virtual memory mapping is switched off thus all memory addresses are physical RAM addresses.

Picture 6 - A view to the "L" special jumper I soldered from an IC socket. It is plugged to J2 and pulls HLT ENB pin and two of the serial config pins to ground (means a logical "1" in the inverted input logic). CPU boots to console mode immediately and doesn't try to find some physical boot device. Baud rate is 9600 which is standard for PC connection. Refer to the KA630 user guide for details.
Left of connector J2 my serial cable from the DLV11-J board reused here. Right of it the status leds of the uVAX. Green indicates DC_OK, the four red leds are the console status. In halt mode it displays an "8", binary "1000" or "on-off-off-off".

At the serial terminal emulator there can be done queries of memory or internal CPU registers just like the PDP-11 but with a bit more comfort. "e" is for "examine" and prints hex values, "d" is "deposit" for writing hex into registers or addresses. "s" starts a small program which was toggled in to a memory location. First thing I did was to check for the memory size just like I did for the smaller PDP11:

P  00001000  D4 50          <--- R0 = 0
P  00001002  90 80 51       <--- Load R1 from adress in R0, increment R0
P  00001005  11 FB          <--- ...and loop back to the previous comand
The "P" the listing shows indicates a physical RAM location (the console uses "G" for general purpose registers and "I" for internal registers).
If this little program is started by a "s 1000" it runs for a second until it stops with a "DBL" error. The CPU still is in interrupt mode and got a second one from the access to the first non-existant memory location. Now, by a "e /g 0" one can query the content of R0 which holds the physical memory size. For mine with only the 1MB onboard RAM this is a hex 00100000.

To be continued!

Appendix - VAX 11/630

In short: there is no and never was a VAX 11/630 nor a microVAX 11/630. But there was a VAX in a case called 630QZ or 630QY which had the headline "MicroVAX II 630QZ/QY" in its manual. The font of the manual had only an upright line for the "1" or "I" (or, "l") letter. Thus a misreading easily was possible.
On the other hand, the (mis-)suspection this actually reads 11/630 isn't a total nonsense. In a uVAX II there is a KA630 CPU, while the famous VAX 11/780 has a KA780 CPU indeed. So, ... ;)
I've to say, I could well imagine a custom microVAX II case inspired by an 11/780 design with a faked "11/630" logo on it. Maybe I'll make one. :)


Debian homepage -- All the fan of pure GNU/Linux needs :)

Bitsavers -- A gold mine of documentation for old computers

HP Alpha Archive -- Documentation fof Alpha Hardware at HP



[1] Alpha 21164 Microprocessor Hardware Reference Manual, DEC, Maynard, Massachusetts 1996

[2] Alpha 21164 Microprocessor Data Sheet, Maynard, DEC, Massachusetts 1996

[3] AlphaPC 164LX Motherboard Technical Reference Manual, Compaq Computer Corporation 1999

[4] AlphaPC 164LX Motherboard Tru64 UNIX User's Manual, Compaq Computer Corporation 1999

[5] Alpha Architecture Reference Manual 4th Edition, Compaq Computer Corporation 2002

[6] KA630-AA CPU Module User's Guide, DEC 1986

[7] VAX-11 Architecture Reference Manual, Revision 6.1, DEC 1981

[8] MicroVAX II 630QY, 630QZ Operation, DEC, Maynard, Massachusetts 1986

Created: 15. Dezember 2012
© 2012 Diane Neisius