Superscalar Processing Concepts CS 740 September 25, 2000Your MissionWhat About “Superpipelining”?How Many Functional Units?What About Branches?Branch PredictionExecuting Beyond Unresolved BranchesWhat about Data Dependences?Memory HierarchyRegistersExceptionsSuperscalar ProcessingConceptsCS 740September 25, 2000•Your Mission•ComplicationsCS 740 F’00– 2 –Your MissionDesign 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: 1,000,000,000 cycles•new processor: 1,000 cyclesCS 740 F’00– 3 –What About “Superpipelining”?I.e. what if we design a 5,000,000 stage pipeline?CS 740 F’00– 4 –How Many Functional Units?How many instructions are executing at once?CS 740 F’00– 5 –What About Branches?Roughly 1 out of every 6 instructions is a conditional branch.How do we look far enough into the future?CS 740 F’00– 6 –Branch PredictionTwo Parts:(1) what is the target address?(2) will the branch be taken or not?CS 740 F’00– 7 –Executing Beyond Unresolved BranchesWhat if we execute instructions that never should have been executed in the first place?•What about their side-effects?This is called “control speculation”.CS 740 F’00– 8 –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 predictionCS 740 F’00– 9 –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, prefetchingCS 740 F’00– 10 –Registers•How many registers do we need?•How will this work?•Renaming, etc.CS 740 F’00– 11 –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
View Full Document