Lecture 10: Memory Dependence Detection and Speculation
Lecture 10: Memory Dependence Detection and Speculation
1 2
5 6
1
Store Buffer Design Example Memory Dependence
Store instruction: Any load instruction receives the memory
Wait in RS until the base RS operand from its parent (a store
instruction)
address and data are
ready
I-FU From RS
Calculate address, move to If any previous store has not written the
store buffer C Ry addr data D-cache, what to do?
Move data directly to young 0 0
store buffer 0 1
Wait for commit 1 - Arch. If any previous store has not finished,
If no exception/mis-predict
1 - states what to do?
old
5. Wait for memory port To D-Cache
6. Write to D-cache Simple Design: Delay all following loads; but
Otherwise flushed before how about performance?
writing D-cache
7 8
9 10
11 12
2
Alpha 21264 Pipeline Alpha 21264 Load/Store Queues
Int issue queue fp issue queue
Addr Int Int Addr FP FP
ALU ALU ALU ALU ALU ALU
Dual D-Cache