This document is the cover, title pages, table of contents, preface, and selected pages from the book "Computer Programming and Architecture: The VAX, Second Edition" by Henry M. Levy and Richard H. Eckhouse, Jr. (published by Digital Press, copyright 1980, 1989).
The book serves as a comprehensive guide to computer architecture and assembly language programming, primarily focusing on the VAX computer system. It aims to teach both the fundamental concepts of computer organization and provide a detailed reference for the VAX.
Key areas covered in the book include:
- Fundamentals: Introduces basic computer structures, number systems, and the VAX's information units and data types.
- VAX Assembly Language Programming: Delves into the VAX instruction set, various addressing modes, the use of symbolic assemblers and debuggers, and advanced control and data structures (like stacks, subroutines, macros, and linked lists).
- Architectural Analysis: Provides an analysis of the VAX instruction set's performance characteristics and efficiency.
- Comparative Architectures: Explores other significant instruction set architectures, including the IBM System 360/370, CDC Cyber series, Intel 80386 Microprocessor, and Reduced Instruction Set Computers (RISC), offering a broader perspective on design tradeoffs.
- Operating System Support: Details how the VAX hardware supports operating system functions such as processor and memory sharing, process management, virtual memory (paging and swapping), and interrupt/exception handling.
- Advanced Hardware Concepts: Discusses topics like cache memory design and organization (including multi-level caches and coherency in multiprocessors), microprogramming (using MicroVAX I as an example), and parallelism in computer systems (pipelining, multiple functional units, and various multiprocessor organizations like vector machines, SIMD, and MIMD systems).
- Appendices: Includes references for the Ultrix Assembler and a detailed VAX Instruction Set Description.
The book is designed for both undergraduate students learning computer architecture and assembly language, and practicing professionals seeking a deeper understanding of the VAX and general computer systems. It emphasizes learning a specific architecture in detail before generalizing to broader principles.