Lecture 23 - Load-Store Queue (2010-04-06)

Lecture 23 - Load-Store Queue (2010-04-06) - Chapter 5:...

Info iconThis preview shows pages 1–5. Sign up to view the full content.

View Full Document Right Arrow Icon
1 Chapter 5: Superscalar: Memory Data Flow Modern Processor Design: Fundamentals of Superscalar Processors Computer Science Department University of Central Florida Memory Data Flow Memory Data Flow – Memory Data Dependences Ld B i Load Bypassing – Load Forwarding – Speculative Disambiguation – The Memory Bottleneck 2
Background image of page 1

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
2 Memory Data Dependences • Besides branches, long memory latencies are one of the biggest performance challenges today. WAW WAR RAW store X load X store X ::: store X store X load X 3 Memory dependency and OOO execution To preserve sequential (in-order) state in the data caches and external memory (so that recovery from exceptions is possible) stores are performed in order . This takes care of output dependences to memory locations. However, loads can be issued out of order with respect to stores if the out-of-order loads check for data dependences with respect to previous, pending stores. 4
Background image of page 2
3 Memory Data Dependences Memory Aliasing = Two memory references involving the same memory location (collision of two memory addresses). Memory Disambiguation ” = Determining whether two memory references will alias or not (whether there is a dependence or not) references will alias or not (whether there is a dependence or not). Memory Dependency Detection : Must compute effective addresses of both memory references Effective addresses can depend on run-time data and other instructions Comparison of addresses require much wider comparators Example code: (1) STORE mem[r1 + 12] = r2 addr = r1 + 12 = V (2) ADD 5 (3) LOAD r3 = Mem[r10+4] addr = r10 + 4 = W (4) LOAD r3 = Mem[X] addr = X (5) LOAD r5 = Mem[r13] addr = r13 = V (6) ADD (7) STORE Mem[W] = r0 addr = W Decoding is not enough to determine memory dep. => requires addr computation Handling Memory Dependencies • Total Order of Loads and Stores • Load Bypassing Load Forwarding • Optimizing Load/Store Disambiguation 6
Background image of page 3

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
4 Total Order of Loads and Stores Keep all loads and stores totally in order with respect to each other.
Background image of page 4
Image of page 5
This is the end of the preview. Sign up to access the rest of the document.

Page1 / 10

Lecture 23 - Load-Store Queue (2010-04-06) - Chapter 5:...

This preview shows document pages 1 - 5. Sign up to view the full document.

View Full Document Right Arrow Icon
Ask a homework question - tutors are online