Anders Magnusson, writing on the Port-vax NetBSD mailing list:
Some time ago I ended up in an architectural discussion (risc vs cisc etc…) and started to think about vax. Even though the vax is considered the “ultimate cisc” I wondered if its cleanliness and nice instruction set still could be implemented efficient enough. Well, the only way to know would be to try to implement it 🙂 I had an 15-year-old demo board with a small low-end FPGA (Xilinx XC3S400), so I just had to learn Verilog and try to implement something. And it just passed EVKAA.EXE:
Along with the development of a VAX implementation in an FPGA, discussions arose about possible 64-bit extensions:
For userspace; the vax architecture itself leave the door open for expanding the word size. The instructions are all defined to use only the part of a register it needs, so adding a bunch of ‘Q’ instructions are a no-brainer. Argument reference will work as before. The JMP/JSR/RET/… might need a Q counterpart, since it suddenly store/require 8 bytes instead of 4. Kernel; the hardware structures (SCB, PCB, …) must all be expanded. Memory management changed (but the existing leave much to wish for anyway). All this is probably a quite simple update to the architecture.
It’s nice to see people still putting work and effort into what is nearly a half-century old, and otherwise obsolete, instruction set.
Nice project. I don’t know enough about VAX to comment and there are people around who have much more architectural experitise than I do but it is a nice “What if” and may lead somewhere. While ARM began as an affordable solution to a problem and this project appears to be different you never know where it may lead.
Obsolete? Not if it gets the job done.
Hence I still use Windows 2000 or XP depending on the tasks (I refuse to throw away computers that works, even though they aren’t as power efficient as today’s computers)
The Windows NT kernel was basically VAX rewritten in C.
https://www.itprotoday.com/compute-engines/windows-nt-and-vms-rest-story
VMS.
VMS was an operating system, VAX was an instruction set/computer architecture.
And yes, it’s quite well known that Windows NT is basically a VMS copy under the hood. There’s a few changes, but much of the basic fundamentals are very VMS-like
… but why?
DEC themselves came to the conclusion it wasn’t worth the effort to extend VAX to 64-bit 30 years ago. Ergo Alpha….
Yes, 30 years ago in that context – VAX performance was lagging far behind the RISC chips of the time (MIPS and SPARC specifically) and DEC couldn’t make the VAX architecture perform against those using the available techniques. It was decided to focus on a RISC architecture (Alpha, eventually) instead of continuing to enhance the VAX ISA. This was long before the X86/X64 extreme gymnastics and even before the chip feature set dropped in size enough to even try some of these. For most of the VAX’s life, the micro-implementations were chipset (multi-chip) and no single-chip solutions. Today that fits on the FPGA easily. A modern implementation of VAX using modern silicon and modern techniques would probably be a good performer, or at least on-par with the Intel and AMD offerings of today.