This document is the "VAX Architecture Reference Manual," edited by Timothy E. Leonard and published by Digital Equipment Corporation (DEC) in 1987.
It serves as the definitive and comprehensive technical specification for the VAX family of computer architectures. The manual aims to provide an unambiguous, precise, and complete description of the machine-language interface, ensuring compatibility across diverse VAX hardware implementations developed over time. It is intended for hardware designers, systems programmers (e.g., operating system developers), application programmers, and students of computer science and engineering.
The manual systematically details every aspect of the VAX architecture, covering:
- Basic Architecture: Defines fundamental concepts such as the 32-bit virtual address space (a significant extension over its PDP-11 predecessor), byte addressing, various data types (integers, floating-point, bit fields, queues, character and decimal strings), and the processor's state (general-purpose registers, Processor Status Longword, and privileged internal registers).
- Instruction Set: Provides a detailed description of the VAX instruction formats, addressing modes, and the extensive instruction set, including integer arithmetic and logical operations, address manipulation, variable-length bit field instructions, control instructions, procedure call mechanisms, queue management, floating-point operations, character-string processing, cyclic redundancy checks, and decimal-string instructions.
- Memory Management: Explains the sophisticated virtual memory system, including virtual address space organization (per-process and system spaces), address translation mechanisms (page tables, page frame numbers), hierarchical memory protection (Kernel, Executive, Supervisor, User access modes), and the translation buffer.
- Exceptions and Interrupts: Describes how the VAX processor handles various events that alter the normal flow of control, such as arithmetic traps and faults, memory management exceptions, and system interrupts, detailing their priority levels, stack frames, and service routines.
- Process Structure: Outlines the definition and context of a process, process scheduling interrupts, and the instructions used for saving and loading process context (context switching).
- System Architecture and Programming Implications: Discusses advanced topics like data sharing and synchronization, memory reference behavior, cache consistency, restartability of instructions after faults, and I/O structure, highlighting considerations for system programmers.
- Privileged Registers: Details the internal processor registers that control CPU functions, memory management, and other system-wide aspects, accessible only by privileged software.
- PDP-11 Compatibility Mode: Explains how the VAX architecture supports the execution of legacy PDP-11 programs, describing its register mapping, addressing modes, instruction set, and exception handling within this compatibility environment.
- System Bootstrapping and Console: Covers the procedures for starting, restarting, and recovering the system from power failures, as well as the console command language for operator interaction.
- Architectural Subsetting and Implementation Dependencies: Addresses how different VAX processors can implement only a subset of the full architecture (e.g., specific floating-point types or string instructions) and how software emulation ensures full architectural compatibility. It also provides specific implementation details for various VAX models (e.g., MicroVAX, VAX-11/7xx, VAX 8xxx series).
In essence, this manual is a comprehensive technical blueprint for the VAX computer architecture, serving as a foundational text for anyone involved in developing, maintaining, or understanding VAX-based systems.