Run two programs, li (xlisp) and compress, unoptimized
versions, the ones without .opt) with the sim-profile simulator and
the
-iprof, -amprof, and -brprof options(or more; -h will show you all
the
options), to get information on instruction, branch and addressing
mode
usage. List the 15 most frequent instructions in the two benchmarks
(just
average the frequencies for the two). Based on this data, plus other
things
you observe from the output (e.g., branch and addressing usage), postulate
three things you expect to be different when you run the optimized
versions.
Run the optimized versions and see if your theories were correct. Explain.
(I don't care if you were right, just whether you do a good job of
analyzing
why you were right or wrong). Also note, I expect your theories to
be less
obvious than "fewer instructions will be executed."
If you want to theorize about how CPI changes with optimization, you
can also use an alternate simulator (sim-outorder -issue:inorder) to
get
timing information on an in-order superscalar machine. These simulations
take quite a bit longer, but are certainly doable.
The following may be useful in your analysis if you are ambitious. Sources
for the programs are in ~cse240/simulator/src. A disassembler is in
the
bin directory. You run it with objdump --disassemble objfilename
All of the simulators in the bin directory are from the simplescalar
tools, by Todd Austin and Doug Burger. You may notice that the ISA
for
the simulator/executables is actually a superset of DLX, so there may
be
some operations you don't recognize.
Web Surf -- Tell me the configuration (e.g., size, associativity, block size, write-through/write-back) of all on-chip caches for the following machines: Alpha 21164, Pentium Pro, MIPS R10000
Mini-project #3 -- In this project, I expect you to take over the burden of designing the experiments. That is, I want you to propose hypotheses, design experiments, analyze results, and possibly run more experiments if the analysis/results leave unanswered questions. When you're done you should both give me the answer and some insight into the "why." For each of the two questions, start with the default cache configuration and machine configuration in sim-outorder as the baseline. The two questions, which should be examined separately, are:
1. Does the cache miss latency have a bigger impact on performance in a dynamically scheduled processor, or an in-order processor? (Just consider the L1 data cache miss latency).
2. If a 2-way set-associative cache (first-level data cache) requires a 5% longer cycle time than direct-mapped, and 4-way 10% longer (than DM), which of the three cache configurations gives us better performance, on average, for the two programs for that cache?
If you have comments or suggestions, email me at tullsen@cs.ucsd.edu