Friday, March 31, 2023

Refurb weekend: DEC AlphaPC 164LX

It's time for another Crypto Ancienne checkpoint, which will be a post Real Soon Now(tm), including some new operating system frontiers. But part of the work for Cryanc is all the build regression testing on the supported platforms: each of the platforms I vouch for has to be able to compile the updated source code and use carl, its built-in mini-curl clone (officially the "useful" demonstration application), to successfully and completely download from a selection of real websites. One of these is harlan (named for Harlan Anderson, co-founder of Digital Equipment Corporation), my one and only DEC Alpha-based machine, a DEC AlphaPC 164LX running Digital UNIX Tru64.

The DEC Alpha is a good test for Crypto Ancienne because it's a fast (for the time) and finicky (for all time) RISC architecture, with notoriously strict alignment requirements and an extremely loose memory model. Early Alpha CPUs in fact entirely lacked instructions for direct short or byte access — 32-bit, 64-bit or bust. Unfortunately the Ethernet card blew while I was testing Cryanc 2.0 and I couldn't validate that version, so I just pushed that checkpoint out the door. Well, we can't do that two releases in a row, darn it. I have a replacement NIC and a mission. It's time for a Refurb Weekend.

I'm decidedly not a PC tower builder and I've only had two white-box tower systems in my life, neither of which I built, and only one of them still works (the Am5x86/133 I use for DOS gaming); I'd rather just buy a complete system. But the 164LX didn't come as a complete system. In November 1996 DEC introduced the AlphaPC 164 ATX motherboard, intended for OEM PC builders, and directly targeting the Pentium II using the second-generation-Alpha 21164 (EV5) CPU on a 500nm process at up to 500MHz. These systems were primarily intended to run Windows NT and could run off-the-shelf x86 software using FX!32 binary translation which DEC developed. FX!32 was fairly sophisticated, even producing Alpha-native DLLs that could be cached, and ran close to 50% the speed of a Pentium II system clock-for-clock on the same software (DEC envisioned the 400MHz parts being competitive with 200MHz P2s, and intended to sell them around $295 when Intel was selling the equivalent P2 for $525). FX!32 remained an essential part of Alpha Windows NT until support for the CPU was removed during the development of Windows 2000.

The second AlphaPC was this board, the April 1997 AlphaPC 164LX, which was also produced by Samsung under license. The 164LX was designed around the upgraded Alpha 21164A (EV56), manufactured on a 350nm process from 366 to 666MHz, and the first release that included the new Byte-Word Extension (BWX) instructions. The 164LX could accept a CPU up to 600MHz and up to 512MB of RAM. With alternate firmware (so-called System Reference Manual or SRM Console firmware, as opposed to the Windows NT-specific ARC firmware called AlphaBIOS) it would run Digital UNIX Tru64, and later Linux and NetBSD. Again, though, it was intended to compete directly with Windows PCs, so most of them came with AlphaBIOS and ran Windows NT.

I got this system used as a bare board, which meant it would need a case. At the time I settled on the Nanoxia Deep Silence since it was quiet, roomy, easy to work on, and a sexy black monolith worthy of Kubrick and screaming primordial apes. The stickers I designed myself, including the bright red leaping Alpha cat for the side panel, and I got them printed up in a small batch because a sexy computer deserves sexy stickers and may need them replaced at some point (not today fortunately).

But first, a good several years under the table has left it awfully dusty, so we'll do the usual spruce up while we're here.
The Nanoxia case features filters (rockcatchers, really) that can be removed and cleaned, and this tends to be a dusty room even with the HEPA filter running. When I built it I found a black faceplate floppy drive and CD-ROM to match the rest of the unit.
There are two 32-bit PCI slots, two 64-bit PCI slots, and two legacy ISA slots (since this was after all supposed to substitute for a contemporary desktop PC). Naturally all of our PCI cards are DEC-manufactured or OEMed. The defective DE500 NIC is at the top, a 10/100 Ethernet card based on a Tulip-series chip. In the middle is a DEC PBXGA-CA video card, using the "TGA" DEC 21030, and appears in DEC literature as the "ZLXp-E3 PCI accelerator for DEC OSF/1 and Open VMS." It supports 8-bit colour up to 1280x1024; the -BA and -CA video cards differ from the -AN, -BN and -CN cards which were supported with Windows NT. At the bottom is a DEC KZPBA-CX Ultra Wide SCSI SE card, a rebadged QLogic QLA1040. While the 164LX has an on-board IDE controller, all the drives in this unit (except the floppy disk) are SCSI.

The motherboard originally came with an ATX I/O shield but the person I got it from had lost it since then, so the ports just stick out bare. Well, not everything about it can be sexy.

