This document, the VAX Diagnostic Design Guide (Order Number: AA-FK67A-TE, April 1989), serves as a manual for diagnostic programmers. It outlines the design strategy for VAX diagnostic programs, detailing how to design, create, and execute programs intended for use with the VAX Diagnostic Supervisor (VDS).
Key aspects covered include:
- Purpose of Diagnostic Programs: These programs are designed to discover and identify hardware failures in computer systems, used during manufacturing, product design verification, and troubleshooting unexpected system behavior in the field.
- User Needs: Diagnostic programs cater to a diverse user base (customers, service representatives, technicians, engineers) with common goals like comprehensive fault coverage. Specific user needs include ease of use, preservation of user data, quick fault detection, and identification of field-replaceable units (FRUs).
Program Types and Testing Goals:
- Logic Tests: Verify combinational logic, provide high error resolution, often run in standalone mode for repair.
- Function Tests: Verify device functionality (e.g., reading/writing data), used for fault detection and repair, can run in standalone or user mode.
- Exercisers: Verify system functionality over time, often used on entire systems to detect intermittent or simultaneous-use failures.
- Testing goals emphasize defining scope, minimizing "hardcore" (hardware needed for the diagnostic to run), detecting all failures within scope, and identifying the faulty FRU.
Testing Methodologies:
- Serial Testing: Tests each unit individually and sequentially.
- Parallel Testing: Tests all units simultaneously.
- Bottom-Up Testing: Tests component parts from simplest to most complex, adding verified layers to the "hardcore." Integral to logic tests.
- Top-Down Testing: Views the Unit Under Test (UUT) as a whole, then subdivides to find the failing part. Often combined with bottom-up in practice.
Macroprograms and Microprograms: The manual primarily focuses on macroprograms (machine language instructions) but also touches upon microprograms (lower-level instructions, often residing in Writable Control Store or ROMs, used for processor testing).
VAX-Specifics and the VAX Diagnostic Supervisor (VDS):
- VAX diagnostic programs operate in various run-time environments: User Mode (under VAX/VMS, e.g., for exercisers), Standalone Mode (exclusive system use, often for logic tests), and Network Environments (e.g., Automated Product Test - APT, Remote Diagnosis - APT/RD).
- The VDS is a crucial control program that loads, executes, and provides run-time services (like I/O, error reporting, looping control) to diagnostic macroprograms, insulating them from environment and processor-specific hardware differences.
- Diagnostic Program Levels (1-5): A hierarchy based on hardcore requirements and I/O methods. Level 1 programs run under an operating system with virtual/logical I/O, while Level 5 programs are microprograms running in WCS/console, not main memory. Level 3 programs perform direct physical I/O and are typically logic tests.
Program Structure and Components: Details the core components of a VAX/DS diagnostic program, including Initialization Code, P-Tables (hardware parameter tables), Tests, Subtests, Cleanup Code, and Error Reporting Routines.
- Guidelines for Writing VAX Diagnostic Programs: Provides specific recommendations for each program level (1, 2R, 2, 3, 4, 5), covering aspects like human interface, I/O methods, error reporting, and testing methodologies suitable for each level.
- Program Development Process & Documentation: Outlines phases from consultation to design verification, emphasizing the importance of thorough documentation (source code, help files) for both users and maintainers.