DOC PREVIEW
MIT 6 375 - Lecture Slides

This preview shows page 1-2-3-4 out of 12 pages.

Save
View full document
View full document
Premium Document
Do you want full access? Go Premium and unlock all 12 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 12 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 12 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 12 pages.
Access to all documents
Download any document
Ad free experience
Premium Document
Do you want full access? Go Premium and unlock all 12 pages.
Access to all documents
Download any document
Ad free experience

Unformatted text preview:

5/14/20071Group IVWei-Yin ChenMyong Hyon ChoMIT 6.375 Complex Digital Systems 2007 SpringProject Goal Design and implement an out-of-ordering superscalar SMIPSv2 processorSMIPSv2 processorMIT 6.375 Complex Digital Systems 2007 SpringOutline Introduction In-Order vs. Out-of-Order Register RenamingROd i B ffMIT 6.375 Complex Digital Systems 2007 Spring Architectural Design Bluespec Implementation Results ConclusionRe-Ordering Buffer Superscalar ArchitectureIn-Order vs. Out-of-OrderLW R1, 0(R2)TIMEADD R7, R6, R5ADD R10, R9, R8MIT 6.375 Complex Digital Systems 2007 SpringADD R4, R1, R3…Out-of-Ordering(OoO) execution can increase IPC5/14/20072Register RenamingLW R2, 0(R1)ADD R3, R6, R0LW R2, 0(R1)ADD R3, R2, R1ADD R4, R3, R0MIT 6.375 Complex Digital Systems 2007 SpringADD R3, R2, R1ADD R4, R3, R0(R3 = R1 + R2)ADD R3, R6, R0(R3 = R6 + R0)Register renaming can solve this problem.Register RenamingADDI R1, R0, 1024LW R2, 0(R1)ADD R3, R2, R1ADDI P1, R0, 1024LW R2, 0(P1)ADD R3, R2, P1ADDI P1, R0, 1024LW P2, 0(P1)ADD R3, P2, P1ADDI P1, R0, 1024LW P2, 0(P1)ADD P3, P2, P1ADDI P1, R0, 1024LW P2, 0(P1)ADD P3, P2, P1ADDI P1, R0, 1024LW P2, 0(P1)ADD P3, P2, P1MIT 6.375 Complex Digital Systems 2007 SpringADD R4, R3, R0ADD R3, R6, R0R1R2R3R4Rename TableADD R4, R3, R0ADD R3, R6, R0R1P1R2R3R4R1 P1R2 P2R3P3R4ADD R4, R3, R0ADD R3, R6, R0ADD R4, P3,R0ADD R3, R6, R0R1 P1R2P2R3R4ADD P4, P3,R0ADD R3, R6, R0R1 P1R2 P2R3 P3R4P4ADD P4, P3,R0ADD P5, R6, R0R1 P1R2 P2R3 P5 P3R4 P4Re-Ordering BufferInst src1 src2 dstADD P1P2P3ADD P4P1P6MUL P7P6P6ADD P1MUL P7P1MIT 6.375 Complex Digital Systems 2007 SpringAND P5 P4 P7Re-Ordering Buffer (ROB)ALUROB keeps information for OoO dispatch.Superscalar ArchitectureInst src1 src2 dstADD P1P2P3ADD P4P1P6MUL P7P6P6ADD P1MUL P7P1ADD P4MultMIT 6.375 Complex Digital Systems 2007 SpringAND P5 P4 P7Re-Ordering Buffer (ROB)Adder5/14/20073Outline Introduction Architectural Design Main TasksPipeline StagesMIT 6.375 Complex Digital Systems 2007 Spring Bluespec Implementation Results ConclusionPipeline Stages Microarchitectural DesignMain Tasks Insertion- Fetch instructions- Rename registers- Insert into ROB Dispatch- Send ‘ready’ instructions to execution unitsUpdate- Update ROB to show values are readyMIT 6.375 Complex Digital Systems 2007 SpringMain Tasks Branch - Resolve branches- Rollback on mis-predictionsCitCommit- Finish ‘safe’ instructionsMIT 6.375 Complex Digital Systems 2007 SpringPipeline Stages ALU instructionspcGeninsertiondispatch execute update retireM ittiMIT 6.375 Complex Digital Systems 2007 SpringpcGen insertiondispatchaddrUpdateaddrdispatchrequestupdateresponseretireMemory instructionspcGen insertion dispatchbranchresolve(link pc)branchupdateretire Branches and Jumps5/14/20074Microarchitectural Design Overall DesignDecode, Rename, InsertMIT 6.375 Complex Digital Systems 2007 SpringMicroarchitectural Design Overall DesignBranchesMIT 6.375 Complex Digital Systems 2007 SpringMicroarchitectural Design Overall DesignRetire (Commit or Discard)MIT 6.375 Complex Digital Systems 2007 SpringMicroarchitectural Design Status of entries in ROBVEF1111111inst …BNE…SUB…ADDMIT 6.375 Complex Digital Systems 2007 Spring11ADD…-SUB updates value- ADD is dispatched to ALU- BNE is dispatched to branch unit5/14/20075Microarchitectural Design Status of entries in ROBVEF11101101inst …BNE…SUB…ADDMIT 6.375 Complex Digital Systems 2007 Spring01ADD…- BNE is resolved, mis-predictionMicroarchitectural Design Status of entries in ROBVEF01 10 1 101inst …BNE…SUB…ADDMIT 6.375 Complex Digital Systems 2007 Spring01ADD…- SUB is retired (discarded)- ADD cannot be retiredMicroarchitectural Design Status of entries in ROBVEF01 10 1 1011inst …BNE…SUB…ADDMIT 6.375 Complex Digital Systems 2007 Spring011ADD…- ADD gets the result from ALU- ADD is now retired (discarded)Outline Introduction Architectural Design Bluespec ImplementationBluespec Rules and MethodsMIT 6.375 Complex Digital Systems 2007 SpringBluespec Rules and Methods Rule Concurrency Design Exploration Results Conclusion5/14/20076Bluespec Rules in mkProc Insertion y discardFetchy decodeInsert Dispatchy dispatchALUy dispatchMemymemReq Actions in different stages should work at the same time Why don’t they?memReq Branchy branchResolvey branchStep2Linky branchStep2 Updatey aluUpdatey memUpdatey memUpdateNOP Retirey retireInstyyMIT 6.375 Complex Digital Systems 2007 SpringBluespec Methods in mkROB Insertion y Action insertEntryy Action insertMemEntry Dispatchy aluInstFirst / Action aluInstPopy brInstFirst / Action brInstPopy ActionValue memInstPopyActionValuememReqPop Insertion y discardFetchy decodeInsert Dispatchy dispatchALUy dispatchMemy memReqMIT 6.375 Complex Digital Systems 2007 SpringyActionValuememReqPop Branchy Action discardy Action resolve Updatey Action aluUpdResulty Action linkUpdResulty Action memUpdAddry Bool getValidBit Retirey ActionValue retirePopq Branchy branchResolvey branchStep2Linky branchStep2 Updatey aluUpdatey memUpdatey memUpdateNOP Retirey retireInst…High Method Concurrency in ROB FirstConcurrency Analysis Initial Designy A huge register containing all ROB fields and entries Read-Write Patternmethod1method1method3y Every entry is read and written by many methodsy All action methods conflicty Compiling is slowMIT 6.375 Complex Digital Systems 2007 SpringRegistermethod1method3Rule Concurrency How to get high concurrency? Every method write to RWireRulemethod2method1RWire RWirey Structural rule to handle all the cases Or Bluespec way!y Data structure separationy ROB Method ordering with EHRMIT 6.375 Complex Digital Systems 2007 SpringRegisterregAregB0regB1method2method15/14/20077Data Structure Separation Separated Data Structurebased on the number of reads and writesrdst lrdst inst taken pc+4VEFIO rsrc1prsrc2 p sid After this, compile time becomes reasonableMIT 6.375 Complex Digital Systems 2007 SpringRemained in Vector- global read - multiple writersFitted in RegFile- limited read - single writerRule Ordering in mkProc Methodology of rule ordering propagationy Determine the top rule orderingy Change the method order of all leaf gmodulesy Change the EHR index for state variablesy Keep EHR index consistent within a rule Problem: longer critical


View Full Document

MIT 6 375 - Lecture Slides

Documents in this Course
IP Lookup

IP Lookup

15 pages

Verilog 1

Verilog 1

19 pages

Verilog 2

Verilog 2

23 pages

Encoding

Encoding

21 pages

Quiz

Quiz

10 pages

IP Lookup

IP Lookup

30 pages

Load more
Download Lecture Slides
Our administrator received your request to download this document. We will send you the file to your email shortly.
Loading Unlocking...
Login

Join to view Lecture Slides and access 3M+ class-specific study document.

or
We will never post anything without your permission.
Don't have an account?
Sign Up

Join to view Lecture Slides 2 2 and access 3M+ class-specific study document.

or

By creating an account you agree to our Privacy Policy and Terms Of Use

Already a member?