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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/48897.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

vue3 -layui项目-左侧导航菜单栏

1.创建目录结构 进入cmd,先cd到项目目录&#xff08;项目vue3-project&#xff09; cd vue3-project mkdir -p src\\views\\home\\components\\menubar 2.创建组件文件 3.编辑menu-item-content.vue <template><template v-if"item.icon"><lay-ic…

SQL injection UNION attacks SQL注入联合查询攻击

通过使用UNION关键字&#xff0c;拼接新的SQL语句从而获得额外的内容&#xff0c;例如 select a,b FROM table1 UNION select c,d FROM table2&#xff0c;可以一次性查询 2行数据&#xff0c;一行是a&#xff0c;b&#xff0c;一行是c&#xff0c;d。 UNION查询必须满足2个条…

医学深度学习与机器学习融合的随想

医学深度学习与机器学习融合的随想 近年来&#xff0c;深度学习&#xff08;图像类&#xff09;和机器学习在医学领域的应用取得了飞速发展&#xff0c;为医学影像分析、疾病诊断和预后预测等领域带来了革命性的变革。深度学习擅长从复杂数据中提取高层次特征&#xff0c;而机…

java面试题,有synchronized锁,threadlocal、数据可以设置默认值、把redis中的json转为对象

有面试题&#xff0c;有synchronized锁&#xff0c;threadlocal 一、面试题小记二、加锁synchronized1. 先看代码2. synchronized 讲解2.1. 同步代码块2.2. 同步方法2.3. 锁的选择和影响2.4. 注意事项2.5 锁的操作&#xff0c;手动释放锁&#xff0c;显式地获取锁&#xff08;属…

java中log4j.properties配置文件浅析

Log4J的配置文件(Configuration File)就是用来设置记录器的级别、存放器和布局的&#xff0c;它可按keyvalue格式的设置或xml格式的设置信息。通过配置&#xff0c;可以创建出Log4J的运行环境。 1、配置文件 Log4J配置文件的基本格式如下&#xff1a; #配置根Logger log4j.roo…

开源XDR-SIEM一体化平台 Wazuh (1)基础架构

简介 Wazuh平台提供了XDR和SIEM功能&#xff0c;保护云、容器和服务器工作负载。这些功能包括日志数据分析、入侵和恶意软件检测、文件完整性监控、配置评估、漏洞检测以及对法规遵从性的支持。详细信息可以参考Wazuh - Open Source XDR. Open Source SIEM.官方网站 Wazuh解决…

【策略模式在项目中的实际应用】

业务场景 最最近项目中有这样的一个业务场景&#xff1a; 用户下单->管理员审核->配送员接单->配送中->送达–>签收->完成 整个业务以这种流程的形式存在&#xff0c;每个流程状态的业务不一样&#xff0c;考虑到多种状态如果直接写一个接口肯定会嵌套太多…

第3节课:超链接与图片——HTML中的导航与视觉元素

目录 超链接 <a>&#xff1a;网页间的桥梁创建超链接超链接的属性 图片 <img>&#xff1a;为网页增添视觉元素使用图片图片的属性 锚点和页面导航锚点的使用 实践&#xff1a;创建一个包含超链接和图片的网页 结语 在网页设计中&#xff0c;超链接和图片是两个至关…

深入理解JS中的发布订阅模式和观察者模式

