计算机系统结构 实验三 Tomasulo算法

一、实验目的

(1)加深对指令级并行性及开发的理解。

(2)加深对Tomasulo算法和基于硬件的前瞻执行算法的理解。

(3)掌握Tomasulo算法在指令流出、执行、写结果各阶段的操作以及ROB在流出、执行、写结果和确认4个阶段所进行的操作。

(4)掌握采用了Tomasulo算法的浮点处理部件的结构。

(5)掌握保留站的结构和ROB缓冲器的结构。

(6)给定被执行代码片段,对于具体某个时钟周期,能够写出保留站、指令状态表以及浮点寄存器状态表内容的变化情况。

(7)给定被执行代码片段,对于具体某个时钟周期,能写出保留站、ROB以及浮点寄存器状态表内容的变化情况。

二、实验环境

实验平台采用Tomasulo算法模拟器和再定序缓冲ROB模拟器。

  • 实验内容和步骤
  1. Tomasulo算法

首先要掌握Tomasulo模拟器的使用方法。

(1)假设浮点功能部件的延迟时间为加减法2个时钟周期,乘法2个时钟周期,除法2个时钟周期,Load部件2个时钟周期。

①对于下面的代码段,给出当指令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)对与上面相同的延迟时间和代码段。

①给出在第3个时钟周期时,保留站、load缓冲器以及寄存器状态表中的内容。

 

②步进5个时钟周期,给出这时保留站、load缓冲器以及寄存器状态表中的内容。

③再步进到10个时钟周期,给出这时保留站、load缓冲器以及寄存器状态表中的内容。

(3)假设浮点功能部件的延迟时间为加减法3个时钟周期,乘法8个时钟周期,除法40个时钟周期。自己编写一段程序(要在实验报告中给出),重复上述步骤(2)的工作。

L.D F8,26(R3)

L.D F4,10(R4)

MUL.D F2,F4,F6

SUB.D F8,F6,F2

DIV.D  F12,F2,F8

ADD.D  F8,F10,F4

①第3个时钟周期

 

②步进5个时钟周期 

步进到10个时钟周期

 

  1. 基于硬件的前瞻执行算法

首先要掌握ROB模拟器的使用方法。

(1)假设浮点功能部件的延迟时间为加法2个时钟周期,乘法10个时钟周期,除法40个时钟周期,Load部件2个时钟周期。

①对于下面的代码段,给出当指令MUL.D即将确认时保留站、ROB以及浮点寄存器状态表的内容。

 

②按步进方式执行上述代码,利用模拟器的“小三角按钮”的对比显示功能,观察每一个时钟周期前后保留站、ROB以及浮点寄存器状态表的内容的变化情况。

  1. 对于与上面相同的延迟时间和代码段:

①给出在第5个时钟周期时,保留站的内容。

 

②步进5个时钟周期,ROB的内容有哪些变化?

 

③再步进5个时钟周期,给出这时保留站、ROB以及浮点寄存器状态表的内容。

 

(3)假设浮点功能部件的延迟时间为加减法3个时钟周期,乘法8个时钟周期,除法40个时钟周期。自己编写一段程序(要在实验报告中给出),重复上述步骤(2)的工作。

L.D F8,24(R2)

L.D F2,13(R3)

MUL.D F4,F8,F12

SUB.D F8,F6,F2

DIV.D  F10,F4,F6

ADD.D  F6,F12,F4 

①步进5个时钟周期

 

②步进5个时钟周期

 

③步进5个时钟周期

 

  • 3
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值