CPSC 3300 - Fall 2015
Homework 2
Due at class time on Friday, September 4
Each student must turn in a separate set of homework solutions,
but you may work together in study groups with other students
from the class. Include the names of your study group members
on the solution set you submit.
Also, please provide sufficient space on your homework solutions
so that your calculations and answers are easily readable and so
that grading will be easier. Furthermore, except for the simplest
of questions, giving only the answer without showing your work
is not acceptable. For the best chance at partial credit, show
the generic equation you are starting with and any derivations
needed to handle the information as given in the question, then
plug in the values from the question. You may, of course, use a
calculator for the homework. (Unlike the exams, the values in the
homework questions are not necessarily chosen for ease of hand
calculation.)
1. (1.5(b) for processor P3 from textbook)
P3 has a 4.0 GHz clock rate and a CPI of 2.2.
If the processor executes a program in 10 seconds, find the
number of cycles and the number of instructions.
2. What is the MIPS rate for the processor in question 1 above?
3. (1.6(a) for processor P1 from the textbook)
Consider two different implementation of the same instruction
set architecture. The instructions can be divided into four
classes according to their CPI (class A, B, C, and D). P1 has
a clock rate of 2.5 GHz and CPIs of 1, 2, 3, and 3.
Given a program with a dynamic instruction count of 1.0E6
instructions divided into classes as follows: 10% class A,
20% class B, 50% class C, and 20% class D.
What is the global CPI?
4. (1.6(b) for processor P1 from the textbook)
Find the clock cycles required to run the program on P1, as
the program and processor are described in question 3 above.
5. (2.46.2 from textbook) - Use the formulation of Amdahl's Law
we used in class with the f and s factors. Clearly show the f
value you use and how you derived it.
Assume for a given processor the CPI of arithmetic instructions
is 1, the CPI of load/store instructions is 10, and the CPI of
branch instructions is 3. Assume a program has the following
instruction breakdowns: 500 million arithmetic instructions,
300 million load/store instructions, 100 million branch
instructions.
Suppose we find a way to double the performance of the
arithmetic instructions. What is the overall speedup of our
machine?
What if we find a way to improve the performance of the
artihmetic instructions by 10 times?