发布/订阅模式(Publish/Subscribe)和观察者模式(Observer Pattern)在概念上非常相似,都是用于实现对象之间的松耦合通信。尽管它们在实现细节和使用场景上有所不同,但核心思想是相通的。 观察者模式 直接通信:在观察者模式中,观察者(Observer)直接订阅主题(Subject…

数据库之数据表基本操作

目录 一、创建数据表 1.创建表的语法形式 2.使用SQL语句设置约束条件 1.设置主键约束 2.设置自增约束 3.设置非空约束 4.设置唯一性约束 5.设置无符号约束 6.设置默认约束 7.设置外键约束 8.设置表的存储引擎 二、查看表结构 1.查看表基本结构 2.查看建表语句 三…

为什么要学习网安技术?

学习网络安全&#xff08;网安&#xff09;技术在当今社会变得尤为重要&#xff0c;这主要源于以下几个方面的原因&#xff1a; 保护个人隐私&#xff1a;随着互联网的普及&#xff0c;个人信息如姓名、地址、电话号码、甚至银行账户信息等都在网络上留下了痕迹。学习网安技术可…

(十)Spring教程——Spring配置概述

目录 前言 1.Spring容器高层视图 2.基于XML的配置 前言 在使用Spring所提供的各项丰富而神奇的功能之前&#xff0c;必须在Spring IoC容器中装配好Bean&#xff0c;并建立好Bean和Bean之间的关联关系。Spring的配置文件已经很精简了&#xff0c;但是广大的开发者希望它做得更…

AV1技术学习:Transform Coding

对预测残差进行变换编码&#xff0c;去除潜在的空间相关性。VP9 采用统一的变换块大小设计&#xff0c;编码块中的所有的块共享相同的变换大小。VP9 支持 4 4、8 8、16 16、32 32 四种正方形变换大小。根据预测模式选择由一维离散余弦变换 (DCT) 和非对称离散正弦变换 (ADS…

免费分享一套微信小程序图书馆座位预约管理系统(SpringBoot后端+Vue管理端)【论文+源码+SQL脚本】,帅呆了~~

大家好&#xff0c;我是java1234_小锋老师&#xff0c;看到一个不错的微信小程序图书馆座位预约管理系统(SpringBoot后端Vue管理端)&#xff0c;分享下哈。 项目介绍 随着移动互联网技术的飞速发展和智能设备的普及&#xff0c;图书馆服务模式正在经历深刻的变革。本论文旨在…

从PyTorch官方的一篇教程说开去(3.3 - 贪心法)

您的进步和反馈是我最大的动力&#xff0c;小伙伴来个三连呗&#xff01;共勉。 贪心法&#xff0c;可能是大家在处理陌生问题时候&#xff0c;最容易想到的办法了吧&#xff1f; 还记得小时候&#xff0c;国足请了位洋教练发表了一句到现在还被当成段子的话&#xff1a;“如…

第2章-数学建模

目录 一、数据类型 【函数】&#xff1a; &#xff08;1&#xff09;find()、rfind()、index()、rindex()、count() &#xff08;2&#xff09;split()、rsplit() &#xff08;3&#xff09;join() &#xff08;4&#xff09;strip()、rstrip()、lstrip() &#xff08;5&…

【Python】sqlite加密库pysqlcipher3编译安装步骤

目录 说明准备工作openssl编译sqlite tclsetup.py修改quote_argumentopenssl路径 安装加密示例代码测试附录参考 说明 pysqlcipher3是针对Python 3使用的pysqlcipher的一个分支&#xff0c; 尽管仍然维护对Python 2的支持。它仍然处于测试阶段&#xff0c; 尽管这个库包含的最…

请你谈谈:spring bean的生命周期 - 阶段5:BeanPostProcessor前置处理-自定义初始化逻辑-BeanPostProcess后置处理

BeanPostProcessor的postProcessBeforeInitialization方法是在bean的依赖注入&#xff08;即属性填充&#xff09;完成后&#xff0c;但在bean的初始化回调&#xff08;如PostConstruct注解的方法或InitializingBean接口的afterPropertiesSet方法&#xff09;之前被调用的。 具…

vue3角色路由封装

在市面上很多网站都是左侧菜单栏&#xff0b;左侧内容页的样式&#xff0c;同时具有很多个角色&#xff0c;只是左边菜单栏显示的内容不一致罢了&#xff0c;有些人会单独写俩个页面来显示不同的角色&#xff0c;但是这样页面复用性不高&#xff0c;这个时候我们就需要动态路由…

easyexcel的读写操作

easyexcel是基于java的读写excel的开源项目 --读写也可理解为上传和下载 写操作 一、引入依赖 <dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifactId><version>3.0.5</version> </dependency> 二、封…