计算机体系结构|| 再定序缓冲(ROB)原理(6)

实验6 再定序缓冲(ROB)原理

6.1实验目的

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

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

(3)掌握 ROB 在流出、执行、写结果确认4 个阶段所进行的操作

(4)掌握 ROB缓冲器的结构。

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

6.2实验平台

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

6.3实验内容及实验截图

首先要掌握 ROB模拟器的使用方法(见 6.4节)

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

①对于下面的代码段,给出当指令MUL.D 即将确认时保站、ROB 以及浮点寄

器状态表的内容。

L.D   F6,24(R2)

L.D   F2,12(R3)

MUL.D  FO,F2,F4

SUB.D   F8,F6,F2

DIV.D    F10,F0,F6

ADD.D   F6,F8,F2

②按步进方式执行上述代码,利用模拟器的“小三角按钮”的对比显示功能,观察每

一个时钟周期前后保留站、ROB 以及浮点寄存器状态表的内容的变化情况。

(2)对于与上面相同的延迟时间和代码段:

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

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

其保留站中红色部分为变化的内容

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

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

第 1个时钟周期:

L.D F6, 24(R2):将从内存地址 R2+24 处加载双精度浮点数到 F6。

L.D F2, 12(R3):将从内存地址 R3+12 处加载双精度浮点数到 F2。

第 2个时钟周期:

MUL.D F0, F2, F4:乘法操作 F2 * F4,将结果存入 F0。

第 3个时钟周期:

SUB.D F8, F6, F2:减法操作 F6 - F2,将结果存入 F8。

第 4个时钟周期:

DIV.D F10, F0, F6:除法操作 F0 / F6,将结果存入 F10。

第 5个时钟周期:

ADD.D F6, F8, F2:加法操作 F8 + F2,将结果存入 F6。

程序如下:

L.D  F6, 24(R2) ; 第 1 个时钟周期,F6 被加载到保留站

L.D  F2, 12(R3) ; 第 1 个时钟周期,F2 被加载到保留站

NOP           ; 第 2 个时钟周期,等待乘法完成

MUL.D FO,F2,F4 ; 第 3 个时钟周期,开始执行乘法

NOP           ; 第 4 个时钟周期,等待减法和除法完成

SUB.D F8,F6,F2 ; 第 5 个时钟周期,开始执行减法

DIV.D F10,F0,F6; 第 5 个时钟周期,开始执行除法

ADD.D F6,F8,F2 ; 第 6 个时钟周期,开始执行加法

NOP           ; 第 7 个时钟周期,等待加法完成

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值