|
Computer Science 2500 Computer Organization Rensselaer Polytechnic Institute Spring 2009
|
|
Lecture 16: Pipelining and a Pipelined Data Path and Control
Date: Tuesday, March 31, 2009
- Announcements
- Grading update
- Murat will hold extra office hours, tomorrow, 3-5
- Lab 6 recap
- Lecture assignment recap
- Details of the ALU in our simple MIPS implementation
- Review of the "Single Cycle" implementation
- Problems with the single cycle implementation
- Pipelining
- Pipelined Data Path and Control
Due at the start of class, Friday, April 3.
Please turn in a hard copy answer to the exercises below. We will
discuss these during class, so no late submissions are accepted.
- P&H Exercise 4.2.4 and 4.2.6, p. 411 (reproduced below)
When processor designers consider a possible improvement to the
processor datapath, the decision usually depends on the
cost/performance tradeoff. In the following three problems (of which
you are only doing two), assume that we are starting with a datapath
from Figure 4.2, where I-Mem, Add, Mux,
ALU, Regs, D-Mem, and Control blocks have latencies of 400ps, 100ps,
30ps, 120ps, 200ps, 350ps, and 100ps, respectively, and costs of 1000,
30, 10, 100, 200, 2000, and 500, respectively. The remaining three
problems (again, of which you are only doing two) in this exercise
refer to the following processor improvement:
a. Faster add, which reduces latency by 20ps for Add units, but adds a
cost of 20 per unit.
b. Larger registers, which add 100ps latency and add a cost of 200 per
unit, but results in fewer loads and stores of register values which
leads to 5% fewer instructions.
4.2.4. What is the clock cycle time with and without each of these
improvements?
4.2.6. Compare the cost/performance ratio with and without each of
these improvements.
- P&H Exercise 4.11.1, 4.11.2, 4.11.3, p. 419 (reproduced below)
In this exercise, we examine in detail how an instruction is executed
in a single-cycle datapath. Problems in this exercise refer to a
clock cycle in which the processor fetches the following instruction
word:
a. 10001100010000011000000000010000
b. 00010000001000110000000000001100
4.11.1. What are the outputs of the sign-extend and the jump "Shift
left 2" unit (in the upper left of Figure
4.24) for each instruction word?
4.11.2. What are the values of ALU control unit's inputs for each
instruction?
4.11.3. What is the new PC address after this instruction is
executed? Highlight the path through which this value is determined.
- Suppose you add the bne instruction to the single-cycle
implementation of the CPU described in P&H Section 4.4. Print a
copy of Figure 4.17 and mark on it any
elements that you need to add to the datapath or the control lines.
Give the values of all the control signals for this instruction.
- Do the same to add the jal instruction. Use a second copy
of the figure and mark it up, as well as specifying all the control
signals.