1 / 10

Lecture: Out-of-order Processors

Lecture: Out-of-order Processors. Topics: more ooo design details, timing, load-store queue. The Alpha 21264 Out-of-Order Implementation. Reorder Buffer (ROB). Branch prediction and instr fetch. Instr 1 Instr 2 Instr 3 Instr 4 Instr 5 Instr 6. Committed Reg Map R1 P1 R2P2.

mariav
Télécharger la présentation

Lecture: Out-of-order Processors

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Lecture: Out-of-order Processors • Topics: more ooo design details, timing, load-store queue

  2. The Alpha 21264 Out-of-Order Implementation Reorder Buffer (ROB) Branch prediction and instr fetch Instr 1 Instr 2 Instr 3 Instr 4 Instr 5 Instr 6 Committed Reg Map R1P1 R2P2 Register File P1-P64 R1  R1+R2 R2  R1+R3 BEQZ R2 R3  R1+R2 R1  R3+R2 Decode & Rename P33  P1+P2 P34  P33+P3 BEQZ P34 P35  P33+P34 P36  P35+P34 ALU ALU ALU Speculative Reg Map R1P36 R2P34 Instr Fetch Queue Results written to regfile and tags broadcast to IQ Issue Queue (IQ)

  3. Additional Details • When does the decode stage stall? When we either run • out of registers, or ROB entries, or issue queue entries • Issue width: the number of instructions handled by each • stage in a cycle. High issue width  high peak ILP • Window size: the number of in-flight instructions in the • pipeline. Large window size  high ILP • No more WAR and WAW hazards because of rename • registers – must only worry about RAW hazards

  4. Branch Mispredict Recovery • On a branch mispredict, must roll back the processor state: • throw away IFQ contents, ROB/IQ contents after branch • Committed map table is correct and need not be fixed • The speculative map table needs to go back to an earlier state • To facilitate this spec-map-table rollback, it is checkpointed • at every branch

  5. Waking Up a Dependent • In an in-order pipeline, an instruction leaves the decode • stage when it is known that the inputs can be correctly • received, not when the inputs are computed • Similarly, an instruction leaves the issue queue before its • inputs are known, i.e., wakeup is speculative based on the • expected latency of the producer instruction

  6. Out-of-Order Loads/Stores Ld R1  [R2] Ld R3  [R4] St R5  [R6] Ld R7  [R8] Ld R9[R10] What if the issue queue also had load/store instructions? Can we continue executing instructions out-of-order?

  7. Memory Dependence Checking Ld 0x abcdef • The issue queue checks for • register dependences and • executes instructions as soon • as registers are ready • Loads/stores access memory • as well – must check for RAW, • WAW, and WAR hazards for • memory as well • Hence, first check for register • dependences to compute • effective addresses; then check • for memory dependences Ld St Ld Ld 0x abcdef St 0x abcd00 Ld 0x abc000 Ld 0x abcd00

  8. Memory Dependence Checking • Load and store addresses are • maintained in program order in • the Load/Store Queue (LSQ) • Loads can issue if they are • guaranteed to not have true • dependences with earlier stores • Stores can issue only if we are • ready to modify memory (can not • recover if an earlier instr raises • an exception) Ld 0x abcdef Ld St Ld Ld 0x abcdef St 0x abcd00 Ld 0x abc000 Ld 0x abcd00

  9. The Alpha 21264 Out-of-Order Implementation Reorder Buffer (ROB) Branch prediction and instr fetch Instr 1 Instr 2 Instr 3 Instr 4 Instr 5 Instr 6 Instr 7 Committed Reg Map R1P1 R2P2 Register File P1-P64 R1  R1+R2 R2  R1+R3 BEQZ R2 R3  R1+R2 R1  R3+R2 LD R4  8[R3] ST R4  8[R1] Decode & Rename P33  P1+P2 P34  P33+P3 BEQZ P34 P35  P33+P34 P36  P35+P34 P37  8[P35] P37  8[P36] ALU ALU ALU Speculative Reg Map R1P36 R2P34 Results written to regfile and tags broadcast to IQ Instr Fetch Queue Issue Queue (IQ) ALU P37  [P35 + 8] P37  [P36 + 8] D-Cache LSQ

  10. Title • Bullet

More Related