Slides for Lecture 19
ENCM 501: Principles of Computer Architecture Winter 2014 Term Steve Norman, PhD, PEng
Electrical & Computer Engineering Schulich School of Engineering University of Calgary
20 March, 2014
ENCM 501 W14 Slides for Lecture 19
slide 2/18
Today’s Lecture
◮ Tomasulo’s algorithm: key components, and examples of
instruction processing. Related reading in Hennessy & Patterson: Sections 3.4–3.5
ENCM 501 W14 Slides for Lecture 19
slide 3/18
FP fegister file for Tomasulo examples
The Qi field is four bits wide for examples in textbook sections 3.4–3.6. (In the previous lecture, I mistakenly suggested that three bits were enough.) 64-bit FP data Qi F0 F2 F4 . . . . . . . . . F28 F30 This register file plays an active role in managing data
- hazards. A nonzero Qi value indicates that a register is
waiting for data from an instruction.
ENCM 501 W14 Slides for Lecture 19
slide 4/18
Example of FP register file state
64-bit FP data Qi F0 2.25 0000 F2 0.375 0111 F4 42.0 1011 . . . . . . . . . F0 has Qi = 0, so the value of 2.25 is up-to-date. But the values in F2 and F4 are out-of-date. These registers are waiting for fresh results from reservation stations 7 and 11.
ENCM 501 W14 Slides for Lecture 19
slide 5/18
Reservation stations: How many?
In the textbook example, there are fifteen of these:
◮ 5 store buffers ◮ 5 load buffers ◮ 3 stations for FP add or subtract instructions ◮ 2 stations for FP multiply or divide instructions
The textbook gives them names but not numbers, so let’s do that to help with clarity in examples:
◮ Store1 to Store5: 0001 to 0101 ◮ Load1 to Load5: 0110 to 1010 ◮ Add1, Add2, Add3 (FP add/subtract): 1011, 1100, 1101 ◮ Mult1, Mult2: (FP multiply/divide): 1110, 1111
ENCM 501 W14 Slides for Lecture 19
slide 6/18
Reservation stations: What for?
The main possible states for a reservation station are:
◮ available—not currently in use ◮ busy—waiting for one or two operand data items ◮ busy—operation underway ◮ busy—result ready, station waiting to write result to CDB