Hacker News new | ask | show | jobs
by fl7305 813 days ago
Yeah, I think I remember seeing the sysops load the VAX CPU microcode using a floppy on the front panel (?)

I don't disagree in general. Writing a disassembler must have been a real challenge.

It's a waste of gates in the CPU. You put a lot of unnecessary combinatorical logic on the critical path, which limits the clock speed.

RISC chips remove everything that is not needed for the output of a C compiler, making the chip smaller and faster.

But from the perspective of Stallman writing a C compiler and having to generate and read lots of assembly code, I can see how the VAX assembly was easy to deal with. He could skip past a lot of stuff like BCD/CRC.

I'm not intimately familiar with 386 assembly, but my impression is that you have a lot of interdependencies and special cases? That can't be fun when writing a compiler. But at least it's not an accumulator-based CPU architecture like the 6502 or the PIC16, where everything has to be done through a single register.

1 comments

The 730 & 750 load microcode from cartridge tape (TU58). The 780/785 had a 'front end processor' (a baby PDP-11) which loaded microcode from floppies.

It's a waste of gates in the CPU.

Couple of things. First, VAX was designed when lots of stuff was still written in assembly, so they threw the kitchen sink at it. You didn't have a stdlib, you had huge numbers of assembly instructions. That wasn't how things evolved, but hindsight is 20-20, as they say. Second, C wasn't top-of-mind when designing VAX. The DEC systems programming language equivalent was BLISS, which is quite different than C. And FORTRAN & COBOL were probably more important.

And, yes, the folks who came up with RISC often cite the baroque nature of the VAX instruction set as inspiration for stripping things down. But there again, not driven by C per se; the first VLSI RISC, the IBM 801 (later PC RT), was targeted for a language called PL.8, a descendant of PL/I.

Sorry, I didn't mean to sound disparaging. Given my specific use case of running compiled C code, then an advanced CISC CPU has a lot of wasted gates. But that's not what the VAX was designed for as you pointed out.