Also introduces a latency between result and use of a value 2. what are the key issues in implementing advanced speculation techniques? Explain them in detail? (Jun 2014) (June2013) Tomasulo’s w/HW Speculation Key aspects of this design • Separate forwarding (result bypassing) from actual instruction completion – Assuming instructions are executing speculatively Can pass results to later instructions, but prevents instruction from performing updates that can’t be “undone” Once instruction is no longer speculative it can update register file/memory – New step in execution sequence: instruction commit Requires instructions to wait until they can commit Commits still happen in order Reorder Buffer (ROB) Instructions hang out here before committing Provides extra registers for RS/RegFile Is a source for operands – Four Instruction type – Register number or store address field – Holds value to write to register or data for store • Ready field – Has instruction finished executing? Instruction Execution Note: store buffers from previous version now in ROB Sequence Issue Issue instruction if opening in RS & ROB Send operands to RS from RegFile and/or ROB Execute • Essentially the same as before – Write Result • Similar to before, but put result into ROB – Commit (next slide) • Committing Instructions Look at head of ROB Three types of instructions • Incorrectly predicted branch – Indicates speculation was Flush ROB Execution restarts at proper location Store –
Also introduces a latency between result and use of a value 2. what are the key issues in implementing advanced speculation techniques? Explain them in detail? (Jun 2014) (June2013) Tomasulo’s w/HW Speculation • Key aspects of this design – Separate forwarding (result bypassing) from actual instruction completion Assuming instructions are executing speculatively Can pass results to later instructions, but prevents instruction from performing updates that can’t be “undone” – Once instruction is no longer speculative it can update register file/memory New step in execution sequence: instruction commit Requires instructions to wait until they can commit Commits still happen in order Reorder Buffer (ROB) Instructions hang out here before committing Provides extra registers for RS/RegFile – Is a source for operands Four – Instruction type Register number or store address – field • Holds value to write to register or data for store – Ready field Has instruction finished executing? Note: store buffers from previous version now in ROB Instruction Execution Sequence Issue Issue instruction if opening in RS & ROB Send operands to RS from RegFile and/or ROB • Execute – Essentially the same as before • Write Result – Similar to before, but put result into ROB • Commit (next slide) Committing Instructions Look at head of ROB • Three types of instructions – Incorrectly predicted branch Indicates speculation was Flush ROB Execution restarts at proper location – Store
Unit-IV-VIII.docx