北交《计算题体系结构》实验四——Tomasulo算法实验
一、实验目的
- 了解Tomasulo算法的模拟软件
- 掌握Tomasulo算法的运行过程及其原理
二、实验内容
- 了解Tomasulo算法的模拟软件
运行Tomasulo算法的模拟软件,了解其使用说明。 - 掌握Tomasulo算法的运行过程及其原理
可任意设置一系列指令(当然,按软件自动给出的6条指令也可以),然后,按步进方式运行。每运行一步,均对保留站的状态变化进行解释(如果状态无变化,即只有时钟改变时,可不予解释),直至运行结束。解释的内容包括:
- 指明哪条指令从一种状态变到另一种状态。状态包括: 流出(我们称为发射)、执行、写结果。
- 对于指令的状态变化,保留站(当然也可以包括寄存器、load部件)发生了哪些变化。
- 最后,分别举例解释一下为什么Tomasulo算法消除了这些指令中的WAR和WAW冒险。
三、 实验过程
- 了解Tomasulo算法的模拟软件
运行Tomasulo算法的模拟软件,了解其使用说明。
(1) 设置指令和参数
本模拟器最多可以模拟10条指令。可以在指令区选择和设置所要的指令。指令区如图所示
可以选择的指令有以下5种:
i. L.D指令,从主存中读取一个双精度浮点数;
ii. ADD.D指令:双精度浮点加法指令
iii. SUB.D指令:双精度浮点减法指令
iv. MULT.D指令:双精度浮点乘法指令
v. DIV.D:双精度浮点除法指令
指令的各参数可以从各自的下拉框中选择
(2) 在窗口的右上区域设置各部件的执行时间(时钟周期数),如图所示
其中“复位“的作用是使所有设置恢复为默认值。
(3) 执行
点击执行按钮,就进入执行状态。可以用中间的按钮来控制指令的执行,包括“步进”、“退一步”等。按退出按钮即可回到设置指令和参数页面。向后执行后,状态表中有色的字段表示其内容发生了变化。
(4) 对比状态表
在每一个状态表的右上角都有一个小三角,用鼠标点击后,可以看到上一个时钟周期的内容。
(5) 指令状态表
如图所示,它列出了各指令什么时候执行到了哪一步。其中的数字表示时钟周期,“~”表示时钟周期期间。
- 掌握Tomasulo算法的运行过程及其原理
(1) 算法的运行过程及其原理
Tomasulo算法,采用的是寄存器重命名的方法来消除寄存器数据流之间的假相关,即用虚拟寄存器集代替真实的FPR,虚拟寄存器集在tomasulo算法中由每一功能单元所带的保留站、取数缓冲区和存数缓冲区组成。
第一步:发射
从FP OP Queue中取出指令。如果保留站空闲,控制机发射指令、发射操作数。
第二步:执行
如果两个操作数都已就绪,就执行;如果没有就绪,就观测公共数据总线等待所需结果
第三步:写结果
通过公共数据总线将结果写入到所有等待的部件;标记保留站可用
(2) 设置一系列指令,按步进方式运行。运行一步,均对保留站的状态变化进行解释(如果状态无变化,即只有时钟改变时,可不予解释),直至运行结束。
指令为:
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
各部件的执行时间维持默认值。
i. 周期1:取出第一条指令L.D F6, 24(R2),地址偏移量24写入LOAD1,LOAD1名存入寄F6。
ii. 周期2:取出第二条指令L.D F2, 12(R3),地址偏移量12写入LOAD2,LOAD2名存入寄器F2,同时第一条指令开始执行,LOAD1上写入绝对地址。
iii. 周期3:取出第三条指令MUL.D F0, F2,F4,第一条指令完成,第二条指令开始执行,LOAD2上写入绝对地址。保留站中存入待运算的操作数和操作。寄存器F0上QI写入保留站中待运算命令的名称。
iv. 周期4:取出第四条指令SUB.D F8,F6,F2,第二条指令执行完成,第一条指令写入结果M1到寄存器F6,保留站中存入第四条指令的待运算操作数和操作。LOAD1清空。
v. 周期5:取出第五条指令DIV.D F10,F0,F6,第二条指令写结果M2到寄存器F2,LOAD2 清空。保留站中存入第五条指令的待运算操作数和操作。
vi. 周期6:取出第六条指令ADD.D F6,F8,F2,第三条和第四条指令开始执行,相关的操作数和操作符被存入保留站
vii. 周期7:第四条指令执行完成,保留站中的第三条指令继续执行。
viii. 周期8:第四条指令写结果M3到寄存器F8,保留站中存放第四条指令的位置清空,第三条指令继续执行。
ix. 周期9:第六条指令开始执行。第三条指令继续执行。 周期10:第六条指令执行完成,第三条指令继续执行。
x. 周期11:第六条指令写结果M4到寄存器F6中,清空保留站中原来存放第六条指令的位置。第三条指令继续执行。
xi. 周期12~15:第三条指令继续执行,直到完成。
xii. 周期16:第三条指令写结果M5到寄存器F0,保留站中原来存放第三条指令的位置清空。
xiii. 周期17~56:第五条指令开始执行,直到结束
xiv. 周期57:第五条指令执行结束后写结果M6到F10,保留站中原来存放第五条指令的位置清空。执行完毕。
3. 为什么Tomasulo算法消除了WAR和WAW冒险。
Tomasulo的FU称做保留站,保留站可以完成寄存器重命名,避免WAR、WAW。它采用寄存器重命名的方法来消除寄存器数据流之间的假相关,即用虚拟寄存器集代替真实的FPR,虚拟寄存器集在tomasulo算法中由每一功能单元所带的保留站、取数缓冲区和存数缓冲区组成。保留站可以多于寄存器,实现更多编译器无法完成的优化。
实验所用软件:
Tomasulo算法模拟器(张晨曦教授)
北交《计算题体系结构》实验四——Tomasulo算法实验相关推荐
- 计算机体系结构在线读,18春北交《计算机体系结构》在线作业二-3
18春北交<计算机体系结构>在线作业二-3 (7页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 4.90 积分 18 春北交<计算机体系 ...
- java实验四结果,java实验四异常处理.doc
java实验四异常处理.doc 实验四异常处理一.实验目的1.掌握异常的概念和Java异常处理机制.2.掌握异常的定义.抛出和捕捉处理.二.实验内容与要求1.仔细读下面的JAVA语言源程序,自己给出程 ...
- 计算机组成原理学习-实验四 模型机实验(简易版)(详细、人话)
如果你对其他计算机组成原理知识感兴趣,请考虑阅读我的专栏: 计算机组成原理[专栏] 须知 本文仅作学习笔记使用,仅在CSDN网站发布,如果在其他网站发现,均为侵权行为,请举报.作者:小王在努力. 实验 ...
- linux 程序实验总结,Linux实验报告(实验四) shell编程实验
实验四 shell编程实验(二) 班级:姓名:学号:上机时间:年月日 任课教师:实验教师:实验成绩: 一.实验目的 综合Linux常用命令和vi编辑器的使用,熟练掌握shell脚本编程. 二.实验注意 ...
- 多思计组实验实验四、数据通路实验
实验四.数据通路实验 一.实验目的: 1.理解总线的概念和作用. 2.连接运算器与存储器,理解计算机的数据通路. 3.理解微命令与微操作的概念. 二.预习要求: 1.读懂实验电路图. 2.在实验之前填 ...
- 微控制器实验计算机组成原理,组成原理实验四 微控制器实验
实验四 微控制器实验 实验四微控制器实验 实验四 一.实验目的 1.掌握时序产生器的组成原理. 微控制器实验 2.掌握微程序控制器的组成原理. 3.掌握微程序的编制.写入,观察微程序的运行.二.实验设 ...
- 计算机网络实验四 VLAN配置实验
实验四 VLAN配置实验 一.实验目的: 了解华为交换机的基本功能. 掌握虚拟局域网VLAN的相关知识,配置交换机VLAN功能. 掌握VLAN的创建.Access和Trunk接口的配置方法. 掌握用于 ...
- 《数据结构与算法》实验:排序算法实验比较——选择排序 堆排序
<数据结构与算法>实验和课程Github资源 <数据结构与算法>实验:线性结构及其应用--算术表达式求值 <数据结构与算法>实验:树型结构的建立与遍历 <数据 ...
- 操作系统实验四-LRU算法的模拟
操作系统实验四:页式虚拟存储管理的模拟 一.实验目的: 掌握存储管理的基本原理.地址变换过程:用软件实现地址转换过程:用一种常用的页面置换算法来处理缺页中断并研究其命中率. 二.实验题目: 1.模拟请 ...
- mysql安全实验测验答案_实验四∶数据库安全性实验报告.doc
资源描述 1 / 2实验四:数据库安全性班级:软件工程 0918 姓名:许啸 学号:0911610819[实验目的] :验证数据库安全性[实验要求] :1)新建一个登陆名为 tom,密码为 tom00 ...
最新文章
- Python多模块文件共享变量
- Springboot整合freemarker和相应的语法
- 成功解决pywintypes.com_error: (-2147352573, ‘找不到成员。‘, None, None)
- 利用Quartz2D-contex绘制三角形
- mysql重连服务器失败_java – MySQL连接器错误“服务器时区值中...
- 麻雀优化算法_多种智能优化算法应用案例分享-附代码
- 理解 JMeter 聚合报告(Aggregate Report)
- 190313每日一句
- CAT1 4G+以太网开发板腾讯云手机微信小程序显示温度和下发控制
- 火山视窗选择夹内使用右键菜单演示
- python 图表控件_10款好用的.NET图表控件推荐
- 机器学习十大算法实现代码汇总(python)----线性回归、逻辑回归、决策树、支持向量机、朴素贝叶斯、K邻近算法、K-均值算法、随机森林、降低维度算法、梯度增强算法
- 编码:隐匿在计算机软硬件背后的语言
- error C2504 base class undefined
- 智能教育,是未来教育的趋势吗?
- 计算机怎么升级64位操作系统,32位系统怎么升级64位系统
- MySQL表如何导入图片_mysql中怎样插入图片
- 如何修改Ubuntu的分辨率
- 大数据技术怎么学习,需要具备什么基础?简单说一下
- Race Condition(资源竞争) 解决方案总结