![]() | |
Designer | Digital Equipment Corporation |
---|---|
Bits | 32-bit |
Introduced | 1977; 48 years ago (1977) |
Design | CISC |
Type |
|
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 Virtualization Extensions[2] |
Open | No |
Predecessor | PDP-11 |
Successor | Alpha |
Registers | |
General-purpose | 16 × 32-bit |
Floating point | not present, uses the GPR |
Vector | 16 × 4096-bit (64 elements of 64 bits each) |
VAX (an acronym forvirtual address extension) is a series of computers featuring a32-bitinstruction set architecture (ISA) andvirtual memory that was developed and sold byDigital Equipment Corporation (DEC) in the late 20th century. TheVAX-11/780, introduced October 25, 1977, was the first of a range of popular and influential computers implementing the VAX ISA. The VAX family was a huge success for DEC, with the last members arriving in the early 1990s. The VAX was succeeded by theDEC Alpha, which included several features from VAX machines to makeporting from the VAX easier.
VAX was designed as a successor to the16-bitPDP-11, one of the most successfulminicomputers in history with approximately 600,000 units sold. The system was designed to offerbackward compatibility with the PDP-11 while extending the memory to a full32-bit implementation and addingdemand pagedvirtual memory. The name VAX refers to itsvirtual address extension concept that allowed programs to make use of this newly available memory while still being compatible with unmodified user mode PDP-11 code. The name "VAX-11", used on early models, was chosen to highlight this capability. The VAX ISA is considered acomplex instruction set computer (CISC) design.
DEC quickly dropped the −11 branding as PDP-11 compatibility was no longer a major concern. The line expanded to both high-endmainframes like theVAX 9000 as well as to theworkstation-scale systems like theVAXstation series.The VAX family ultimately contained ten distinct designs and over 100 individual models in total. All of them were compatible with each other and normally ran theVAX/VMSoperating system.
VAX has been perceived as the quintessential CISC ISA,[3] with its very large number ofassembly language programmer-friendlyaddressing modes and machine instructions, highlyorthogonal instruction set architecture, and instructions for complex operations such asqueue insertion or deletion, number formatting, andpolynomial evaluation.[4]
The name "VAX" originated as anacronym forvirtual address extension, both because the VAX was seen as a 32-bit extension of the older16-bitPDP-11 and because it was (afterPrime Computer) an early adopter ofvirtual 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.
The VAX instruction set was designed to be powerful andorthogonal.[5] When it was introduced, many programs were written in assembly language, so having a "programmer-friendly" instruction set was important.[6][7] In time, as more programs were written inhigh-level programming languages, 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[8] at the start of each subprogram. These are arbitrary bit patterns that specify, when control is passed to the subprogram, which registers are to be preserved. On most architectures, it is up to the compiler to produce instructions to save out the needed data, typically using thecall stack for temporary storage. On the VAX, with 16 registers, this might require 16 instructions to save the data and another 16 to restore it. Using the mask, a single 16-bit value performs the same operations internally in hardware, saving time and memory.[5]
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.[9]
The native VAXoperating system is Digital's VAX/VMS (renamed toOpenVMS in 1991 or early 1992 when it was ported toAlpha, modified to comply withPOSIX standards, andbranded as compliant withXPG4 by theX/Open consortium).[10] The VAX architecture and VMS operating system were "engineered concurrently" to take maximum advantage of each other, as was the initial implementation of theVAXcluster facility.
During the 1980s, ahypervisor for the VAX architecture namedVMM (Virtual Machine Monitor), also known as theVAX Security Kernel, was developed at Digital with the aim of allowing multiple isolated instances of VMS and ULTRIX to be run on the same hardware.[11] VMM was intended to achieveTCSEC A1 compliance. By the late 1980s, it was operational onVAX 8000 series hardware, but was abandoned before release to customers.
Other VAX operating systems have included various releases ofBerkeley Software Distribution (BSD)UNIX up to4.3BSD,Ultrix-32,VAXELN, andXinu. More recently,NetBSD[12] andOpenBSD[13] have supported various VAX models and some work has been done on portingLinux to the VAX architecture.[14] OpenBSD discontinued support for the architecture in September 2016.[15]
The first VAX model sold was theVAX-11/780, which was introduced on October 25, 1977, at the Digital Equipment Corporation's Annual Meeting of Shareholders.[16] Bill Strecker,C. Gordon Bell's doctoral student atCarnegie Mellon University, was responsible for the architecture.[17] Many different models with different prices, performance levels, and capacities were subsequently created. VAXsuperminicomputers were very popular in the early 1980s.
For a while the VAX-11/780 was used as a standard inCPUbenchmarks. It was initially described as a one-MIPS machine, because its performance was equivalent to anIBM 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 termVUP (VAX Unit of Performance) was the more common term, because MIPS do not compare well across different architectures. The related termcluster VUPs was informally used to describe the aggregate performance of aVAXcluster. (The performance of the VAX-11/780 still serves as the baseline metric in theBRL-CAD Benchmark, a performance analysis suite included in the BRL-CAD solid modeling software distribution.) The VAX-11/780 included a subordinate stand-aloneLSI-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 inTTL and filled a four-by-five-foot cabinet[18] with a singleCPU. Through the 1980s, the high-end of the family was continually improved using ever-faster discrete components, an evolution that ended with the introduction of theVAX 9000 in October 1989. This design proved too complex and expensive and was ultimately abandoned not long after introduction. CPU implementations that consisted of multipleemitter-coupled logic (ECL)gate array ormacrocell array chips included theVAX 8600 and 8800 superminis and finally the VAX 9000mainframe class machines. CPU implementations that consisted of multipleMOSFET custom chips included the 8100 and 8200 class machines. The VAX 11-730 and 725 low-end machines were built usingAMD Am2901bit-slice components for the ALU.
TheMicroVAX 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 singleVLSI chip (or even a few VLSI chips as was later done with theV-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 ofmicrocode required and was referred to as the "MicroVAX" architecture. In the MicroVAX I, theALU and registers were implemented as a singlegate-array chip while the rest of the machine control was conventional logic.
A fullVLSI (microprocessor) implementation of the MicroVAX architecture arrived with theMicroVAX II's 78032 (or DC333) CPU and 78132 (DC335) FPU. The 78032 was the first microprocessor with an on-boardmemory management unit[19] The MicroVAX II was based on a single, quad-sized processor board which carried the processor chips and ran theMicroVMS orUltrix-32operating systems. The machine featured 1 MB of on-board memory and aQ22-bus interface withDMA 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 andNVAX implementations. The VAX microprocessors extended the architecture to inexpensiveworkstations 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 phraseCVAX... when you care enough to steal the very best was etched in broken Russian as a play on aHallmark Cards slogan, intended as a message to Soviet engineers who were known to be both purloining DEC computers for military applications andreverse engineering their chip design.[20][21] By the late 1980s, the VAX microprocessors had grown in power to be competitive with discrete designs. This led to the abandonment of the 8000 and 9000 series and their replacement by Rigel-powered models of theVAX 6000, and later by NVAX-poweredVAX 7000 systems.
In DEC's product offerings, the VAX architecture was eventually superseded byRISC technology. In 1989 DEC introduced a range of workstations and servers that ranUltrix, theDECstation andDECsystem respectively, using processors fromMIPS Computer Systems. In 1992 DEC introduced their own RISC instruction set architecture, theAlpha AXP (later renamed Alpha), and their own Alpha-based microprocessor, theDECchip 21064, a high performance64-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,[22] but old systems remain in widespread use.[23] The StromasysCHARON-VAX andSIMH software-based VAX emulators remain available. VMS is now developed by VMS Software Incorporated, albeit only for theAlpha,HPE Integrity, andx86-64 platforms.
|
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.
The VAX has four hardware implemented privilege modes:
No. | Mode | VMS use | Notes |
---|---|---|---|
0 | Kernel | OS kernel | Highestprivilege level |
1 | Executive | File system | |
2 | Supervisor | Shell (DCL) | |
3 | User | Normal programs | Lowest privilege level |
The process status longword contains 32 bits:
CM | TP | MBZ | FD | IS | cmod | pmod | MBZ | IPL | MBZ | DV | FU | IV | T | N | Z | V | C |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
31 | 30 | 29:28 | 27 | 26 | 25:24 | 23:22 | 21 | 20:16 | 15:8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
Bits | Meaning | Bits | Meaning |
---|---|---|---|
31 | PDP-11 compatibility mode | 15:8 | MBZ (must be zero) |
30 | trace pending | 7 | decimal overflow trap enable |
29:28 | MBZ (must be zero) | 6 | floating-point underflow trap enable |
27 | first part done (interrupted instruction) | 5 | integer overflow trap enable |
26 | interrupt stack | 4 | trace |
25:24 | current privilege mode | 3 | negative |
23:22 | previous privilege mode | 2 | zero |
21 | MBZ (must be zero) | 1 | overflow |
20:16 | IPL (interrupt priority level) | 0 | carry |
The first VAX-based system was theVAX-11/780, a member of theVAX-11 family. The high-endVAX 8600 replaced the VAX-11/780 in October 1984 and was joined by the entry-levelMicroVAX minicomputers and theVAXstation workstations in the mid-1980s. The MicroVAX was superseded by theVAX 4000, the VAX 8000 was superseded by theVAX 6000 in the late 1980s and the mainframe-classVAX 9000 was introduced. In the early 1990s, thefault-tolerantVAXft was introduced, as were theAlpha compatibleVAX 7000/10000. A variant of various VAX-based systems were sold as theVAXserver.
System Industries developed an ability to give more than one DEC CPU, but not at the same time, write access to a shared disk. They implemented an enhancement namedSIMACS (simultaneous machine access),[24][25] which allowed their special disk controller to set asemaphore flag for disk access, allowing multiple WRITES to the same files; the disk is shared by multiple DEC systems.SIMACS also existed on PDP-11RSTS systems.
Canceled systems include theBVAX, a high-endemitter-coupled logic (ECL) based VAX, and two other ECL-based VAX models:Argonaut andRaven.[26] Raven was canceled in 1990.[27] A VAX namedGemini was also canceled, which was a fall-back in case the LSI-basedScorpio failed. It never shipped.
A number of VAX clones, both authorized and unauthorized, were produced. Examples include:
... instruction set architectures, we chose the VAX as programmer-friendly instruction set, an asset
Esp. noted for its large, assembler-programmer-friendly instruction set --- an asset that