高级计算机体系结构设计及其在数据中心和云计算的应用P6 Dispatch (D) (2/2)RegfileMapTableRT+valuevalueHeadRetireTailMDispatchV1V2opTT1T2ROBDispatchRSTFUReadtagsforregisterinputsfromMapTable- Tag==O → value from Regfile (not shown)- Tag!=O → Map Table tag to RS, Tag!=O+ → value from ROB
高级计算机体系结构设计及其在数据中心和云计算的应用 P6 Dispatch (D) (2/2) value V1 V2 T+ op T T1 T2 == Map Table CDB.T CDB.V Regfile == R value ROB Head Retire Tail Dispatch • Read tags for register inputs from Map Table – Tag==0 value from Regfile (not shown) – Tag!=0 Map Table tag to RS, Tag!=0+ value from ROB FU == == == == RS Dispatch T == == == ==
高级计算机体系结构设计及其在数据中心和云计算的应用P6 Complete (C)RegfileMapTableRT+valuevalueHeadRetireaaTail身DispatchV1V2opTT1T2ROBDispatchRSTFUCDB busy? stall:broadcast<value,tag>onCDBResult →ROB, if MapTable valid→"ready-in-ROB"bitIf RS T1 or T2 matches, Write CDB.V into RS slot
高级计算机体系结构设计及其在数据中心和云计算的应用 P6 Complete (C) value V1 V2 T+ op T T1 T2 == Map Table CDB.T CDB.V Regfile == R value ROB Head Retire Tail Dispatch • CDB busy ? stall : broadcast <value,tag> on CDB • Result ROB, if MapTable valid “ready-in-ROB” bit • If RS T1 or T2 matches, write CDB.V into RS slot FU == == == == RS Dispatch T == == == ==
高级计算机体系结构设计及其在数据中心和云计算的应用P6 Retire (R)RegfileMapTableRvaluevalueHeadRetireaaTailDispatchV1V2opT T1 T2ROBDispatchRSTFUROB head not complete ? stall : free ROB entryWrite ROBhead resulttoRegfileIf still valid, clear Map Tableentry
高级计算机体系结构设计及其在数据中心和云计算的应用 P6 Retire (R) value V1 V2 T op T T1 T2 == Map Table CDB.T CDB.V Regfile == R value ROB Head Retire Tail Dispatch • ROB head not complete ? stall : free ROB entry • Write ROB head result to Regfile • If still valid, clear Map Table entry FU == == == == RS Dispatch T == == == ==
高级计算机体系结构设计及其在数据中心和云计算的应用P6: Cycle 1ROBCDBMap TableVRVTsXchtReg/T+#Insnfohtldf x(rl),f1f112f1ROB#1mulffo,f1,f23f2stff2,z(r1)4r1addi rl,4,r151dfX(r1)fl6mulffo,f1,f27stf f2,z(r1)ReservationStations#set ROB#tagFUT1V1TT2V2busylop1ALUno2LDidfROB#1[r1]allocateyes3STno4FP1no5FP2no
高级计算机体系结构设计及其在数据中心和云计算的应用 P6: Cycle 1 ROB ht # Insn R V S X C ht 1 ldf X(r1),f1 f1 2 mulf f0,f1,f2 3 stf f2,Z(r1) 4 addi r1,4,r1 5 ldf X(r1),f1 6 mulf f0,f1,f2 Map Table Reg T+ f0 f1 ROB#1 f2 r1 CDB T V 6 mulf f0,f1,f2 7 stf f2,Z(r1) Reservation Stations # FU busy op T T1 T2 V1 V2 1 ALU no 2 LD yes ldf ROB#1 [r1] 3 ST no 4 FP1 no 5 FP2 no allocate set ROB# tag
高级计算机体系结构设计及其在数据中心和云计算的应用P6: Cycle 2ROBCDBMapTableVRVSTXchtReg/T+#Insnhf1fo1ldf x(rl),f1c2t2f2f1ROB#1mulffo.f1.f23f2ROB#2stff2,z(r1)4r1addi rl,4,rl5ldf x(r1),fl6mulffo,f1,f27stf f2,z(r1)ReservationStations#set ROB# tagFUT1V1V2TT2busylop1ALUno2LDldfROB#1[r1]yes3STno4FP1ROB#2ROB#1[fO]mulfallocateyes5FP2no
高级计算机体系结构设计及其在数据中心和云计算的应用 P6: Cycle 2 ROB ht # Insn R V S X C h 1 ldf X(r1),f1 f1 c2 t 2 mulf f0,f1,f2 f2 3 stf f2,Z(r1) 4 addi r1,4,r1 5 ldf X(r1),f1 6 mulf f0,f1,f2 Map Table Reg T+ f0 f1 ROB#1 f2 ROB#2 r1 CDB T V 6 mulf f0,f1,f2 7 stf f2,Z(r1) Reservation Stations # FU busy op T T1 T2 V1 V2 1 ALU no 2 LD yes ldf ROB#1 [r1] 3 ST no 4 FP1 yes mulf ROB#2 ROB#1 [f0] 5 FP2 no allocate set ROB# tag