计算机体系结构课后习题原版答案 - 张晨曦著 联系客服

发布时间 : 星期五 文章计算机体系结构课后习题原版答案 - 张晨曦著更新完毕开始阅读767ef5669b6648d7c1c746b4

ADD.D F24, F22, F24 S.D F6, 0[R2] S.D F12, 8[R2] S.D F18, 16[R2] S.D F24, 24[R2] DADDIU R1, R1, #32 DADDIU R2, R2, #32 DSUBIU R3, R1, #DONE

BNEZ R3, FOO

共用了24 个时钟周期,则计算一个Y 值平均需要 24/4 = 6 个时钟周期, 加速比:14/6 = 2.33 (4) 指令 L.D MUL.D L.D ADD.D F2, 0(R1) F4, F2, F0 F6, 0(R2) F6, F4, F6 指令执行时钟 流出 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 保留站 Busy yes no no yes no Op ADD.D Vj Regs[F4] Vk Regs[F6 ] Qj Qk Dest A 执行 2 4 4 8 11 7 8 9 10 11 13 13 17 20 16 17 18 写结果 3 5 6 9 12 8 9 10 13 14 15 18 21 17 18 19 确认 4 6 7 10 13 14 15 16 19 22

S.D F6, 0(R2) DADDIU R1, R1, #8 DADDIU R2, R2, #8 DSUBIU R3,R1,#DONE BNEZ L.D MUL.D L.D ADD.D R3, FOO F2, 0(R1) F4, F2, F0 F6, 0(R2) F6, F4, F6 S.D F6, 0(R2) DADDIU R1, R1, #8 DADDIU R2, R2, #8 DSUBIU R3,R1,#DONE BNEZ 名称 Add1 Add2 Add3 Mult1 Mult2 R3, FOO 项号 ROB Busy 指令 状态 目的 Value 1 2 yes yes ADD.D S.D F6, F4, F6 F6, 0(R2) 执行 流出 F6 Mem[0+Regs[R2]] Regs[F4]+Regs[F6] #2 字段 ROB项编号 Busy 浮点寄存器状态 F0 F2 F4 F6 1 yes F8 F10 … … F30 (5)

整数指令 L.D F2, 0(R1) L.D F8, 8(R1) L.D F14, 16(R1) L.D F20, 24(R1) L.D F6, 0(R2) L.D F12, 8(R2) L.D F18, 16(R2) L.D F24, 24(R2) DADDIU R1, R1, #32 S.D F6, 0(R2) S.D F12, 8(R2) S.D F18,16(R2) S.D F24, 24(R2) DADDIU R2, R2, #32 BNEZ R3, FOO MUT.D MUT.D MUT.D MUT.D ADD.D ADD.D ADD.D ADD.D F4, F2, F0 F10, F8, F0 F16, F14, F0 F22, F20, F0 F6, F4, F6 F12, F10, F12 F18, F16, F18 F24, F22, F24 浮点指令 时钟周期数 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 DSUBIU R3, R1, #DONE

计算一个Y值需要 16/4 = 4 个时钟周期,加速比 = 14/4 = 3.5 (6) 访存1 L.DF2, 0(R1) L.DF14, 16(R1) L.DF6, 0(R2) L.DF18, 16(R2) 访存2 L.D F8, 8(R1) L.DF20, 24(R1) L.DF12, 8(R2) L.DF24, 24(R2) 浮点指令1 MUT.DF4, F2, F0 MUT.DF16, F14, F0 ADD.DF6, F4, F6 ADD.DF18, F16, F18 MUT.DF22, F20, F0 ADD.DF12, F10, F12 ADD.DF24, F22, F24 DADDIU R2, R2, #32 DSUBIUR3, R1, DADDIU R1, R1, #32 浮点指令2 整数指令 时钟 周期 1 3 MUT.DF10, F8, F0 4 5 6 7 8 #DONE S.DF6, -32(R2) S.DF18,-16(R2) BNEZ R3, FOO 9 10 11 S.DF12, -24(R2) S.DF24, -8(R2)

计算一个Y值需要 11/4 个时钟周期,加速比 = 14/(11/4) = 56/11

4.7 对于两路超标量处理器,从存储器取数据有两拍附加延迟,其它操作均有1拍附加延迟,对于下列代码,请按要求进行指令调度。

LW R4,(R5) LW R7,(R8) DADD R9,R4,R7 LD R10,(R11) DMUL R12,R13,R14 DSUB R2,R3,R1 SW R15,(R2) DMUL R21,R4,R7 SW R23,(R22) SW R21,(R24)

(1) 假设两路功能部件中同时最多只有一路可以是访问存储器的操作,同时也最多只有

一路可以是运算操作,指令顺序不变。

(2) 假设两路功能部件均可以执行任何操作,指令顺序不变。

(3) 假设指令窗口足够大,指令可以乱序(out-of-order)流出,两路功能部件均可以执

行任何操作。

解:(1)

第一路 LW LW DADD DMUL DSUB DMUL SW R21, (R24) R9, R4, R7 R12, R13, R14 R2, R3, R1 R21, R4, R7 LD R10, (R11) SW R15, (R2) SW R23, (R22) R4, (R5) R7, (R8) 第二路 (2)

第一路 LW DADD DMUL SW R9, R4, R7 R12, R13, R14 R15, (R2) R4, (R5) LW LD DSUB DMUL R10, (R11) R2, R3, R1 R21, R4, R7 第二路 R7, (R8) SW SW (3)

R23, (R22) R21, (R24) 第一路 LW DSUB SW DADD R4, (R5) R2, R3, R1 R23, (R22) R9, R4, R7 LW DMUL DMUL 第二路 R7, (R8) R12, R13, R14 R21, R4, R7 LD R10, (R11) SW R15, (R2) SW R21, (R24)

4.8 对于例4.5,在相同的条件下,如果展开7遍循环,求: (1) 每遍循环的平均时钟周期; (2) 每个时钟周期流出指令数;

(3) 操作槽(功能部件)的使用效率; (4) 如果展开10遍,会出现哪些问题? 解:展开7遍循环

访存指令1 L.D F0,0(R1) 访存指令2 L.D F6,-8(R1) 浮点指令1 浮点指令2 整数/转移指令 L.D F10,-16(R1) L.D F14,-24(R1) L.D F18,-32(R1) L.D F22,-40(R1) ADD.D F4,F0,F2 L.D F26,-48(R1) ADD.D F8,F6,F2 ADD.D F12,F10,F2 ADD.D F16,F14,F2 ADD.D F20,F18,F2 ADD.D F24,F22,F2 S.D F4,0(R1) S.D F8,-8(R1) ADD.D F28,F26,F2

S.D F12,-16(R1) S.D F16,–24(R1) S.D F20,-32(R1) S.D F24,–40(R1) S.D F28,8(R1) DADDIU R1,R1,# -56 BNE R1,Loop 这段程序的运行时间为9个时钟周期,每遍循环平均约1.28个时钟周期。9个时钟周期内流出了23条指令,每个时钟周期2.55条。9个时钟周期共有操作槽9?5=45个,有效槽的比例为51.1%。

4.9 设指令流水线由取指令、分析指令和执行指令3个部件构成,每个部件经过的时间为△t,连续流入12条指令。分别画出标量流水处理机以及ILP均为4的超标量处理机、超长指令字处理机、超流水处理机的时空图,并分别计算它们相对于标量流水处理机的加速比。

解:标量流水处理机的时空图:

执行 分析 取指 14 时间

执行完12条指令需T1=14△t。