Answered step by step
Verified Expert Solution
Question
1 Approved Answer
Re-Order Buffer (ROB, or called Renaming Buffer): Consider a superscalar microprocessor with a superscalar factor of six. It has a design, using reservation stations, a
Re-Order Buffer (ROB, or called Renaming Buffer): Consider a superscalar microprocessor with a superscalar factor of six. It has a design, using reservation stations, a renaming butter, and a reorder buffer to support out-of-order execution. The functional units have the following latencies (measured in number of cycles): Register # Dest. Tag Value Value Valid? Busy taken)? Integer ALU: I cycle FP divide: 10 cycles FP multiply: 5 cycles FP add sub: 10 cycles Memory: 10 cycles Branch: I cycle a) [10 pts) Suppose that the superscalar pipeline is empty and the following instructions are issued. F3 holds value 80, F4 holds value 4. and FS holds value 2. Inst 12 13 14 IS Instruction ADDF FI, F3, F4 MULTF F2, F3, F5 ADDF F3, F1, F2 ADDF F2, F4,F3 DIVF F4. F2. F4 MULTF F3, F4, F5 (b) [10 pts Suppose the processor is executing the following code fragment: Inst 12 There are 3 reservation stations for the FPAdd functional unit, 2 reservation stations for the FPMultiply functional unit, and I reservation station for the FPDivide functional unit. Instruction DIVF FO, F1, F2 MULTF F3, F4, F5 ADDF FO, F7, F8 SUBF F9.FIO. FII SUBF F12, F13, F14 MULTF F15, F16, F17 15 What is the status of the reservation stations and renaming buffer once all the instructions have been issued and 12 has completed execution and its results have been broadcast? Assume that none of the other functional units have finished execution yet; only the MULTF for 12 has finished execution Suppose the reorder buffer has the state shown in the first 5 columns of this table: Busy? Operation RS name (Dest. Tag) FPAddi Sourcel Value Tag Source2 Value Tag Inst Reg # Dest. Tag Validaty Status Will Write to Register File Order in which results are written FO FPAdd2 FPDiv! FPMulti FPAddi FPAdd2 FPAdd3 FPMult2 F3 FO F9 F12 F15 FPAdd3 FPMultiply IS 16 FPMultiply2 FPDividel The meaning of the status codes are: C = execution has completed, P = execution is pending, E = an exception occurred, M = mispredicted instruction, Fill in the rightmost 2 columns in the table above. Indicate with a "Yes" which instructions will write their result back to the register file. For those instructions that will write to the register file, indicate in what order they write their results. (If an instruction's results are not written back to the register file, then put a "No" and a "X" in the last 2 columns.) Re-Order Buffer (ROB, or called Renaming Buffer): Consider a superscalar microprocessor with a superscalar factor of six. It has a design, using reservation stations, a renaming butter, and a reorder buffer to support out-of-order execution. The functional units have the following latencies (measured in number of cycles): Register # Dest. Tag Value Value Valid? Busy taken)? Integer ALU: I cycle FP divide: 10 cycles FP multiply: 5 cycles FP add sub: 10 cycles Memory: 10 cycles Branch: I cycle a) [10 pts) Suppose that the superscalar pipeline is empty and the following instructions are issued. F3 holds value 80, F4 holds value 4. and FS holds value 2. Inst 12 13 14 IS Instruction ADDF FI, F3, F4 MULTF F2, F3, F5 ADDF F3, F1, F2 ADDF F2, F4,F3 DIVF F4. F2. F4 MULTF F3, F4, F5 (b) [10 pts Suppose the processor is executing the following code fragment: Inst 12 There are 3 reservation stations for the FPAdd functional unit, 2 reservation stations for the FPMultiply functional unit, and I reservation station for the FPDivide functional unit. Instruction DIVF FO, F1, F2 MULTF F3, F4, F5 ADDF FO, F7, F8 SUBF F9.FIO. FII SUBF F12, F13, F14 MULTF F15, F16, F17 15 What is the status of the reservation stations and renaming buffer once all the instructions have been issued and 12 has completed execution and its results have been broadcast? Assume that none of the other functional units have finished execution yet; only the MULTF for 12 has finished execution Suppose the reorder buffer has the state shown in the first 5 columns of this table: Busy? Operation RS name (Dest. Tag) FPAddi Sourcel Value Tag Source2 Value Tag Inst Reg # Dest. Tag Validaty Status Will Write to Register File Order in which results are written FO FPAdd2 FPDiv! FPMulti FPAddi FPAdd2 FPAdd3 FPMult2 F3 FO F9 F12 F15 FPAdd3 FPMultiply IS 16 FPMultiply2 FPDividel The meaning of the status codes are: C = execution has completed, P = execution is pending, E = an exception occurred, M = mispredicted instruction, Fill in the rightmost 2 columns in the table above. Indicate with a "Yes" which instructions will write their result back to the register file. For those instructions that will write to the register file, indicate in what order they write their results. (If an instruction's results are not written back to the register file, then put a "No" and a "X" in the last 2 columns.)
Step by Step Solution
There are 3 Steps involved in it
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started