next up previous contents
Next: 2 Design Considerations Up: Design of an Address Tracing System Previous: Contents

1 Project Goals

The purpose of this project is to design and build a system which allows address traces to be recorded from real applications running on an Intel 80x86 based PC. By address trace we mean the list of all memory addresses requested by the CPU for memory reads (code and data) and writes (data) as a program runs. This data can be used for testing memory caching strategies and their effectiveness with applications that reference memory in different ways.

We must consider problems of speed and storage space. The hardware must be fast enough to read and latch valid addresses as they appear on the system bus, and should be able to place the CPU in a ``stall'' state while the addresses are stored to disk. The problem of storage space is due to the fact that a PC makes millions of memory references per second, and we want to store several bytes of address and other information for each reference. Another problem which must be considered is that to record all memory references made by the CPU we must disable any on-chip cache, such as that of the i486.

The major goals of this project are summarized below. An assessment of which goals were satisfied is presented in section 6.2.

A secondary goal is to give Bullwinkle a hardware-based compression scheme that will reduce the amount of data which must be written to the hard disk. Corresponding software can be written to decompress the address trace at a later time, perhaps on a machine with more on-line storage. The only reason this goal is secondary is that the address trace system should be functional with or without data compression. However, compression may be critical in reducing the bottleneck of hard disk write times, resulting in a smaller time dilation.

The hardware-based compression should be accomplished using VHDL synthesized logic in the Boris FPGA modules because of speed of implementation and ease of modification. The compression hardware could even be reprogrammed through software via the PC bus, allowing the user to choose from among several algorithms depending on the type of data (address traces, network streams, etc.) being collected.



next up previous contents
Next: 2 Design Considerations Up: Design of an Address Tracing System Previous: Contents



Scott E. Harrington
Sat Apr 29 18:56:25 EDT 1995