实验5 Tomasulo算法
5.1实验目的
(1)加深对指令集并行性及开发的理解。
(2)加深对Tomasulo算法的理解。.
(3)掌握Tomulo算法在指令流出、执行、写结果各阶段对浮点操作指令以及load和store指令进行什么处理。
(4)掌握采用了Tomasulo算法的浮点处理部件的结构。
(5)掌握保留站的结构。
(6)给定被执行代码片段,对于具体某个时钟周期,能够写出保留站、指令状态表以及浮点寄存器状态表内容的变化情况。
5.2实验平台
实验平台采用Tomasulo算法模拟器
5.3实验内容和实验截图
(1)学会使用Tomasulo算法。假设浮点功能部件的延迟时间为加减法2个周期,乘法10个时钟周期,除法40个时钟周期,Load部件2个时钟周期。
1)对于下面的代码段,给出当指令MUL.D写结果时,保留站、load缓冲器以及寄存器状态表中的内容。
L.D F6, 24(R2)
L.D F2, 12(R3)
MUL.D F0, F2,F4
SUB.D F8,F6,F2
DIV.D F10,F0,F6
ADD.D F6,F8,F2
2)按步进方式执行上述代码,利用模拟器的“小三角按钮”的对比显示功能,观察每一个时钟周期前后各信息表中内容的变化情况。
(2)对于与上面相同的延迟时间和代码段。
1)给出在第3个时钟周期时,保留站、load缓冲器以及寄存器状态表中的内容。
2)步进5个时钟周期,给出这时保留站、load缓冲器以及寄存器状态表中的内容。
3)再步进10个时钟周期,给出这时保留站、load缓冲器以及寄存器状态表中的内容。
(3)假设浮点功能部件的延迟时间为加减法3个时钟周期,乘法8个时钟周期,除法40个时钟周期。对于下面的代码重复实验一中步骤(2)的内容。编写代码如下:
L.D F6, 28(R2)
ADD.D F2,F4,F8
MUL.D F0, F2,F4
SUB.D F8,F6,F2
DIV.D F12,F0,F6
ADD.D F10,F8,F2
浮点功能部件的延迟时间为加减法3个周期,乘法8个时钟周期,除法40个时钟周期,load部件2个时钟周期。根据实验结果可知该程序需要56个周期执行完成。
1)给出在第3个时钟周期时,保留站、load缓冲器以及寄存器状态表中的内容。
2)步进5个时钟周期,给出这时保留站、load缓冲器以及寄存器状态表中的内容。
3)再步进10个时钟周期,给出这时保留站、load缓冲器以及寄存器状态表中的内容。