《计算机体系结构》第三次实验 WinDLX流水线实验
更新时间:2023-10-18 15:05:01 阅读量: 综合文库 文档下载
- 计算机体系结构是谁提出的推荐度:
- 相关推荐
实验三 WinDLX流水线实验
王宇航 安全0901班 09283020
实验三 WinDLX流水线实验
1 实验目的:
通过本实验,加深对结构相关、数据相关和指令调度的理解,了解结构相关对CPU性能的影响,掌握如何使用定向技术来减少数据相关带来的暂停,了解指令调度技术对CPU性能改进的好处。
2 实验内容:
用WinDLX模拟器进行结构相关的分析
1、生成structure.s程序。用WinDLX模拟器运行该程序。
2、通过模拟,找出存在结构相关的指令对,以及导致结构相关的部件。
3、记录由结构相关引起的暂停时钟周期数,计算暂停时钟周期数占总执行周期数的百分比。
用WinDLX模拟器分析数据相关
1、生成data.s程序。
2、通过Configuration菜单中的选项,设定在不采用定向技术的情况下,用WinDLX模拟器运行程序data_d.s。记录数据相关引起的暂停时钟周期数以及程序执行的总时钟周期数,计算暂停时钟周期数占总执行周期数的百分比。
3、在采用定向技术的情况下,用WinDLX模拟器再次运行程序data_d.s。记录数据相关引起的暂停时钟周期数以及程序执行的总时钟周期数,计算暂停时钟周期数占总执行周期数的百分比。
用WinDLX模拟器分析指令调度
1、生成sch-before.s及sch-after.s程序。
2、通过Configuration菜单中的选项,将除法单元数设置为3,将加法﹑乘法﹑除法的延迟设置为3个时钟周期。
3、用WinDLX模拟器运行调度前的程序sch-before.s 。记录程序执行过程中各种相关发生的次数以及程序执行的总时钟周期数。
4、用WinDLX模拟器运行调度后的程序sch-after.s ,记录程序执行过程中各种相关发生的次数以及程序执行的总时钟周期数。
1
综合实验(习题3.4)
在WinDLX上运行如下代码序列: LOOP: LW
ADDI SW ADDI SUB
R1,0(R2) R1,R1,#1 0(R2),R1 R2,R2,#4 R4,R3,R2
BNEZ R4,LOOP
其中:R3的初值是R2+396。假设:在整个代码序列的运行过程中,所有的存储器访问都是命中的,并且在一个时钟周期中对同一个寄存器的读操作和写操作可以通过寄存器文件“定向”。 1、在没有任何其他定向(或旁路)硬件的支持下,假设采用排空流水线的策略处理分支指令,且所有的存储器访问都是命中Cache,那么执行上述代码需要多少个时钟周期?
2、假设该流水线有正常的定向路径,且采用预测分支失败的策略处理分支指令,所有的存储器访问都命中Cache,那么执行上述代码需要多少个时钟周期? 3、假设该流水线有正常的定向路径和一个单周期延迟分支,请对该循环中的指令进行调度,但是不能增加指令的条数。计算执行上述代码所需要的时钟周期数。
3 实验过程:
用WinDLX模拟器进行结构相关的分析 实验过程:
用WinDLX打开之前编写好的structure.s程序,单步执行,查看Clock Cycle Diagram窗口中的变化:
可以看出指令“ADDI R2, R2, #8 ”和指令“LD F0, 0(R2)”发生结构冲突。
2
可以看出“ADDI R2, R2, #8”、“ADDI R3, R3, #8” 和“SUBI 条指令和“ADDD F4, F0, F2”存在结构相关。
导致结构相关的部件是存储数据和指令的存储器部件。
R5, R5, #1”这三
通过单步执行可以在code窗口中观察到程序的LOOP段共循环了10次,而且上述的因结构冲突引起暂停的指令都是在LOOP循环中。所以程序执行完毕后,因结构冲突引起的暂停周期数为2×10=20,由图3可知,程序总共执行了117个时钟周期。
所以暂停时钟数占总执行周期的百分比为:20/117 = 17.09 %。
结构相关对CPU性能的影响及解决结构相关的方法:
上述四对指令在流水线中重叠执行时产生了对存储器访问的资源冲突,即结构相关问
题。上述WinDLX的执行过程采用了流水化功能单元的解决办法来解决结构相关,CPU产生了暂停周期,使流水线的性能下降。且暂停周期占总执行周期的百分比还比较大,是一个不容忽视的问题。
解决结构相关通常需要采用流水线功能单元的方法或资源重复的方法。既然流水线功能单元的方法引入的暂停影响了流水线的性能,可以考虑采用资源重复的方法,即在流水线机器中设置相互独立的指令存储器和数据存储器,也可将Cache分割成指令Cache和数据Cache,这样就能够很好的消除结构相关。但是这样做会带来很大的硬件开销,对流水线机器而言,如果要在每个时钟周期内,能够支持取指令操作和对数据的存储访问操作同时进行,而又不发生结构相关,那么存储总线的带宽必须要加倍。所以在解决该问题时要在性能和开销两方面进行权衡。
用WinDLX模拟器分析数据相关 实验过程:
用WinDLX打开之前写好的data_d.s程序,配置Configuration菜单中的选项,设定不采用定向技术。记录数据相关引起的暂停时钟周期数以及程序执行的总时钟周期数,结果如下:
3
可以看出,在不采用定向技术的情况下,data_d.s程序总过执行了202个时钟周期,其中由数据相关引起的暂停周期为104个,占总执行周期的51.48%。
配置Configuration菜单中的选项,设定采用定向技术。记录数据相关引起的暂停时钟周期数以及程序执行的总时钟周期数,结果如下:
可以看出,采用定向技术之后,data_d.s程序总过执行了128个时钟周期,其中由数据相关引起的暂停周期为30个,占总执行周期的23.44%。
总结:
由上述记录可知,通过定向技术,减少了数据相关所引起的暂停周期的数量,缩短了程序的执行周期,整个性能是原来的1.58倍。
4
用WinDLX模拟器分析指令调度 实验过程:
通过Configuration菜单中的选项,将除法单元数设置为3,将加法﹑乘法﹑除法的延迟
设置为3个时钟周期。用WinDLX模拟器运行调度前的程序sch-before.s 。记录程序执行过程中各种相关发生的次数以及程序执行的总时钟周期数。结果如下:
可以看出,sch-before.s程序执行的总时钟周期数为31,总暂停周期数为16,其中写后读相关(RAW)暂停周期为9个,Trap 暂停周期为7个。
用WinDLX模拟器运行调度前的程序sch-after.s 。记录程序执行过程中各种相关发生的次数以及程序执行的总时钟周期数。结果如下:
5
正在阅读:
《计算机体系结构》第三次实验 WinDLX流水线实验10-18
看《镜鉴》心得体会3篇(完整版)07-31
估算教学设计【精选5篇】03-26
漂亮的淘宝店铺全屏背景大图制作详细图解06-02
要努力不要放弃作文600字06-21
又是一年花开时作文500字06-28
歌颂煤矿03-08
财会论文12-10
电能计量分析毕业设计论文05-14
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 实验
- 体系结构
- 流水线
- 计算机
- WinDLX
- 七年级数学学教案8.2两条直线平行的条件(2)
- 英语单词速记法
- 艰难的历程 辉煌的成就
- 5、国土资源考试题库
- 合成氨压缩题库
- 江苏省2019届高三数学一轮复习典型题专题训练:三角函数
- 2019年华南理工网络学习指南随堂练习20190408
- 1工厂供电题库填空题
- 工作总结之钻井监督实习总结
- 概率论与数理统计(专升本)阶段性作业1
- 6-1平面连杆机构练习题(二)
- 我的人生感悟(内心独白心血推荐!自创!!)
- 第六课 红色的画
- 数值分析课程第五版课后习题答案(李庆扬等)1
- 00536古代汉语(重点)手动整理
- 人教版五年级上册数学期中试卷12-精
- 电气运行试题(300MW机组)
- 安全技术审批制度1
- 三年级下册数学教案-第七单元认识面积单位冀教版(2014秋)
- 倒母线及旁路代主变操作要点解析 - 图文