计算机系统结构第一二次实验报告范文.docx
- 文档编号:12771837
- 上传时间:2023-04-22
- 格式:DOCX
- 页数:20
- 大小:712.56KB
计算机系统结构第一二次实验报告范文.docx
《计算机系统结构第一二次实验报告范文.docx》由会员分享,可在线阅读,更多相关《计算机系统结构第一二次实验报告范文.docx(20页珍藏版)》请在冰豆网上搜索。
计算机系统结构第一二次实验报告范文
班别:
学号:
姓名:
袁凯琦
1.实验一WINDLX模拟器安装及使用
1.1实验类别:
综合实验
1.2实验目的:
建立实验环境,了解WINDLX模拟器的结构及使用
1.3实验设备环境:
WinDLX要求的硬件平台是IBMPC兼容机,WinDLX是一个Windows
应用程序,运行于Windows3.0以上的操作系统。
1.4实验原理:
WinDLX软件包中带有说明文件,供安装程序时候使用。
1.5要点与难点:
软件包中还有WinDLX教程和联机帮助,可以通过它们进
一步了解模拟器的使用方法和DLX处理器的原理。
大家在进行模拟实验以前应该
仔细阅读这些文档。
1.6实验内容和要求:
阅读模拟器Help文档和相关资料,利用Fact.s及Input.s代码熟悉模拟器的配置、各项工具使用、寄存器设置及指令系统。
1.7实验步骤:
(1)WINDLX模拟器安装
WinDLX是一个基于Windows的模拟器, 能够演示DLX流水线是如何工作的。
WinDLX 包含windlx.exe和windlx.hlp文件。
同时,还需要一些扩展名为.s的汇编代码文件。
按以下步骤在Windows下安装WinDLX:
WinDLX创建目录,例如E:
\WINDLX
解压WinDLX软件包或拷贝所有的WinDLX文件(至少包含 windlx.exe, windlx.hlp)到这个WinDLX 目录。
(2)熟悉模拟器的配置
启动和配置WinDLX:
双击WinDLX图标,将出现一个带有六个图标的主窗口,双击这些图标会弹出子窗口.
(3)利用Fact.s及Input.s代码熟悉各工具的使用
1)导入求阶乘程序fact.s
File-->LoadcodeorData,然后出现以下界面,双击fact.s,input.s(由于fact.s调用了input.s),点击Load键即可导入
2)运行fact.s
按F7,单步运行程序,通过观察各个窗口的信息,理解fact.s的运行情况
Register窗口:
显示的是各个寄存器的名称及内容
PC:
程序计数器;IMAR:
指令内存地址寄存器;IR:
指令寄存器;A,B:
ALU操作数寄存器;BTA:
分支地址寄存器;ALU:
ALU输出寄存器,ALUI(伪)寄存器;FPSR:
用来保存有关浮点数操作结果的信息;DMAR:
数据内存地址寄存器;SDR:
存数据寄存器,SDRI(伪)寄存器;LDR:
去素聚寄存器,LDRI(伪)寄存器;R0~R31:
32位通用寄存器,R0永远为0;F0~F31:
浮点寄存器。
Code窗口:
第一列标识存储器的地址;第二列是机器代码,用16进制表示;第三列是汇编指令。
当我们点击上方的Excute,可以选择单步或多步执行(也可以使用快捷键F7或F8)。
若选择单步执行,每按一次F7,指令执行一次,可以看到,一次执行的为IF->ID->intEX->MEM->WB,没执行一次还有颜色的变化。
颜色是用来标识指令处于哪个流水段的。
Pipeline窗口:
显示DLX处理器的内部结构。
窗口中用图表形式显示了DLX的五段流水线。
ClockCycleDiagram窗口:
该窗口使所有子窗口图标化,然后打开ClockCycleDiagram窗口。
它显示流水线的时空图。
该时空图中显示了每一个时隙内的运行情况。
对准Clockcyclediagram窗口中相应命令所在行,然后双击它,弹出一个新窗口。
窗口中会详细显示每一个流水段处理器内部的执行动作。
例如双击multdf2,f2,f0,则会出现以下窗口
Breakpoints窗口:
为进一步模拟,点击Code 窗口,用箭头键或鼠标向下滚动到地址为0x的那一行(指令是addir4,r0,0xa),点击此行,然后按Ins键,或点击Code / Set Breakpoint / OK,在这一行上设置一个断点。
当运行到断点时将会出现提示:
当按F5时选择自动执行,当碰到陷阱trap时,会出现如下提示
最终执行结果为:
Statistics窗口:
该窗口是对运行程序中的数据进行分析。
主要包括模拟器中硬件配置情况、暂停及原因、条件分支、Load/Store指令、浮点指令和traps。
窗口中给出事件发生的次数和百分比。
程序执行完毕后各方面的信息如下:
2.实验二指令流水线相关性分析
2.1实验类别:
验证实验
2.2实验目的:
通过使用WINDLX模拟器,对程序中的三种相关现象进行观察,并对使用专用通路,增加运算部件等技术对性能的影响进行考察,加深对流水线和RISC处理器的特点的理解。
2.3实验设备环境:
WinDLX模拟器可以装入DLX汇编语言程序,然后单步、设置断点或者连续执行该程序。
CPU的寄存器、流水线、I/O和存储器都可以使用图形的方式表示出来。
模拟器还提供了对流水线操作的统计功能。
该模拟器对理解流水线和RISC处理器的特点很有帮助。
2.4实验原理:
指令流水线中主要有结构相关、数据相关、控制相关。
相关影响流水线性能。
2.5要点与难点:
三种相关及其解决办法
2.6实验内容和要求:
使用WinDLX模拟器,对求阶乘程序Fact.s做分析
2.7实验步骤:
(1)观察程序中出现的数据/控制/结构相关。
指出程序中出现上述现象的指令组合。
1)控制相关
指令组合
jalInputuUnsigned
movi2fpf10,r1
swSaveR2(r0),r2
由上图可以看出,在第4时钟周期:
第一条指令处于MEM段;第二条命令处于intEX段;第三条指令出于aborted状态;第四条命令处于IF段。
原因分析:
jal InputUnsigned是无条件分支指令,但当第三个周期开始的时候,也就是jal这条指令被译码后才知道。
此时,movi2fp已经执行,且将要执行的下一条命令在另外一个地址处,所以这条指令不会执行,在流水线中留下气泡aborted,这个时候就会发生控制相关。
2)数据相关
指令集合
lbur3,0x0(r2)
seqir5,r3,0xa
bnezr5,inputFinish
lbu r3,0×0(r2) 要在WB周期写回r3中的数据;而下一条指令 seqi r5,r3,0×a 要在intEX周期中读取r3中的数据,上述过程发生了WR冲突,即写读相关。
为了避免此类冲突, seq r5,r4,0×a的intEX指令延迟了一个周期进行,与此同时,下一条指令bnezr5,inputFinish本应该进入指令译码/读寄存器周期读取r5的数据,发生了WR冲突,为了避免此类突, bnezr5,inputFinish的ID指令延迟了一个周期进行。
3)结构相关
指令组合
addr1,r1,r3
addr2,r2,0x01
由于addr1,r1,r3与前一条指令fmuEX
(1)发生数据相关在ID指令延缓四个指令周期,导致addr2,r2,0x01无法进入ID流水段,因为译码部分被addr1,r1,r3占用,发生了结构冲突。
(2) 考察增加浮点运算部件对性能的影响。
取N=8
浮点运算部件分别为4和1
结果分析 :
比较各个数据,发现没有变化。
无论怎么增加浮点运算部件,统计结果都一样。
由此可见,浮点运算部件的增减对效率无影响。
原因在于此程序中浮点计算指令没有重叠,所以并行度没有增加,性能没有提高
(3) 考察增加forward部件对性能的影响。
取N=8.
为了对比有无forward部件的性能。
需要在Configuration中不勾选enable forwarding,以及勾选enable configuration来看性能数据的对比。
(不使用Forward部件)(使用Forward部件)
从上面的数据我们可以看出增加forwardi部件后:
●时钟周期由161减少至131个,RAW由原来占总时钟周期的45.96%减少至35.11%;
●RAW个数由原来的74减少至46;
●增加forward部件使得控制相关比例增加了,但是数目并没有增加。
总而言之,使用forward部件后,总的时钟周期减少,数据相关减少,流水线的性能得到一定的改善。
(4) 观察转移指令在转移成功和转移不成功时候的流水线开销。
由上图可得,转移指令一共10条,其中成功转移2条,占20%,不成功转移8条,占80%。
静态指令调度算法是在出现数据相关时,为了消除或者减少流水线空转,编译器确定并分离出程序中存在在相关的指令,然后进行指令调度,并对代码优化。
但是静态指令调度只能解决数据相关,条件转移结果与原理来相比没有变化。
若转移不成功,对流水线的执行无影响,流水线的吞吐率和效率没有降低。
若转移成功,则要废弃预先读入的指令,重新从转移成功处读入指令,每执行一条条件转移指令,一条x段流水线就有x-2个流水线被浪费掉,执行效率降低,性能有一定的损失。
2.8实验总结
在这次实验,WINDLX软件使得流水线的知识变得更加形象生动,易于理解。
通过观察程序中出现的数据相关、控制相关、结构相关,以及他们的指令组合,并考察增加浮点运算部件、forward部件对性能的影响,观察转移指令在转移成功和不成功时的流水线开销。
通过单步执行每一条指令,我对流水线的相关概念有了感性认识。
同时,对课本的讲解也有了更深刻的理解与认识。
试验中,由于fact.s调用了input.s,所以将两个文件load进来的顺序很重要,否则,则无法观察正确的实验现象(只看到input.s的执行情况)。
我认为流水线技术确实可以提高计算机的执行效率,但是它的不足之处也是很多的。
比如发生一些相关的时候就需要延迟,当浮点运算部件,前向部件,条件转移等问题都会对吞吐率有很大的影响。
如果要将流水线的效率做到最大,就需要对代码进行优化处理。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机系统 结构 第一 二次 实验 报告 范文