CA-Chapter4Homework

Molaters Lv5

[[CA-NotesView]]

  1. 根据需要展开下面的循环并进行指令调度,直到没有任何延迟。指令的延迟如表4.2所示。
1
2
3
4
5
6
7
8
LOOP:LD    F0,0(R1)
MULTD F0,F0,F2
LD F4,0(R2)
ADDD F0,F0,F4
SD 0(R2),F0
SUBI R1,R1,8
SUBI R2,R2,8
BNEQZ R1,LOOP
  1. 假设有一个长流水线,仅仅对条件转移指令使用分支指令缓冲。假设分支预测错误的开销为4个周期,缓冲不命中的开销为3个周期。假设:命中率为90%,预测精度为90%,分支频率为15%,没有分支的基本CPI为1.

    1. 求程序执行的CPI
    2. 相对于采用固定的两个周期延迟的分支处理,哪种方法程序执行的速度更快?
  2. 下面一段 MIPS的汇编程序称为 SAXPY,是计算高斯消去法中的关键一步,用于完成下面公式的计算:
    $Y = aX+ Y$
    其浮点指令延迟如表 4.2 所示,整数指令均为1个时钟周期完成,浮点和整数部件均为流水。整数操作之间以及与其他所有浮点操作之间的延迟为0,转移指令的延迟为0

1
2
3
4
5
6
7
8
9
foo:ld     f2,0(r1) ; load X[i]
multd f4,f2,f0 ; multiply a*X[i]
ld f6,0(r2) ; load Y[i]
addd f6,f4,f6 ; add a*X[i] + Y[i]
sd 0[r2],f6 ; store Y[i]
addi r1,r1,#8 ; increment X index
addi r2,r2,#8 ; increment Y index
sgti r3,r1,done ; test if done
beqz r3,foo ; loop if not done

(1)对于标准的MIPS单流水线,SAXPY 循环计算一个Y值需要多少时间?其中有多少空转周期?

(2)对于标准的 MIPS 单流水线,将 SAXPY 循环顺序展开4 次,不进行任何指令调度,计算一个Y值平均需要多少时间?加速比是多少?其加速是如何获得的?

(3)对于标准的 MIPS 单流水线,将SAXPY 循环顺序展开4 次,优化和调度指令。使SAXPY 循环处理时间达到最优,计算一个 Y值平均需要多少时间?加速比是多少?
(4)对于采用如图4.15 所示的前瞻执行机制的MIPS处理器,处理器中只有一个整数部件。当循环第二次执行到

1
beqzr3,foo

时,写出前面所有指令的状态,包括指令使用的保留站、指令起始节拍、执行节拍和写结果节拍,并写出处理器当前的状态。

(5)对于两路超标量的 MIPS 流水线,设有两个指流出部件,可以流出任意组合的指令,系统中的功能部件数量不受限制。将 SAXPY 循环展开 4 次,优化和调度指令使SAXPY 循环处理时间达到最优。计算一个Y值平均需要多少时间?加速比是多少?

(6)对于图4.19 结构的超长指令字 MIPS处理器,将SAXPY 循环展开4 次,优化和调度指令,使SAXPY 循环处理时间达到最优。计算一个Y值平均需要多少时间?加速比是多少?

  • 标题: CA-Chapter4Homework
  • 作者: Molaters
  • 创建于 : 2023-11-24 11:30:48
  • 更新于 : 2023-10-30 10:39:43
  • 链接: https://molaters.github.io/2023/11/24/计算机体系结构/CA-Chapter4Homework/
  • 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
 评论
此页目录
CA-Chapter4Homework