lect12-memory-dataflow

lect12-memory-dataflow - MemoryDataFlow MemoryDataFlow...

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

View Full Document Right Arrow Icon
ECE/CS 752:Advanced Computer Architecture I 1 Memory Data Flow Prof. Mikko H. Lipasti University of Wisconsin Madison Lecture notes based on notes by John P. Shen Updated by Mikko Lipasti Memory Data Flow Memory Data Flow Memory Data Dependences Load Bypassing Load Forwardin Load Forwarding Speculative Disambiguation The Memory Bottleneck Cache Hits and Cache Misses Memory Data Dependences Besides branches, long memory latencies are one of the biggest performance challenges today. 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 antidependences and 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. WAW WAR RAW store Xl o a d Xs t o r e X ::: store t o r e o a d X 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). 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 V (2) ADD (3) LOAD W (4) LOAD X (5) LOAD V (6) ADD (7) STORE W RAW WAR Total Order of Loads and Stores Keep all loads and stores totally in order with respect to each other. However, loads and stores can execute out of order with respect to other types of instructions. Consequently, stores are held for all previous instructions, and loads are held for stores. Ie stores performed at commit point I.e. stores performed at commit point Sufficient to prevent wrong branch path stores since all prior branches now resolved Illustration of Total Order Address Unit Store v Load w Store v Load x data Load w Store v Load x Load v St ore w Load/Store Reservation Station data data data data Cycle 1 Cycle 2 Cycle 3 Cycle 4 Load v Add Add Load w Store w Load x Cycle 1 Cycle 2 Decoder Address Unit Address Unit Load w Store v Load x Load v Store w Address Unit Load v Load x Load w Store v data Load x Load w Load v Store w data Load x Load v Store w data Load v Storew data Store w data cache addr cache write data Store v released Cycle 5 Cycle 6 Cycle7 Cycle 8 ISSUING LOADS AND STORES WITH TOTAL ORDERING Address Unit Address Unit Address Unit Address Unit
Background image of page 1

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

View Full DocumentRight Arrow Icon
ECE/CS 752:Advanced Computer Architecture I 2 Load Bypassing Loads can be allowed to bypass stores (if no aliasing).
Background image of page 2
Image of page 3
This is the end of the preview. Sign up to access the rest of the document.

This note was uploaded on 03/02/2012 for the course ECE 752 taught by Professor Profgurisohi during the Spring '09 term at University of Wisconsin.

Page1 / 7

lect12-memory-dataflow - MemoryDataFlow MemoryDataFlow...

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

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