Carnegie Mellon University, Fall 1998
We are using a modified copy of dinero. Specifically, this dinero is not limited to 32-bit data lengths, and can process 64-bit address traces when run on a 64-bit processor.
Atom is a generalized instrumentation tool that runs on Digital's Alpha workstations. We are using a very limited subset of its capabilities to create dinero traces for the class homeworks, but you are welcome to use its full capabilities for your projects.
This is a very basic example of running atom. Assume you want to instrument the program test.c to generate dinero traces (other tools at /usr/ccs/lib/cmplrs/atom/tools are available with atom as well). To use atom, first you have to compile it with at least the following cc command line (assume you're compiling test.c):
cc -O -Wl,-r -non_shared test.c -o test.rr
Then you'll need an analysis file and an instrumentation file. If you want to generate dinero traces, use instr.c and analy.c provided with the course materials. Or, you can skip these files and use one of the atom toolkits with the -tool option. If you're using the dinero files, use the command line:
atom test.rr instr.c analy.c -o test.atom
Then use this instrumented program with dinero, such as:
test.atom | dinero -b16 -u16K
If you're using atom with a complicated compilation, it's probably enough to set the CFLAGS variable in the make file to the appropriate compiler flags above (-O -Wl,-r -non_shared) and re-name the compiled output file to a ".rr" extension to run through atom. Atom may or may not work with gcc or g++ -- you're on your own there.
Caution: when running an "atom-ized" program instrumented for dinero, the normal stdout characters from the program will still be generated -- so you may want to modify analy.c to permit you to grep/awk/perl the dinero information from the normal program lines.
A specialized set of Atom instrumentation is used in one of the homeworks. This instrumentation only measures data loads & stores (not instruction fetches). Furthermore it has the capability to instrument a single procedure within a larger program by setting a text string within the instrumentation file. These files are used in the manner of the previous example.
The standard software distribution for the H&P textbook is at ftp://max.stanford.edu/pub/hennessy-patterson.software. (Also, check out related tools from other sources at http://www.mkp.com/books_catalog/ca/hp2e_res.htm)
However, to make life easier for students of this course, the un-tarred files are available on afs. These files are provided as-is for your convenience if you care to explore concepts beyond those taught in the course. The course staff cannot assume responsibility for maintaining these files or the data/tools in them. The files are stored at: /afs/ece/class/ee742/hp_tools/, and include a readme file with some interesting control characters in it. The subdirectories include: