计算机体系结构|| 再定序缓冲(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 个时钟周期,等待加法完成

相关推荐

  1. 计算机体系分类结构分类

    2024-07-23 10:24:03       43 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-23 10:24:03       101 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-23 10:24:03       109 阅读
  3. 在Django里面运行非项目文件

    2024-07-23 10:24:03       87 阅读
  4. Python语言-面向对象

    2024-07-23 10:24:03       96 阅读

热门阅读

  1. Hisilicon适配按键

    2024-07-23 10:24:03       39 阅读
  2. qml实现双指左右滑动,上下滑动

    2024-07-23 10:24:03       38 阅读
  3. LeetCode 算法:分割回文串 c++

    2024-07-23 10:24:03       41 阅读
  4. 【力扣每日一题】

    2024-07-23 10:24:03       39 阅读
  5. JVM类加载机制详解

    2024-07-23 10:24:03       33 阅读
  6. Python:字典(Dictionary)基础应用

    2024-07-23 10:24:03       28 阅读
  7. 数据结构C++——矩阵【详】

    2024-07-23 10:24:03       27 阅读
  8. 问百度文心一言 下三角矩阵

    2024-07-23 10:24:03       28 阅读
  9. cookie和session的区别

    2024-07-23 10:24:03       28 阅读
  10. 图像预处理(基础功能)

    2024-07-23 10:24:03       29 阅读
  11. 014集——RSA非对称加密——vba源代码

    2024-07-23 10:24:03       32 阅读
  12. 如何面对压力和动力

    2024-07-23 10:24:03       34 阅读