Transcript lect21a.ppt
Superscalar Processing Concepts (Preview) CS 740 October 30, 2007 • Your Mission • Complications Your Mission Design a single processor that will achieve a millionfold speedup over our simple 5-stage pipeline. Example: program that executes 1 Billion instructions • 5-stage pipeline: • new processor: –2– 1,000,000,000 cycles 1,000 cycles CS 740 F’07 What About “Superpipelining”? I.e. what if we design a 5,000,000 stage pipeline? –3– CS 740 F’07 How Many Functional Units? How many instructions are executing at once? –4– CS 740 F’07 What About Branches? Roughly 1 out of every 6 instructions is a conditional branch. How do we look far enough into the future? –5– CS 740 F’07 Branch Prediction Two Parts: (1) what is the target address? (2) will the branch be taken or not? –6– CS 740 F’07 Executing Beyond Unresolved Branches What if we execute instructions that never should have been executed in the first place? • What about their side-effects? This is called “control speculation”. –7– CS 740 F’07 What about Data Dependences? • Register renaming • advantages? • Dependences in the memory system • letting non-dependent loads go ahead of writes • what if the load does depend on the write? • Data dependence speculation • Value prediction –8– CS 740 F’07 Memory Hierarchy • How many ports on the caches? Main memory? • Instructions and data? • How can we fetch so many things in parallel? • Non-blocking loads, prefetching –9– CS 740 F’07 Registers • How many registers do we need? • How will this work? • Renaming, etc. – 10 – CS 740 F’07 Exceptions • How can we maintain precise exceptions? • Can we isolate the right instruction in one cycle? • How quickly do we need to react to exceptions? • Can we leverage mechanisms from speculation? • How does this compare with branch speculation? – 11 – CS 740 F’07