dynamic scheduling
play

DYNAMIC SCHEDULING Mahdi Nazm Bojnordi Assistant Professor School - PowerPoint PPT Presentation

DYNAMIC SCHEDULING Mahdi Nazm Bojnordi Assistant Professor School of Computing University of Utah CS/ECE 6810: Computer Architecture Overview Announcement Homework 3 will be uploaded tonight This lecture Dynamic scheduling n


  1. DYNAMIC SCHEDULING Mahdi Nazm Bojnordi Assistant Professor School of Computing University of Utah CS/ECE 6810: Computer Architecture

  2. Overview ¨ Announcement ¤ Homework 3 will be uploaded tonight ¨ This lecture ¤ Dynamic scheduling n Forming data flow graph on the fly ¤ Register renaming n Removing false data dependence n Architectural vs. physical registers

  3. Big Picture ¨ Goal: exploiting more ILP by avoiding stall cycles ¤ Branch prediction can avoid the stall cycles in the frontend Integer unit Reorder Buffer (ROB) Ex Mem Branch pred FP/integer multiply IF ID M1 M2 M3 M4 M5 M6 M7 WB FP adder A1 A2 A3 A4 FP/integer divider DIV

  4. Big Picture ¨ Goal: exploiting more ILP by avoiding stall cycles ¤ Branch prediction can avoid the stall cycles in the frontend n More instructions are sent to the pipeline Integer unit Reorder Buffer (ROB) Ex Mem Branch pred Queue FP/integer multiply IF ID M1 M2 M3 M4 M5 M6 M7 WB FP adder A1 A2 A3 A4 FP/integer divider DIV

  5. Big Picture ¨ Goal: exploiting more ILP by avoiding stall cycles ¤ Branch prediction can avoid the stall cycles in the frontend n More instructions are sent to the pipeline ¤ Instruction scheduling can remove unnecessary stall cycles in the execution/memory stage n Static scheduling n Complex software (compiler) n Unable to resolve all data hazards (no access to runtime details) n Dynamic scheduling n Completely done in hardware

  6. Dynamic Scheduling ¨ Key idea: creating an instruction schedule based on runtime information ¤ Hardware managed instruction reordering Assembly code: Long latency operation DIV F1, F2, F3 ADD F4, F1, F5 Dependent instruction Integer unit Reorder Buffer (ROB) Ex Mem SUB F6, F5, F7 Queue FP/integer multiply IF ID M1 M2 M3 M4 M5 M6 M7 WB Independent instruction FP adder Out-of-order execution? A1 A2 A3 A4 FP/integer divider DIV

  7. Dynamic Scheduling ¨ Key idea: creating an instruction schedule based on runtime information ¤ Hardware managed instruction reordering ¤ Instructions are executed in data flow order ADDI R1, R0, #1 ADDI R2, R0, #4 Data flow ADD R3, R3, R2 ADDI R1, R0, #1 ADDI R2, R0, #4 ADD R2, R2, #-1 Program code BNEQ R2, R1, next ADDI R1, R0, #1 BNEQ R2, R0, loop ADDI R1, R0, #1 ADD R2, R2, #-1 ADD R3, R3, R2 ADDI R2, R0, #4 ADD R3, R3, R2 ADDI R2, R0, #4 loop: ADD R3, R3, R2 ADD R2, R2, #-1 ADD R3, R3, R2 ADD R2, R2, #-1 ADD R2, R2, #-1 BNEQ R2, R1, next ADD R2, R2, #-1 ADD R3, R3, R2 BNEQ R2, R1, next BNEQ R2, R1, next BNEQ R2, R0, loop ADD R4, R4, R3 ADD R4, R4, R3 ADD R3, R3, R2 next: BNEQ R2, R0, loop ADD R2, R2, #-1 ADD R3, R3, R2 BNEQ R2, R0, loop ADD R2, R2, #-1 BNEQ R2, R1, next ADD R4, R4, R3 ADD R3, R3, R2 ADD R4, R4, R3 ADD R2, R2, #-1 BNEQ R2, R0, loop ADD R3, R3, R2 ADD R2, R2, #-1 How to form data flow graph on the fly? BNEQ R2, R1, next BNEQ R2, R0, loop

  8. Register Renaming ¨ Eliminating WAR and WAW hazards ¤ Change the mapping between architectural registers and physical storage locations RAW WAR and WAW hazards can be removed DIV F1, F2, F3 using more registers WAR ADD F4, F1, F5 Integer unit Reorder Buffer (ROB) SUB F5, F6, F7 Ex Mem WAW ADD F4, F5, F8 Queue FP/integer multiply IF ID M1 M2 M3 M4 M5 M6 M7 WB DIV F1, F2, F3 FP adder ADD F4, F1, F5 A1 A2 A3 A4 SUB Q1, F6, F7 FP/integer divider ADD Q2, Q1, F8 DIV

  9. Register Renaming ¨ Eliminating WAR and WAW hazards n 1. allocate a free physical location for the new register n 2. find the most recently allocated location for the register Physical Locations DIV F1, F2, F3 Architectural Registers ADD F4, F1, F5 P10 P11 F1 SUB F5, F6, F7 P12 F2 ADD F4, F5, F8 P13 F3 P14 F4 P15 F5 DIV P12, P11, P10 P16 F6 P17 F7 P18 F8 P19

  10. Register Renaming ¨ Eliminating WAR and WAW hazards n 1. allocate a free physical location for the new register n 2. find the most recently allocated location for the register Physical Locations DIV F1, F2, F3 Architectural Registers ADD F4, F1, F5 P10 P11 F1 SUB F5, F6, F7 P12 F2 ADD F4, F5, F8 P13 F3 P14 F4 P15 F5 DIV P12, P11, P10 P16 F6 ADD P14, P12, P15 P17 F7 P18 F8 P19

  11. Register Renaming ¨ Eliminating WAR and WAW hazards n 1. allocate a free physical location for the new register n 2. find the most recently allocated location for the register Physical Locations DIV F1, F2, F3 Architectural Registers ADD F4, F1, F5 P10 P11 F1 SUB F5, F6, F7 P12 F2 ADD F4, F5, F8 P13 F3 P14 F4 P15 F5 DIV P12, P11, P10 P16 F6 ADD P14, P12, P15 P17 F7 P18 F8 SUB P19, P17, P13 P19

  12. Register Renaming ¨ Eliminating WAR and WAW hazards n 1. allocate a free physical location for the new register n 2. find the most recently allocated location for the register Physical Locations DIV F1, F2, F3 Architectural Registers ADD F4, F1, F5 P10 P11 F1 SUB F5, F6, F7 P12 F2 ADD F4, F5, F8 P13 F3 P14 F4 P15 F5 DIV P12, P11, P10 P16 F6 ADD P14, P12, P15 P17 F7 P18 F8 SUB P19, P17, P13 P19 ADD P18, P19, P16

Recommend


More recommend