Silicon Validation Execution Code
Senior Project: 2003-2004
Ryan Gardner, Ryan Nielsen, Nicholas Romanyshyn, Jason Scyoc and Christopher Weaver
Advanced Micro Devices (AMD) produces many x86-compatible processors for an
assortment of purposes, from embedded to mainframe systems. They had no means
for easily validating a new processor for x86 compliance or for developing a
suite of regression tests to apply to new processor revisions. Having such a
suite would save valuable testing time and assist in diagnosing processor
failures. This project serves as the first step in developing a large scale
processor test infrastructure.
The system provides a foundation for testing AMD processors. The software
prepares a target computer for testing by placing it in a known, "virgin"
state. It can then load a test in the form of an x86 COM file onto the test
computer using an Agilent PCI Exerciser, which provides the means for
direct remote memory input and output on the target machine. The system then
directs the processor to run this test code placed on the machine and, when the
test finishes, the system detects its completion. The host computer then reads
and stores a relevant memory dump from the target computer that can later be
used to verify or invalidate the processor's functionality.
Because all code runs at the lowest level on the target machine, free of any
operating system or other setup, the system also provides a "test shell" for
each processor mode of the x86 architecture, including real mode, protected
mode, big real mode, and virtual 8086 mode. These test shells put the target
machine in the corresponding mode and set up its execution environment so that
test developers can easily execute existing assembly code snippets with minimal
additional setup. The shells also automate test completion procedures, for
example automatically signaling test completion to the host computer.

The Hardware
Software Installation
Test Setup
|