Due: Thursday, September 25 at the beginning of class
Performance and Cost
1. Problem 1.2 in H+P
2. Problem 1.17 in H+P
Instruction Set Design
3. Problem 2.1 in H+P
4. Problem 2.6 in H+P
5. Problem 2.15 in H+P
Simulation/Programming
When running simulations, please use the following sampling parameters to reduce execution times: -insn:sample:first 40000000:0:10000000 -insn:sample 490000000:0:10000000. You can also run your simulations using Condor.
6. Use the SimpleScalar simulator sim-func to simulate the traces for gcc and eon.kajiya from SPECint2000 and facerec and applu from SPECfp2000. How many dynamic instructions does each benchmark execute? What percentage of all instructions are loads and stores? What percentage are control instructions (branches)? What percentage are floating point instructions?
7. One difference between integer and floating-point code (in
addition to the latter having more floating-point instructions) is in
the control structures. Integer programs tend to be more
procedure call intensive, while floating-point programs tend to be more loop
intensive. Modify sim-func to count the number of dynamic calls and
loop iterations in each benchmark (hint: a loop iteration is
recognized by a backwards branch or jump, i.e., a branch or
jump whose target PC is less than its own PC. How many loops and
procedure calls are in each benchmark? Is the high-level
characterization of integer and floating-point programs correct?