Recent from talks
Nothing was collected or created yet.
| Designer | Digital Equipment Corporation |
|---|---|
| Bits | 32-bit |
| Introduced | 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 for virtual address extension) is a series of computers featuring a 32-bit instruction set architecture (ISA) and virtual memory that was developed and sold by Digital Equipment Corporation (DEC) in the late 20th century. The VAX-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 the DEC Alpha, which included several features from VAX machines to make porting from the VAX easier.
Description
[edit]VAX was designed by Digital Equipment Corporation (DEC) as a successor to the 16-bit PDP-11, one of the most successful minicomputers in history[3] with approximately 600,000 units 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 user mode PDP-11 code. The name "VAX-11", used on early models, was chosen to highlight this capability. The VAX ISA is considered a complex 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-end mainframes 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 them were compatible with each other and normally ran the VAX/VMS operating system.
VAX has been perceived as the quintessential CISC ISA,[4] with its very large number of assembly language programmer-friendly addressing modes and machine instructions, highly orthogonal instruction set architecture, and instructions for complex operations such as queue insertion or deletion, number formatting, and polynomial evaluation.[5]
Name
[edit]
The name "VAX" originated as an acronym for virtual address extension, both because the VAX was seen as a 32-bit extension of the 16-bit PDP-11[3] 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
[edit]The VAX instruction set was designed to be powerful, orthogonal,[6] and "compiler-friendly".[3] When it was introduced, many programs were written in assembly language, so having a "programmer-friendly" instruction set was important.[7][8] In time, as more programs were written in high-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[9] 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 the call 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.[6]
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.[10]
Operating systems
[edit]
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).[11] The company wanted to avoid VAX having many incompatible operating systems like PDP-11;[3] VAX and VMS were "engineered concurrently" to take maximum advantage of each other, as was the initial implementation of the VAXcluster facility.
During the 1980s, a hypervisor for the VAX architecture named VMM (Virtual Machine Monitor), also known as the VAX 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.[12] VMM was intended to achieve TCSEC A1 compliance. By the late 1980s, it was operational on VAX 8000 series hardware, but was abandoned before release to customers.
Other VAX operating systems have included various releases of Berkeley Software Distribution (BSD) UNIX up to 4.3BSD, Ultrix-32, VAXELN, and Xinu. More recently, NetBSD[13] and OpenBSD[14] have supported various VAX models and some work has been done on porting Linux to the VAX architecture.[15] OpenBSD discontinued support for the architecture in September 2016.[16]
History
[edit]
VAX design began in 1975, about when DEC recognized that PDP-11's 16-bit architecture was too limiting in the amount of addressable memory.[3] The first VAX model sold was the VAX-11/780, introduced on October 25, 1977 at DEC's annual shareholder meeting.[17] Bill Strecker, C. Gordon Bell's doctoral student at Carnegie Mellon University, was responsible for the architecture.[18] Like PDP-11, VAX was very successful; it provided the majority of DEC's sales, sales growth, and profit from the early 1980s to early 1990s. VAX and VMS became DEC's only actively developed computer architecture.[3] 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[19] with a single CPU. 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 the VAX 9000 in October 1989. This design proved too complex and expensive and was ultimately abandoned not long after introduction. CPU implementations that consisted of multiple emitter-coupled logic (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[20] 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.[21][22] 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 the VAX 6000, and later by NVAX-powered VAX 7000 systems.
Extrapolating from Moore's Law, DEC expected that VAX's 32-bit design would be a viable architecture until about 1999. The company did not foresee that RISC would, during the 1980s, usurp traditional computing architectures with significantly more performance per cost.[3] As Unix RISC systems from Sun Microsystems and others lured VAX customers,[23] in 1989 DEC introduced a range of RISC workstations and servers that ran Ultrix, the DECstation and DECsystem respectively, using processors from MIPS Computer Systems. In 1992 DEC introduced its 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,[24] but old systems remain in widespread use.[25] The Stromasys CHARON-VAX and SIMH software-based VAX emulators remain available. VMS is now developed by VMS Software Incorporated, albeit only for the Alpha, HPE Integrity, and x86-64 platforms.
Processor architecture
[edit]
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Virtual memory map
[edit]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
[edit]The VAX has four hardware implemented privilege modes:
| No. | Mode | VMS use | 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 longword
[edit]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 |
VAX-based systems
[edit]
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.
SIMACS
[edit]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 named SIMACS (simultaneous machine access),[26][27] which allowed their special disk controller to set a semaphore flag for disk access, allowing multiple WRITES to the same files; the disk is shared by multiple DEC systems. SIMACS also existed on PDP-11 RSTS systems.
Canceled systems
[edit]Canceled systems include the BVAX, a high-end emitter-coupled logic (ECL) based VAX, and two other ECL-based VAX models: Argonaut and Raven.[28] Raven was canceled in 1990.[29] A VAX named Gemini was also canceled, which was a fall-back in case the LSI-based Scorpio failed. It never shipped.
Clones
[edit]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).[30]
- Norden Systems produced the ruggedized, Military-specification MIL VAX series.[11]
- The Hungarian Central Research Institute for Physics (KFKI) produced a series of clones of early VAX models, the TPA-11/540, 560 and 580.[31]
- The SM 52/12[32] 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.[33] These systems ran a variety of clone operating systems - DEMOS (based on BSD Unix), MOS VP (based on VAX/VMS) or MOS VP RV (based on VAXELN).[34]
- 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.[35][36]
References
[edit]- ^ "VAX MACRO and Instruction Set Reference Manual". OpenVMS documentation. April 2001. 8.1 Basic Architecture. Archived from the original on September 6, 2001.
- ^ DEC STD 032 – VAX Architecture Standard (PDF). Digital Equipment Corp. January 5, 1990. p. 12-5. Retrieved August 1, 2022.
- ^ a b c d e f g Bell, Gordon; Strecker, W.D. What Have We Learned from the PDP-11 - What We Have Learned from VAX and Alpha (PDF) (Report). Retrieved June 26, 2025.
- ^ Bistriceanu, Virgil. "Computer Architecture – Class notes" (PDF). Illinois Institute of Technology. Retrieved April 15, 2022.
- ^ Payne, Mary; Bhandarkar, Dileep (1980). "VAX floating point: a solid foundation for numerical computation". ACM SIGARCH Computer Architecture News. 8 (4). ACM: 22–33. doi:10.1145/641845.641849. ISSN 0163-5964. S2CID 15021135.
- ^ 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). Archived from the original (PDF) on June 10, 2017. Retrieved October 3, 2018.
... 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". OpenVMS documentation. April 2001. 9.2.5 Procedure Call Instructions. Archived from the original on March 30, 2002.
- ^ Goss, Clinton F. (August 2013) [First published June 1986]. Machine Code Optimization: Improving Executable Object Code (PDF) (PhD). Vol. Computer Science Department Technical Report No. 246. Courant Institute, New York University. arXiv:1308.4815. Bibcode:2013arXiv1308.4815G. Retrieved August 22, 2013.
- Clinton F. Goss (2013) [1986]. Machine Code Optimization – Improving Executable Object Code (PhD thesis). Courant Institute, New York University.
- ^ a b Rainville, Jim; Howard, Karen, eds. (1997). "VAX/VMS at 20". Digital Equipment Corporation. Archived from the original on July 20, 2018. Retrieved July 20, 2018.
- ^ Paul A. Karger; Mary Ellen Zurko; Douglas W. Benin; Andrew H. Mason; Clifford E. Kahnh (May 7–9, 1990). A VMM security kernel for the VAX architecture (PDF). Proceedings. 1990 IEEE Computer Society Symposium on Research in Security and Privacy. IEEE. doi:10.1109/RISP.1990.63834. Retrieved January 31, 2021.
- ^ "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.
- ^ "MicroVAX II (1985)". Computer History and Simulation.
- ^ "Steal the best". micro.magnet.fsu.edu. Retrieved January 30, 2008. The Russian phrase was: СВАКС... Когда вы забатите довольно воровать настоящий лучший
- ^ "CVAX (1987)". Computer History and Simulation. Retrieved January 30, 2008.
- ^ Marshall, Martin (February 6, 1989). "The Year of the Workstation". InfoWorld. Vol. 11, no. 6. pp. 43–44. Retrieved June 27, 2025.
- ^ "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 October 11, 2021.
- ^ Wand, R.; Kesteven, M.; Rayner, P. (February 24, 1984). "Computing Requirements for AT Software Development" (PDF).
- ^ Joshi, Prem; Delacroix, Jacques (September 1984). "New Flexibility For Multiple VAX/VMS". HARDCOPY. pp. 64–68.
- ^ Mark Smotherman (July 19, 2008). "Who are the Computer Architects?". Retrieved September 30, 2008.
- ^ Supnik, Bob (2007). "Raven". Computer History and Simulation. 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.
- ^ Prokhorov N.L.; Gorskiy V.E. "Basic software for 32-bit SM computer models". Software Systems Journal (in Russian). 1988 (3). Retrieved September 15, 2021.
- ^ 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.
Further reading
[edit]- Coy, Peter (January 6, 2021). "Who Remembers the VAX Minicomputer, Icon of the 1980s?". Bloomberg News. Retrieved January 9, 2021.
External links
[edit]- HP: VAX Systems at the Wayback Machine (archived December 7, 2004)
- DEC Microprocessors
- SimH VAX Open source emulator that supports VAX architecture
- The complete Digital Technical Journals
Introduction
Description
The VAX, an acronym for Virtual Address eXtension, is a line of minicomputers and superminicomputers developed by Digital Equipment Corporation (DEC) beginning in 1977.[6] It represented a significant advancement in computing architecture, providing robust support for virtual memory and enabling access to up to 4 gigabytes of addressable space through 32-bit addressing.[7] Core specifications include a 32-bit word size, sixteen 32-bit general-purpose registers, and an instruction set comprising over 300 operations in a variable-length format.[8][9] As a successor to DEC's PDP-11 series, the VAX architecture was designed for compatibility while extending capabilities to handle more complex workloads.[10] Positioned as a complex instruction set computing (CISC) platform, it emphasized orthogonality—allowing most instructions to operate uniformly on various data types and registers—and extensibility to support evolving software needs in multi-user, multitasking environments.[11] These features made VAX systems particularly effective for timesharing and scientific computing, often running DEC's proprietary VMS operating system.[6] During the 1980s, the VAX family achieved substantial market dominance in the minicomputer and superminicomputer sectors, with DEC producing over 100 models that powered a wide array of applications from research to business processing.[12] This success propelled DEC to become the second-largest computer manufacturer globally by 1988, underscoring the architecture's influence on enterprise computing.[6]Name origin
The VAX acronym stands for Virtual Address eXtension, a name chosen by Digital Equipment Corporation (DEC) to underscore the architecture's primary innovation: expanding the virtual addressing from the 16-bit limitations of the PDP-11 to a full 32-bit system, enabling vastly larger memory spaces for multitasking and complex applications.[13][12] This extension was critical for supporting the growing demands of scientific computing and data processing in the late 1970s, allowing processes to access up to 4 gigabytes of virtual memory per user.[14] DEC's model naming convention began with the VAX-11/780, released in 1977 as the inaugural system, where the "780" designation became the performance benchmark rated at 1 MIPS (millions of instructions per second).[15] Subsequent VAX-11 models used numeric suffixes to indicate relative performance multiples of the 780—such as the VAX-11/750 at approximately 0.75 MIPS or the VAX-11/785 at 1.5–1.7 MIPS—facilitating easy comparisons for customers evaluating scalability.[16] As the lineup expanded, DEC introduced series like MicroVAX for compact, workstation-oriented variants and VAX 9000 for enterprise-level mainframe alternatives, maintaining the core VAX branding while adapting to diverse form factors.[17] In marketing, DEC positioned the VAX-11/780 as a "superminicomputer" to bridge the gap between affordable minicomputers like the PDP-11 and high-cost mainframes from competitors like IBM, emphasizing its superior throughput for multi-user environments at a fraction of the price.[1] This strategy helped DEC capture a broad market, and by the early 1980s, the terminology shifted to promote the "VAX family" as an interoperable ecosystem of hardware and software, including the VAX/VMS operating system, fostering long-term customer loyalty through upward compatibility.[18]History
Development
In 1975, Digital Equipment Corporation (DEC) initiated a project to develop a 32-bit successor to its successful PDP-11 minicomputer line, aiming to address the limitations of the 16-bit architecture in supporting larger memory spaces and more complex applications.[19] The effort, internally known as VAX-11 (Virtual Address eXtension to the PDP-11), officially began on April 1, 1975, under the leadership of Gordon Bell, DEC's vice president of research and development, with William Strecker serving as the principal architect.[20] The initial VAXA design team included key contributors such as Peter Conklin, Dave Cutler, Bill Demmer, Tom Hastings, Richy Lary, Dave Rodgers, and Steve Rothman, drawing on DEC's extensive experience with the PDP-11.[20] The primary design goals centered on creating an orthogonal instruction set architecture (ISA) to enable efficient encoding and support for high-level languages, a cornerstone of the complex instruction set computing (CISC) approach.[21] Central to the architecture was the implementation of virtual memory with a 4 GB (2^32 bytes) address space, providing 31 bits for user processes to handle large data arrays and programs that exceeded the PDP-11's constraints.[21] Additionally, the team prioritized backward compatibility with PDP-11 software through an integrated compatibility mode, ensuring a smooth transition for existing applications without requiring extensive rewrites.[19] As Bell and Strecker noted in their 1976 analysis, insufficient address bits represented a critical design pitfall to avoid, emphasizing the need for forward-looking memory management.[21] Development faced significant challenges, including the inherent complexity of the CISC design, which aimed to optimize for high-level language compilers but risked overcomplication in implementation.[21] To manage this, the team dropped ambitious features such as advanced multiprocessing capabilities early in the process, focusing instead on a uniprocessor foundation to streamline the architecture.[21] Economic pressures also influenced decisions, with an eye toward future shifts to very-large-scale integration (VLSI) technology for cost-effective production, though the initial design relied on discrete components.[19] By 1976, the team had completed a functional prototype, validating the core architectural concepts and setting the stage for hardware realization while maintaining cultural compatibility with the PDP-11 ecosystem.[19] This timeline reflected DEC's rapid iteration, building directly on lessons from the PDP-11's evolution to prioritize scalability and software portability.[20]Release and adoption
The VAX-11/780, the first system in the VAX family, was released by Digital Equipment Corporation (DEC) on October 25, 1977, with a base price of approximately $120,000 and a performance benchmark of 1 MIPS, establishing it as a significant advancement in 32-bit computing.[22][23][24] This launch marked DEC's entry into the high-end minicomputer market, offering expanded virtual addressing and compatibility with existing PDP-11 software, which facilitated rapid uptake among users transitioning from 16-bit systems. Adoption of the VAX line accelerated through the late 1970s and 1980s, driven by its versatility in scientific computing, engineering simulations, and business data processing, where its robust virtual memory and multiprocessing capabilities addressed growing demands for complex workloads.[25] By 1990, the installed base had exceeded 250,000 units, reflecting widespread deployment in universities, research labs, and corporate environments seeking reliable, scalable computing.[26] The VAX/VMS operating system played a key role in this success by providing a stable platform for multi-user applications, enhancing system availability and ease of management. Key expansions bolstered VAX's growth, including the announcement of VAXclusters in 1983, which enabled distributed computing across multiple interconnected nodes for improved fault tolerance and resource sharing.[27] These systems positioned VAX as a competitor to IBM's mainframe offerings in enterprise settings and to emerging Unix-based workstations, capturing market segments requiring high-performance, networked environments. DEC's overall revenue peaked at $14 billion in 1990, with VAX systems forming a major portion of this figure through strong sales in both proprietary and open systems markets.[28]Decline and discontinuation
In the late 1980s and early 1990s, the VAX architecture faced intensifying competition from reduced instruction set computing (RISC) designs, such as MIPS and SPARC, which offered superior performance in workstations and servers due to simpler instruction execution and higher clock speeds compared to the complex instruction set computing (CISC) approach of VAX.[29][2] This shift pressured Digital Equipment Corporation (DEC), as RISC systems from competitors like Sun Microsystems and Silicon Graphics gained market share in UNIX-based environments, eroding VAX's dominance in midrange computing.[30] DEC's final major VAX effort, the VAX 9000 series introduced in 1990, targeted high-end mainframe applications with up to four ECL-based processors and aimed to rival IBM systems, but it arrived amid declining demand for CISC architectures and suffered from high production costs and limited sales.[31][32] In response, DEC accelerated development of its RISC successor, the Alpha architecture, releasing the first Alpha-based systems in 1992 to address VAX's performance limitations.[33] VAX sales, which had peaked in the 1980s, began a steep decline; DEC's midrange market share fell from 15.6% in 1987 to 11.9% in 1990, contributing to the company's first quarterly loss of $257 million in 1990 and ongoing financial struggles through the decade.[30][34][35] Corporate upheaval accelerated VAX's end: DEC was acquired by Compaq Computer Corporation in June 1998 for $9.6 billion, after years of losses exceeding $2 billion annually in the mid-1990s.[36][35] Under Compaq, VAX support tapered off, with OpenVMS—the primary operating system for VAX—ported to Alpha platforms to enable migration of applications and maintain customer ecosystems.[37] Compaq announced the discontinuation of remaining VAX models in August 2000, marking the end of new shipments after over two decades of production.[5]Technical architecture
Processor design
The VAX processors employ a register file of 16 32-bit general-purpose registers, labeled R0 through R15, where R15 operates as the program counter to hold the address of the next instruction to execute. Among these, R12 functions as the argument pointer for procedure calls, R13 as the frame pointer to manage stack frames, and R14 as the stack pointer to track the top of the stack. Floating-point operations, supported from the outset, utilize these general-purpose registers for data storage, with single-precision (F_floating) fitting in one register, double-precision (D_floating or G_floating) spanning two registers as a quadword, and quadruple-precision (H_floating) occupying four registers as an octaword; dedicated floating-point hardware was integrated in later VLSI implementations via separate chips like the 78132 FPU in the MicroVAX II.[38][39][40] The architecture accommodates a range of data types to support varied computational needs, including integer formats such as byte (8 bits), word (16 bits), longword (32 bits), and quadword (64 bits) for binary arithmetic. It also natively handles packed decimal strings for precise decimal operations via instructions like ADDP4 and MULP6, as well as character strings processed through dedicated instructions such as MOVC3 for block moves and MATCHC for comparisons, with support for variable-length and null-terminated (ASCIZ) variants. These types enable efficient manipulation of numerical, textual, and packed data without requiring external conversion routines.[38] Early VAX processors, beginning with the VAX-11/780 introduced in October 1977, were implemented using discrete TTL logic across multiple boards, comprising approximately 170,000 transistors in a non-pipelined design clocked at 5 MHz. This approach prioritized architectural completeness over density, establishing the baseline for subsequent evolutions. By 1984, the MicroVAX I shifted to VLSI technology with a single-chip implementation (the 78032 CPU), drastically reducing component count and system cost while maintaining full architectural compatibility. The CVAX microprocessor, introduced in 1988, further advanced this progression by incorporating pipelining—up to nine stages for instruction execution—and enhanced memory management, enabling higher clock speeds and integration in models like the VAX 6000. Later high-end systems, such as the VAX 8800, employed dual VLSI processors for balanced scalar and vector processing.[41][38][42] Performance metrics for VAX processors improved markedly over time, with the VAX-11/780 delivering approximately 0.5 MIPS as a benchmark reference (1 VUP). Early models like the VAX-11/750 and MicroVAX II achieved 0.8 VUP and approximately 1 VUP, respectively, through optimized logic and smaller scale. By the 1990s, the VAX 9000 series reached 25 to 65 VUPs (roughly 25 to 65 MIPS) in scalar mode, with vector extensions pushing up to 269 VUPs in specialized workloads, reflecting advances in pipelining, cache hierarchies, and ECL-based VLSI at 16 ns cycle times.[43][31]Virtual memory map
The VAX architecture provides a 32-bit virtual address space totaling 4 GB (2^{32} bytes). This space is segmented into distinct regions to support process isolation and system-wide sharing, with the primary user-accessible areas consisting of the P0 and P1 regions, each 1 GB (2^{30} bytes) in size. The P0 region, spanning virtual addresses from 0x00000000 to 0x3FFFFFFF, is designated for process-private memory, including program code and data. The P1 region, from 0x40000000 to 0x7FFFFFFF, serves process-specific purposes such as stacks and control structures, though it can also accommodate shared elements. Additionally, a 2 GB system space from 0x80000000 to 0xFFFFFFFF enables shared access to operating system routines and libraries across processes.[38] Virtual-to-physical address translation relies on a multi-level paging mechanism with a uniform page size of 512 bytes (2^9 bytes), resulting in a 9-bit byte offset within each page and a 23-bit virtual page number (VPN) for the remainder of the 32-bit address. For the P0 and P1 regions, translation involves a two-level structure: a process page table directory (level 1), located in system space and referenced by base registers (P0BR for P0, P1BR for P1), indexes into secondary page tables (level 2) containing page table entries (PTEs). Each PTE is 32 bits wide, including a 21-bit page frame number (PFN) field that specifies the physical page location, yielding a base physical address of up to 30 bits (1 GB) when combined with the page offset. The system space uses a physically addressed single-level page table for direct mapping. To accelerate translations, the architecture incorporates a translation buffer (TLB), a hardware cache of recently used PTEs, which can be selectively or fully invalidated via dedicated instructions like TBIA and TBIS. VAX implementations support 30-bit physical addressing, limiting maximum physical memory to 1 GB.[38] Memory protection is enforced at the page level through per-process address maps, where each process maintains independent PTEs for its P0 and P1 regions via the base and length registers (e.g., P0LR, P1LR). The 4-bit protection field in each PTE specifies access rights, including read, write, and execute permissions, tailored to the current processor mode (user, supervisor, executive, or kernel). Invalid accesses trigger faults such as translation-not-valid (when the valid bit is unset) or access-violation exceptions, ensuring isolation between processes and the system. Shared libraries and common data structures are facilitated through the system space, where pages can be marked as global for multiprocess access, and the P1 region, which supports copy-on-reference mechanisms via software-managed PTE bits to balance sharing and privacy.[38] Later VAX models extended physical memory support within the 1 GB limit through enhanced PFN handling and memory management units, while maintaining the core virtual mapping unchanged. These extensions allowed for denser physical packing without altering the 32-bit virtual layout or paging granularity.[38]| Region | Virtual Address Range | Size | Primary Use |
|---|---|---|---|
| P0 | 0x00000000–0x3FFFFFFF | 1 GB | Process-private code and data |
| P1 | 0x40000000–0x7FFFFFFF | 1 GB | Process-specific stacks and shared elements |
| System | 0x80000000–0xFFFFFFFF | 2 GB | OS routines and shared libraries |