Dynamic Scheduling)

Dynamic Scheduling)

EEC 581 Computer Architecture Instruction Level Parallelism (3.4 & 3.5 Dynamic Scheduling) Chansu Yu Electrical and Computer Engineering Cleveland State University Overview of Chap. 3 (again) • Pipelined architecture allows multiple instructions run in parallel (ILP) • But, it has data and control hazard problems • How can we avoid or alleviate the hazard problems in pipelined architecture? • Key idea is to “reorder” the execution of instructions !!! 3.3 Branch prediction (branch history table) 3.6 Speculative execution 3.4 & 3.5 Multiple issue – dependency (“commit”) Dynamic scheduling (forwarding) 3.7 Multiple issue – dependency Static scheduling (“VLIW”) 9/4/2018 2 1 Outline • ILP (3.1) • Compiler techniques to increase ILP (3.1) • Loop Unrolling (3.2) • Static Branch Prediction (3.3) • Dynamic Branch Prediction (3.3) • Overcoming Data Hazards with Dynamic Scheduling (3.4) • Tomasulo Algorithm (3.5) • Speculation, Speculative Tomasulo, Memory Aliases, Exceptions, Register Renaming vs. Reorder Buffer (3.6) • VLIW, Increasing instruction bandwidth (3.7) • Instruction Delivery (3.9) 9/4/2018 3 Extracting Yet More Performance • Two options: –Increase the depth of the pipeline to increase the clock rate – superpipelining –Fetch (and execute) more than one instructions at one time (expand every pipeline stage to accommodate multiple instructions) – multiple-issue (VLIW or superscalar) 9/4/2018 4 2 Extracting Yet More Performance • Superpipelined: Increase the depth of the pipeline leading to shorter clock cycles (and more instructions “in flight” at one time) – The higher the degree of superpipelining, the more forwarding/hazard hardware needed, the more pipeline latch overhead, and the bigger the clock skew • Multiple-issue: Launching multiple instructions per stage allows the instruction execution rate, CPI, to be less than 1 – So instead we use IPC: instructions per clock cycle – E.g., a 6 GHz, four-way multiple-issue processor can execute at a peak rate of 24 billion instructions per second with a best case CPI of 0.25 or a best case IPC of 4 9/4/2018 5 Multiple-Issue Processor Styles • Static multiple-issue processors (aka VLIW) – Decisions on which instructions to execute simultaneously are being made statically (at compile time by the compiler) – E.g., Intel Itanium and Itanium 2 for the IA-64 ISA – EPIC (Explicit Parallel Instruction Computer) • Dynamic multiple-issue processors (aka superscalar) – Decisions on which instructions to execute simultaneously are being made dynamically (at run time by the hardware) – E.g., IBM Power 2, Pentium 4, MIPS R10K, HP PA 8500 9/4/2018 6 3 Multiple-Issue Datapath Responsibilities • Must handle, with a combination of hardware and software fixes, the fundamental limitations of – Data hazards » We’ll see in more detail – Control hazards » Use dynamic branch prediction to help resolve the ILP issue – Structural hazards » A SS/VLIW processor has a much larger number of potential resource conflicts » Functional units may have to arbitrate for result buses and register-file write ports » Resource conflicts can be eliminated by duplicating the resource or by pipelining the resource 9/4/2018 7 Instruction Issue and Completion Policies • Instruction-issue – initiate execution – Instruction lookahead capability – fetch, decode and issue instructions beyond the current instruction • Instruction-completion – complete execution – Processor lookahead capability – complete issued instructions beyond the current instruction • Instruction-commit – write back results to the RegFile In-order issue with in-order completion In-order issue with out-of-order completion Out-of-order issue with out-of-order completion Out-of-order issue with out-of-order completion and in- order commit 9/4/2018 8 4 In-Order Issue with In-Order Completion • Simplest policy is to issue instructions in exact program order and to complete them in the same order they were fetched (i.e., in program order) • Example: – Assume a pipelined processor » that can fetch and decode two instructions per cycle, » that has three functional units, and » that can complete (and write back) two results per cycle I1 – needs two execute cycles (a multiply) I2 I3 I4 – needs the same function unit as I3 I5 – needs data value produced by I4 I6 – needs the same function unit as I5 9/4/2018 9 In-Order Issue, In-Order Completion I1 –two execute cycles EX EX I1 IF WB I2 I ID I3 n I4 –same function unit as I3 EX s IF IF WB I5 –data value produced by I4 I2 ID ID t I6 –same function unit as I5 r. IF EX WB I3 ID O r EX IF IF WB need forwarding d I4 ID ID hardware e r IF EX WB I5 ID In parallel can 8 cycles in total Fetch/decode 2 IF IF EX WB I6 Commit 2 ID ID 9/4/2018 10 5 In-Order Issue with Out-of-Order Completion • With out-of-order completion, a later instruction may complete before a previous instruction • Instruction issue is stalled when there is a resource conflict (e.g., for a functional unit) or a data conflict • New type of hazards due to – Anti-dependency (WAR hazard) – Output dependency (WAW hazard) 9/4/2018 11 IOI-OOC Example I1 –two execute cycles EX EX I1 IF WB I2 I ID I3 n I4 –same function unit as I3 EX s IF WB I5 –data value produced by I4 I2 ID t I6 –same function unit as I5 r. IF EX WB I3 ID O r EX IF IF WB d I4 ID ID e r IF EX WB I5 ID 7 cycles in total: IF IF EX WB I6 ID ID 1 cycle faster than IOI-IOC 9/4/2018 12 6 Data Dependence and Hazards • InstrJ is data dependent on InstrI => RAW hazard I: add r1,r2,r3 J: sub r4,r1,r3 • InstrJ is name dependent (anti-dependency) on InstrI => WAR hazard H: div r1,r2,r3 I: add r4,r1,r5 J: sub r5,r6,r7 Not a problem in IOI-IOC • InstrJ is output dependent on InstrI processor => WAW hazard I: mul r1,r4,r3 J: add r1,r2,r3 9/4/2018 K: sub r6,r1,r7 13 IOI-OOC: Output Dependencies EX IF EX There is one more situation that I1 WB I ID stalls instruction issuing with IOI- n OOC. EX s IF WB I1 – writes to R1 I2 ID t I2 – writes to R1 r. I5 – reads R1 IF EX WB I3 ID The issuing of I2 would O have to be stalled r EX IF IF WB d I4 ID ID While IOI-OOC yields e higher performance, it r EX requires more IF WB I5 ID dependency checking hardware IF IF EX WB I6 ID ID 9/4/2018 14 7 IOI-OOC: Output Dependencies • WAW hazard EX EX IF EX WB I1: mul r1,r4,r3 ID I2: add r1,r2,r3 EX r1 I3: or r0,r0,r0 IF WB ID I4: sub r6,r1,r7 r1 EX IF WB ID EX IF WB ID r1 9/4/2018 15 Out-of-Order Issue with Out-of-Order Completion • IOI processor stops decoding an instruction whenever it has a resource conflict or a data dependency. • But, next instructions might have neither resource conflict nor a data dependency • Fetch and decode instructions beyond the conflicted one, – store them in an instruction buffer (as long as there’s room), and – flag those instructions in the buffer that don’t have resource conflicts or data dependencies – Flagged instructions are then issued from the buffer without regard to their program order 9/4/2018 16 8 OOI-OOC Example I1 –two execute cycles EX EX I1 IF WB I2 I ID I3 n I4 –same function unit as I3 EX s IF WB I5 –data value produced by I4 I2 ID t I6 –same function unit as I5 r. IF EX WB I3 ID O r EX IF IF WB d I4 ID ID e r IF IF EX WB I5 ID ID 6 cycles in total: IF EX WB 1 cycle faster I6 ID than IOI-OOC 9/4/2018 17 OOI-OOC: Anti-Dependencies EX IF EX There is one more situation that I1 WB I ID stalls instruction issuing with OOI- n OOC. EX s IF WB I5 – read R5 I2 ID t I6 – writes to R5 r. EX The execution of I6 IF WB I3 ID would have to be O stalled r EX IF IF WB d I4 ID ID While OOI-OOC e requires more r IF IF EX WB dependency checking. I5 ID ID IF EX WB I6 ID 9/4/2018 18 9 OOI-OOC: Anti-Dependencies • WAR hazard EX EX I4: div r1,r2,r3 IF EX WB ID I5: div r4,r1,r5 IF IF IF EX I6: sub r5,r6,r7 WB ID ID ID r5 EX IF WB ID r5 9/4/2018 19 Dependencies Review • Each of the three data dependencies – True data dependencies (RAW) – Anti-dependencies (WAR) storage conflicts – Output dependencies (WAW) manifests itself through the use of registers (or other storage locations) • True dependencies represent the flow of data and information through a program • Anti- and output dependencies arise because of the limited number of registers; programmers reuse registers for different computations 9/4/2018 20 10 IOI-OOC: Output Dependencies • WAW hazard EX EX IF EX WB I1: mul r1,r4,r3 ID I2: add r1,r2,r3 EX r1 I3: or r0,r0,r0 IF WB ID I4: sub r6,r1,r7 r10 EX IF WB ID • Can be avoided by register renaming EX IF WB I1: mul r1,r4,r3 ID I2: add r10,r2,r3 r10 I3: or r0,r0,r0 I4: sub r6,r10,r7 9/4/2018 21 IOI-OOC: Output Dependencies • WAW hazard EX EX IF EX WB I1: mul r1,r4,r3 ID I2: add r1,r2,r3 EX r1 I3: or r0,r0,r0 IF WB ID I4: sub r6,r1,r7 r10 EX IF WB ID EX IF WB ID adder • Or, specify the functional unit that produces the new value of the register 9/4/2018 22 11 OOI-OOC: Anti-Dependencies • WAR hazard EX EX I4: div r1,r2,r3 IF EX WB ID I5: div r4,r1,r5 IF IF IF EX I6: sub r5,r6,r7 WB ID ID ID r5 EX IF WB ID • Can be avoided by register renaming r10 I4: div r1,r2,r3 I5: div r4,r1,r5 I6: sub r10,r6,r7 9/4/2018 23 Storage Conflicts and Register Renaming • Storage conflicts can be reduced (or eliminated) by increasing or duplicating the troublesome resource – Provide additional registers that are used to reestablish the correspondence between registers and values • Register renaming – the processor renames the original register identifier in the instruction to a new register (one not in the visible register set) R3 := R3 * R5 R3b := R3a * R5a R4 := R3 + 1 R4a := R3b + 1 R3 := R5 + 1 R3c := R5a + 1 • With a limited number of registers (e.g., IBM 360 in 1966), hardware-based, dynamic scheduling was used.

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    32 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us