![]() | |
Designer | Digital Equipment Corporation |
---|---|
Bits | 32-bit |
Introduced | 1977 |
Design | CISC |
Type | Register-Register Register-Memory Memory-Memory |
Encoding | Variable (1 to 56 bytes) |
Branching | Condition code |
Endianness | Little |
Page size | 512 bytes |
Extensions | PDP-11 compatibility mode, VAX Vector Extensions,[1] VAX VM extensions |
Open | No |
Registers | |
General purpose | 16 × 32-bit |
Floating point | not present, uses the GPR |
Vector | 16 × 4096-bit (512 bytes) |
VAX is a CISC instruction set architecture (ISA) and line of superminicomputers and workstations developed by the Digital Equipment Corporation (DEC) in the mid-1970s. The VAX-11/780, introduced October 25, 1977, was the first of a range of popular and influential computers implementing the VAX ISA. Over 100 models were introduced over the lifetime of the design,[citation needed] with the last members arriving in the early 1990s. The VAX was succeeded by the DEC Alpha, which included several features from VAX machines to make porting from the VAX easier.
VAX was designed as a successor to the 16-bit PDP-11, one of the most successful minicomputers in history with approximately 600,000 examples sold. The system was designed to offer backward compatibility with the PDP-11 while extending the memory to a full 32-bit implementation and adding demand paged virtual memory. The name VAX refers to its "Virtual Address eXtension" concept that allowed programs to make use of this newly available memory while still being compatible with unmodified PDP-11 code. The name "VAX-11", used on early models, was chosen to highlight this capability.
Later models in the series dropped the -11 branding as PDP-11 compatibility was no longer a major concern. The line expanded to both high-end machines like the VAX 9000 as well as to the workstation-scale systems like the VAXstation series. The VAX family ultimately contained ten distinct designs and over 100 individual models in total. All of these were compatible with each other and normally ran the well-regarded VAX/VMS operating system.
VAX has been perceived as the quintessential CISC ISA, with its very large number of assembly-language-programmer-friendly addressing modes and machine instructions, highly orthogonal architecture, and instructions for complex operations such as queue insertion or deletion, number formatting, and polynomial evaluation.[2] It is historically one of the most studied and commented-on ISAs in computer history.[3]
Name
The name "VAX" originated as an acronym for Virtual Address eXtension, both because the VAX was seen as a 32-bit extension of the older 16-bit PDP-11 and because it was (after Prime Computer) an early adopter of virtual memory to manage this larger address space.
Early versions of the VAX processor implement a "compatibility mode" that emulates many of the PDP-11's instructions, giving it the 11 in VAX-11 to highlight this compatibility. Later versions offloaded the compatibility mode and some of the less used CISC instructions to emulation in the operating system software.
Instruction set
The VAX instruction set was designed to be powerful and orthogonal.[4] When it was introduced, many programs were written in assembly language, so having a "programmer-friendly" instruction set was important.[5][6] In time, as more programs were written in higher-level language, the instruction set became less visible, and the only ones much concerned about it were compiler writers.
One unusual aspect of the VAX instruction set is the presence of register masks[7] at the start of each subprogram.[4] These are arbitrary bit patterns that specify, when control is passed to the subprogram, which registers are to be preserved. Since register masks are a form of data embedded within the executable code, they can make linear parsing of the machine code difficult. This can complicate optimization techniques that are applied on machine code.[8]
Operating systems
The "native" VAX operating system is Digital's VAX/VMS (renamed to OpenVMS in 1991 or early 1992 when it was ported to Alpha, modified to comply with POSIX standards, and "branded" as compliant with XPG4 by the X/Open consortium).[9]
The VAX architecture and OpenVMS operating system were "engineered concurrently" to take maximum advantage of each other, as was the initial implementation of the VAXcluster facility. Other VAX operating systems have included various releases of BSD UNIX up to 4.3BSD, Ultrix-32, VAXELN, and Xinu. More recently, NetBSD[10] and OpenBSD[11] have supported various VAX models and some work has been done on porting Linux to the VAX architecture.[12] OpenBSD discontinued support for the architecture in September 2016.[13]
History
The first VAX model sold was the VAX-11/780, which was introduced on October 25, 1977 at the Digital Equipment Corporation's Annual Meeting of Shareholders.[14] Bill Strecker, C. Gordon Bell's doctoral student at Carnegie Mellon University, was responsible for the architecture.[15] Many different models with different prices, performance levels, and capacities were subsequently created. VAX superminicomputers were very popular in the early 1980s.
For a while the VAX-11/780 was used as a standard in CPU benchmarks. It was initially described as a one-MIPS machine, because its performance was equivalent to an IBM System/360 that ran at one MIPS, and the System/360 implementations had previously been de facto performance standards. The actual number of instructions executed in 1 second was about 500,000, which led to complaints of marketing exaggeration. The result was the definition of a "VAX MIPS," the speed of a VAX-11/780; a computer performing at 27 VAX MIPS would run the same program roughly 27 times faster than the VAX-11/780.
Within the Digital community the term VUP (VAX Unit of Performance) was the more common term, because MIPS do not compare well across different architectures. The related term cluster VUPs was informally used to describe the aggregate performance of a VAXcluster. (The performance of the VAX-11/780 still serves as the baseline metric in the BRL-CAD Benchmark, a performance analysis suite included in the BRL-CAD solid modeling software distribution.) The VAX-11/780 included a subordinate stand-alone LSI-11 computer that performed microcode load, booting, and diagnostic functions for the parent computer. This was dropped from subsequent VAX models. Enterprising VAX-11/780 users could therefore run three different Digital Equipment Corporation operating systems: VMS on the VAX processor (from the hard drives), and either RSX-11S or RT-11 on the LSI-11 (from the single density single drive floppy disk).
The VAX went through many different implementations. The original VAX 11/780 was implemented in TTL and filled a four-by-five-foot cabinet[16] with a single CPU. CPU implementations that consisted of multiple ECL gate array or macrocell array chips included the VAX 8600 and 8800 superminis and finally the VAX 9000 mainframe class machines. CPU implementations that consisted of multiple MOSFET custom chips included the 8100 and 8200 class machines. The VAX 11-730 and 725 low-end machines were built using AMD Am2901 bit-slice components for the ALU.
The MicroVAX I represented a major transition within the VAX family. At the time of its design, it was not yet possible to implement the full VAX architecture as a single VLSI chip (or even a few VLSI chips as was later done with the V-11 CPU of the VAX 8200/8300). Instead, the MicroVAX I was the first VAX implementation to move some of the more complex VAX instructions (such as the packed decimal and related opcodes) into emulation software. This partitioning substantially reduced the amount of microcode required and was referred to as the "MicroVAX" architecture. In the MicroVAX I, the ALU and registers were implemented as a single gate-array chip while the rest of the machine control was conventional logic.
A full VLSI (microprocessor) implementation of the MicroVAX architecture arrived with the MicroVAX II's 78032 (or DC333) CPU and 78132 (DC335) FPU. The 78032 was the first microprocessor with an on-board memory management unit[17] The MicroVAX II was based on a single, quad-sized processor board which carried the processor chips and ran the MicroVMS or Ultrix-32 operating systems. The machine featured 1 MB of on-board memory and a Q22-bus interface with DMA transfers. The MicroVAX II was succeeded by many further MicroVAX models with much improved performance and memory.
Further VLSI VAX processors followed in the form of the V-11, CVAX, CVAX SOC ("System On Chip", a single-chip CVAX), Rigel, Mariah and NVAX implementations. The VAX microprocessors extended the architecture to inexpensive workstations and later also supplanted the high-end VAX models. This wide range of platforms (mainframe to workstation) using one architecture was unique in the computer industry at that time. Sundry graphics were etched onto the CVAX microprocessor die. The phrase CVAX... when you care enough to steal the very best was etched in broken Russian as a play on a Hallmark Cards slogan, intended as a message to Soviet engineers who were known to be both purloining DEC computers for military applications and reverse engineering their chip design.[18][19]
In DEC's product offerings, the VAX architecture was eventually superseded by RISC technology. In 1989 DEC introduced a range of workstations and servers that ran Ultrix, the DECstation and DECsystem respectively, based on processors that implemented the MIPS architecture. In 1992 DEC introduced their own RISC instruction set architecture, the Alpha AXP (later renamed Alpha), and their own Alpha-based microprocessor, the DECchip 21064, a high performance 64-bit design capable of running OpenVMS.
In August 2000, Compaq announced that the remaining VAX models would be discontinued by the end of the year.[20] By 2005 all manufacturing of VAX computers had ceased, but old systems remain in widespread use.[21]
The Stromasys CHARON-VAX and SIMH software-based VAX emulators remain available and VMS is now managed by VMS Software Incorporated, although they only offer OpenVMS for Alpha systems and HPE Integrity Servers, with x86-64 support being developed, and do not offer it for VAX.
Processor architecture
DEC VAX registers | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Virtual memory map
The VAX virtual memory is divided into four sections. Each is one gigabyte (in the context of addressing, 230 bytes) in size:
Section | Address Range |
---|---|
P0 | 0x00000000 - 0x3fffffff |
P1 | 0x40000000 - 0x7fffffff |
S0 | 0x80000000 - 0xbfffffff |
S1 | 0xc0000000 - 0xffffffff |
For VMS, P0 was used for user process space, P1 for process stack, S0 for the operating system, and S1 was reserved.
Privilege modes
The VAX has four hardware implemented privilege modes:
No. | Mode | VMS Usage | Notes |
---|---|---|---|
0 | Kernel | OS Kernel | Highest Privilege Level |
1 | Executive | File System | |
2 | Supervisor | Shell (DCL) | |
3 | User | Normal Programs | Lowest Privilege Level |
Processor status register
The Process Status Register has 32 bits:
CM | TP | MBZ | FD | IS | cmod | pmod | MBZ | IPL | MBZ | DV | FU | IV | T | N | Z | V | C |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
31 | 30 | 29 | 27 | 26 | 25 | 23 | 21 | 20 | 15 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
Bits | Meaning |
---|---|
31 | PDP-11 compatibility mode |
30 | trace pending |
29:28 | MBZ (must be zero) |
27 | first part done (interrupted instruction) |
26 | interrupt stack |
25:24 | current privilege mode |
23:22 | previous privilege mode |
21 | MBZ (must be zero) |
20:16 | IPL (interrupt priority level) |
15:8 | MBZ (must be zero) |
7 | decimal overflow trap enable |
6 | floating-point underflow trap enable |
5 | integer overflow trap enable |
4 | trace |
3 | negative |
2 | zero |
1 | overflow |
0 | carry |
![](https://web.archive.org/web/20210319220552im_/https://upload.wikimedia.org/wikipedia/commons/thumb/e/ec/SPEC-1_VAX_05.jpg/220px-SPEC-1_VAX_05.jpg)
VAX-based systems
The first VAX-based system was the VAX-11/780, a member of the VAX-11 family. The high-end VAX 8600 replaced the VAX-11/780 in October 1984 and was joined by the entry-level MicroVAX minicomputers and the VAXstation workstations in the mid-1980s. The MicroVAX was superseded by the VAX 4000, the VAX 8000 was superseded by the VAX 6000 in the late 1980s and the mainframe-class VAX 9000 was introduced. In the early 1990s, the fault-tolerant VAXft was introduced, as were the Alpha compatible VAX 7000/10000. A variant of various VAX-based systems were sold as the VAXserver.
Canceled systems
Canceled systems include the "BVAX", a high-end ECL-based VAX, and two other ECL-based VAX models: "Argonaut" and "Raven".[22] Raven was canceled in 1990.[23] A VAX known as "Gemini" was also canceled, which was a fall-back in case the LSI-based Scorpio failed. It never shipped.
Clones
A number of VAX clones, both authorized and unauthorized, were produced. Examples include:
- Systime Computers Ltd of the United Kingdom produced clones of early VAX models such as the Systime 8750 (equivalent to the VAX 11/750).[24]
- Norden Systems produced the ruggedized, Military-specification MIL VAX series.[9]
- The Hungarian Central Research Institute for Physics (KFKI) produced a series of clones of early VAX models, the TPA-11/540, 560 and 580.[25]
- The SM 52/12[26] from Czechoslovakia, developed at VUVT Žilina (today Slovakia) and produced from 1986 at ZVT Banská Bystrica (today Slovakia).
- The East German VEB Robotron K 1840 (SM 1710) is a clone of the VAX-11/780 and Robotron K 1820 (SM 1720) is a copy of the MicroVAX II.
- The SM-1700 is a Soviet clone of the VAX-11/730, SM-1702 was a clone of MicroVAX II and SM-1705 was a clone of VAX-11/785.[27]
- The NCI-2780 Super-mini, also sold as Taiji-2780, is a clone of the VAX-11/780 developed by North China Institute of Computing Technology in Beijing.[28][29]
VAX users running MS/DOS applications from a VAX session
Adding a "card" such as Logicraft's multi-user 386Ware DOS server[30] enables "controlled access to PC resources without putting both a PC and a VT terminal on every desk top."[31][32] As of mid-1988, Logicraft and another firm, Virtual Microsystems Inc (VMI) were "the only commercially available products that let VAX/VMS systems run standard off-the-shelf PC applications from terminals and VAXstations."[32]
Some users went beyond running PC applications[33] and used serially shared CD-ROM access.[34]
Further reading
- Coy, Peter (January 6, 2021). "Who Remembers the VAX Minicomputer, Icon of the 1980s?". Bloomberg News. Retrieved January 9, 2021.
References
- ^ "VAX MACRO and Instruction Set Reference Manual". OpenVMS documentation. April 2001.
- ^ Payne, Mary; Bhandarkar, Dileep (1980). "VAX floating point: a solid foundation for numerical computation". SIGARCH Comput. Archit. News. ACM. 8 (4): pp 22–33. doi:10.1145/641845.641849. ISSN 0163-5964. S2CID 15021135.
- ^ Hennessy, John; Patterson, David (May 29, 2002). Computer Architecture: A Quantitative Approach. p. 151. ISBN 9780080502526.
- ^ a b Levy, Henry; Eckhouse, Richard (June 28, 2014). Computer Programming and Architecture: The Vax. Digital Press. ISBN 9781483299372.
- ^ "Another Approach to Instruction Set Architecture—VAX" (PDF).
... instruction set architectures, we chose the VAX as programmer-friendly instruction set, an asset
- ^ "VAX".
Esp. noted for its large, assembler-programmer-friendly instruction set --- an asset that
- ^ "VAX MACRO and Instruction Set Reference Manual". www.itec.suny.edu. Retrieved June 19, 2016.
- ^ Clinton F. Goss (August 2013) [First published June 1986]. "Machine Code Optimization — Improving Executable Object Code" (PDF) (Ph.D. dissertation). Computer Science Department Technical Report #246. Courant Institute, New York University. arXiv:1308.4815. Bibcode:2013arXiv1308.4815G. Retrieved August 22, 2013. Lay summary. Cite journal requires
|journal=
(help) - ^ a b Rainville, Jim; Howard, Karen, eds. (1997). "VAX/VMS at 20". Digital Equipment Corporation. Retrieved July 20, 2018.
- ^ "NetBSD/vax".
- ^ "OpenBSD/vax".
- ^ "Porting Linux to the VAX".
- ^ "OpenBSD 6.0". 2016. Retrieved June 20, 2017.
- ^ "VAX 11/780, The First VAX System (October 1977)".
- ^ Slater, Robert (1987). Portraits in Silicon. MIT Press. p. 213. ISBN 978-0-262-69131-4.
- ^ "VAX 11/780 Computer – CPU". Computer History Museum. Retrieved October 24, 2012.
- ^ The Computer History Simulation Project: MicroVAX II (1985)
- ^ micro.magnet.fsu.edu, Steal the best, retrieved January 30, 2008. The Russian phrase was: СВАКС... Когда вы забатите довольно воровать настоящий лучший
- ^ The Computer History Simulation Project: CVAX (1987), retrieved January 30, 2008
- ^ "VAX Systems: A letter from Jesse Lipcon". Archived from the original on August 15, 2000.
- ^ "If It Ain't Broke, Don't Fix It: Ancient Computers in Use Today". PCWorld. Retrieved June 19, 2016.
- ^ Mark Smotherman (July 19, 2008). "Who are the Computer Architects?". Retrieved September 30, 2008.
- ^ Supnik, Bob (2007). "Raven". Retrieved March 1, 2019.
- ^ "RAL Informatics Report 1984-85". Retrieved October 15, 2007.
- ^ "The TPA story". Retrieved October 15, 2007.
- ^ Dujnic, J.; Fristacky, N.; Molnar, L.; Plander, I.; Rovan, B. (1999). "On the history of computer science, computer engineering, and computer technology development in Slovakia". IEEE Annals of the History of Computing. 21 (3): 38–48. doi:10.1109/85.778981.
- ^ Laimutis Telksnys; Antanas Zilinskas (July 1999). "Computers in Lithuania" (PDF). IEEE Annals of the History of Computing. 21 (3): 31–37. doi:10.1109/85.778980. S2CID 16240778.
- ^ U.S. Congress, Office of Technology Assessment (July 1987). Technology transfer to China. U.S. Government Printing Office. p. 96. ISBN 9781428922914. OTA-USC-340.
- ^ Xia Nanyin; Chan Laixing (1990). "Satellite Launch and TT&C Systems of China and Their Roles in International Cooperation". In F. Sharokhi; J. S. Greenberg; T. Al-Saud (eds.). Space Commercialization: Launch Vehicles and Programs. American Institute of Aeronautics and Astronautics. p. 244. ISBN 0-930403-75-4.
- ^ R. Ribitzky (1991). "Integrating CD-ROM Medline with electronic mail". Proceedings. Symposium on Computer Applications in Medical Care: 578–82. PMC 2247597. PMID 1807668.
A 486Ware system from Logicraft and a five-members VAX-Cluster (respectively), are linked in a DECNet environment that is the foundation of Children's Hospital ...
- ^ Jeffrey A. Steinberg (January 25, 1988). "Serving up MS-DOS on Ethernet". Digital Review.
- ^ a b Kristina Sorenson (April 4, 1988). "VMI, Logicraft up the Ante". Digital Review.
a new version of Logicraft's 386Ware that provides more support for the VAXstation
- ^ "Logicraft VAX-to-PC servers". Computerworld. June 3, 1991. p. 47.
- ^ "CD-ROM Networking Developments at South Bank University Library". Vine. 23 (4): 31–35. April 1, 1993. doi:10.1108/eb040516.
External links
- HP: VAX Systems
- DEC Microprocessors
- SimH VAX Open source emulator that supports VAX architecture
- The complete Digital Technical Journals