The VAX Architecture Reference Manual, edited by Timothy E. Leonard, is an authoritative and comprehensive technical document for programmers and system architects working with VAX computers. It provides a precise description of the VAX architecture, which is common across various VAX systems, from the MicroVAX II to the VAX 8800.
The manual introduces the design goals and terminology of the VAX family and details the VAX instruction set, covering:
- Basic Architecture and Processor State: Describing the fundamental addressable unit (8-bit byte), various data types (byte, word, longword, quadword, octaword, different floating-point formats, variable-length bit fields, queues, character strings, and decimal strings), and processor state elements like general-purpose registers, the Processor Status Longword (PSL), and privileged internal processor registers.
- Instruction Formats and Addressing Modes: Explaining the variable-length instruction format, operand specifiers (access types and data types), and various addressing modes including register, deferred, autoincrement, autodecrement, displacement, literal, indexed, and branch modes.
- Comprehensive Instruction Set: Instructions are grouped into categories such as integer arithmetic and logical, address, variable-length bit field, control, procedure call, miscellaneous, queue, floating-point, character-string, cyclic redundancy check (CRC), and decimal-string. Each instruction is meticulously described with its format, operation, effect on condition codes, specific exceptions, opcodes, and mnemonics.
- Memory Management: Detailing the virtual address space (divided into per-process and system spaces), address translation mechanisms using page tables and a translation buffer, and memory protection through hierarchical access modes.
- Exceptions and Interrupts: Explaining how the processor handles various events such as arithmetic traps/faults, memory management exceptions, and device/software interrupts, including interrupt priority levels and stack usage.
- Process Structure: Defining process context, scheduling, and instructions for saving and loading process contexts.
- System Architecture and Programming Implications: Discussing broader architectural aspects like data sharing, synchronization, memory reference behavior, caching, restartability of instructions, and I/O structure, including restrictions on I/O register access.
- System Bootstrapping and Console Operations: Outlining the major system states, the bootstrapping and restart algorithms, and console commands for system control.
- Architectural Subsetting: Describing which parts of the VAX architecture may be omitted in specific processor implementations (e.g., MicroVAX I, MicroVAX II) and how software emulation handles these omissions.
The manual serves as a fundamental reference for ensuring compatibility across diverse hardware implementations, defining the consistent hardware/software interface that underpins the VAX family's success.