07+-+ROB - CS 4290/6290 Dynamic Scheduling in Modern...

Info iconThis preview shows pages 1–9. Sign up to view the full content.

View Full Document Right Arrow Icon
CS 4290/6290 Dynamic Scheduling in Modern Processors
Background image of page 1

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
Reservation station used for both Scheduling instructions (operands ready) Name for register renaming (remove false deps) Scheduling makes RS expensive Associative logic for updates from CDB Opcode, operands, etc. All of this needed only before inst begins to execute When can we free RS? Not when instruction starts to execution When instruction is completed • Need the temporary name to broadcast result Separate register renaming from RS CS 4290/6290 – Spring 2009 – Prof. Milos Prvulovic 2
Background image of page 2
Instructions complete out of order Exceptions difficult to handle Branch misprediction also difficult to recover from Remember: only reorder if we don’t get caught We do get caught (exceptions, branch mispredictions) Need to fix things so we NEVER get caught Must finish instruction in program order! CS 4290/6290 – Spring 2009 – Prof. Milos Prvulovic 3 Instruction Is Ex Wr 1. DIV.D F10,F0, F6 1 2 42 2. L.D   F2, 45(R3) 2 3 5 3. MUL.D F0, F2, F4 3 6 16 4. SUB.D F8, F2, F6 4 6 8 What if divide-by-zero detected in cycle 41
Background image of page 3

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
Separates architected vs. physical registers Enables in-order completion or “commit” CS 4290/6290 – Spring 2009 – Prof. Milos Prvulovic 4
Background image of page 4
Instruction Buffers Architected Register File RAT type dest value fin ROB “head” 5
Background image of page 5

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
CS 4290/6290 – Spring 2009 – Prof. Milos Prvulovic Read inst from buffer Check if resources available: Appropriate RS entry ROB entry Read RAT, read (available) sources, update RAT Write to RS and ROB Instruction Buffers op Qj Qk Vj Vk Reservation Stations and ALUs op Qj Qk Vj Vk op Qj Qk Vj Vk op Qj Qk Vj Vk Add op Qj Qk Vj Vk op Qj Qk Vj Vk Mult Architected Register File RAT type dest value fin ROB “head” Stall issue if any  needed resource not  available 6
Background image of page 6
Same as before Wait for all operands to arrive Compete to use functional unit Execute! CS 4290/6290 – Spring 2009 – Prof. Milos Prvulovic 7
Background image of page 7

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
CS 4290/6290 – Spring 2009 – Prof. Milos Prvulovic Broadcast result on CDB (any dependents will grab the value) Write result back to your ROB entry The ARF holds the “official” register state, which we will only update in program order Mark ready/finished bit in ROB (note that this inst has completed execution) Reservation station can be freed.
Background image of page 8
Image of page 9
This is the end of the preview. Sign up to access the rest of the document.

Page1 / 27

07+-+ROB - CS 4290/6290 Dynamic Scheduling in Modern...

This preview shows document pages 1 - 9. Sign up to view the full document.

View Full Document Right Arrow Icon
Ask a homework question - tutors are online