And the guts aren't too sexy either, since I didn't care a great deal about routing cables as long as they stayed in the case. The power supply is an 550W Antec which was probably overkill. The two UW-SCSI drives are in the bays on the right, separate disks for NetBSD and Tru64, though this machine runs Tru64 most of the time. It has SRM firmware; I've never run Windows NT on it.
This unit has a 600MHz 21164A, the fastest CPU this board supports, in a "499 Socket." The fan and heatsink bolt onto prongs on the CPU's heat spreader. The 21164A was fabricated by both DEC and Samsung under license, though only Samsung made the 666MHz part and it was never supported in the 164LX.

Cache is a little odd in this CPU. The L1 cache is a relatively conventional split data/instruction cache, each a direct-mapped 8K in size, though the D-cache is dual-ported for higher performance (implemented by duplicating it on the die). The 96K L2 (called the "S-cache") is also on-die, but is three-way associative and split into two halves to return data faster (two cycles). The 2MB direct-mapped L3 cache, which the manual calls "backup cache" or "Bcache," is external and is formed by the grid of nine SRAMs directly above the CPU socket. The 164LX supports up to 4MB of L3 but I'm not aware of any boards that shipped that way and it is obviously not easily upgradeable.

Four 100MHz SDRAM DIMMs provide the maximum 512MB supported on this board. The IDE connectors are directly to the right of the DIMM slots, unpopulated in this machine, driven by a CMD PCI-0646 controller under them, and the Intel 82378ZB PCI-ISA bridge under that. The heatsinked chip is a DEC 21174 "Pyxis" combined memory and PCI controller.

A closer look at the very long PBXGA-CA video card with the duff Ethernet card removed.
Like most of their hardware, what DEC called the DE500 varied, though the basic notion was the same. We're actually installing an older used card, the DEC 21140-AC unit on the right, which requires an external transceiver (hence more chips on the board). The defective one on the left that we're tossing has a DEC 21143-PC chip which integrates the transceiver and supports NWAY autonegotiation, though for our purpose both are functionally equivalent.
And since we're looking at the board, always check the CMOS battery. This 2032 measured a marginal 3.001 volts on the multimeter, but that's still technically a charge, so I left it in place. The two ISA slots are shown here but we don't have anything to put in them that would work with Tru64.
Getting the rest of the dust out of the rockcatchers. Besides these front ones abutting the drive bay, which swing out to allow the fans to be unclipped, another filter sits under the power supply. Some compressed air clears them easily.
That's one red-hot cat. Who knew black could collect so much dust?
Booting up the SRM firmware. Our new card is detected and comes up perfectly.
And now at the login prompt for CDE. Unfortunately despite my work on smoking out more alignment quirks I still had to compile with -misalign (to the Compaq C compiler) to get Crypto Ancienne working. Oh well! More on that soon.
Yes, I not only own a full copy of Tru64 5.1B (the name changed with 4.0F in 1999), but also Compaq's Tru64 version of the Live Free or Die UNIX license plate originally used as a gag promotional item for DEC Ultrix (based on Armando Stettner's real New Hampshire license plate, which was, of course, "UNIX"). Compaq bought Digital in 1998.

The 164LX was succeeded by the cut-down 164SX and 164RX boards using the cost-reduced 21164PC CPU, which added SIMD in the form of the Motion Video Instructions extension. By then, however, Alpha was no longer able to effectively compete on price and these boards saw little market interest, especially due to their smaller S-cache and unchanged clock speeds. A 533MHz mobile version of the 21164PC announced in June 1997 was never released.

Overall, Alpha ended up being too little too late to save DEC, which saw its early lead in minicomputers and large systems savaged by the rise of the micro. (Half-hearted attempts like the Rainbow and DEC Professionals didn't help, and I say this as a proud owner of a DEC PRO 380.) Although Alpha was one of the first pure 64-bit architectures and Alpha-based hardware routinely competed well in benchmarks, DEC was also stung by the race-to-the-bottom nature of 1990s desktop PCs, not enough OEMs were interested in producing Alpha hardware, and sales ended up weaker than hoped. The 21264 (EV6) introduced out-of-order execution to the architecture and the 21364 (EV7) was the first high-performance CPU with an on-board memory controller, but Microsoft, observing its weak market performance, removed support for the CPU and Compaq scuttled the SMT-4 21464 (EV8) after the merger in 2001 in favour of Itanium. Compaq was unable to fully integrate its new purchase and was itself acquired by Hewlett-Packard in 2002, who discontinued Tru64 support in 2010.

No comments:

Post a Comment

Comments are subject to moderation. Be nice.