- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
北京邮电大学
实验报告
课程名称 计算机系统结构
计算机学院 座机电话号码11班
薛玥 座机电话号码32
目录
实验一 WINDLX模拟器安装及使用 3
·实验准备 3
·实验环境 4
·实验步骤 5
·实验内容及要求 5
·实验过程 5
·实验总结 11
实验二 指令流水线相关性分析 12
·实验目的 12
·实验环境 12
·实验步骤 12
·实验过程 12
·实验总结 19
实验三 DLX处理器程序设计 20
·实验目的 20
·实验环境 20
·实验步骤 20
·实验过程 20
A. 向量加法代码及性能分析 20
B.双精度浮点加法求和代码及结果分析 26
·实验总结 31
实验四 代码优化 32
·实验目的 32
·实验环境 32
·实验原理 32
·实验步骤 32
·实验过程 32
·实验总结+实习体会 37
实验五 循环展开 38
·实验目的 38
·实验环境 38
·实验原理 38
·实验步骤 38
·实验过程 38
矩阵乘程序代码清单及注释说明 38
相关性分析结果 43
增加浮点运算部件对性能的影响 43
增加forward部件对性能的影响 43
转移指令在转移成功和转移不成功时候的流水线开销 43
·实验总结+实习体会+课程建议 43
实验一 WINDLX模拟器安装及使用
·实验准备
1.了解DLX的基本结构和原理
DLX是一种典型的Load/Store型指令Load/Store指令…R31。每个通用寄存器长度为32位。另外,DLX中有32个浮点寄存器(FPRs),分别将其命名为F0,F1…F31。
3.了解DLX数据类型
DLX提供了多种长度的整型数据和浮点数据。对整型数据而言,有8位,16位,32位多种长度;对浮点而言,有32位单精度浮点数和64位双精度浮点数。浮点数据表示采用的是IEEE754标准。DLX操作都是对32位整型数据及32或64位浮点数据进行的。
4.了解DLX的寻址方式和数据传送 DLX提供了寄存器寻址,立即寻址,偏移寻址和寄存器间接寻址四种寻址方式。寄存器寻址字段的大小为5位,用来标识32个通用寄存器或浮点寄存器。
5.了解DLX的指令格式
因为DLX只有四种寻址方式,所以将其寻址方式编码在操作码中。为了简化指令译码,并充分发挥流水线的效率,所有DLX指令的字长均是32位,其中用6位表示操作码。DLX中各种类型指令的格式如下图所示:
6.了解DLX中的操作 DLX指令中的操作可以分为四种类型,即:Load和Store操作、ALU操作、分支和跳转操作、浮点操作Load和Store操作 可以对DLX的所有通用寄存器和浮点寄存器进行Load(载入)和Store(储存)操作,但是通用寄存器R0的Load操作没有任何效果。 2 ALU操作 在DLX中,所有的ALU指令都是寄存器-寄存器型指令,其运算包含了简单的算术和逻辑运算,DLX还允许所有这些指令对立即值进行操作,立即值以16位符号扩展形式出现。在DLX指令集中,还有一些寄存器比较指令( ,≠, , ,≤,≥),如果比较结果为真,这些指令就在目标寄存器中填入1(表示真),否则填入0(表示假)。因为这些比较操作指令要对目标寄存器进行“设置”,所以也称它们为设置相等、设置不等、设置小于等指令。 3 分支和跳转操作 在DLX中,对程序流程的控制是通过一些跳转和分支指令来实现的。根据描述目标地址的方法和是否链接可以将跳转操作指令分为四种类型。其中两种类型的跳转指令用带符号位的26位偏移量加上程序计数器的值来确定跳转的目标地址,另外两种类型的跳转指令则指定一个寄存器,由寄存器中的内容决定跳转的目标地址。跳转有两种类型,一种是简单跳转,另一种是跳转并链接(用于过程调用),后者将返回一个地址,即将下一条顺序指令地址(返回地址)保存在寄存器R31中。DLX中的所有分支指令均是条件分支指令,其源操作数寄存器中包含了一个数值或某个比较结果。分支指令测试该源操作数寄存器中的值是0还是非0,决定分支是否成功。 4 浮点操作 DLX的浮点操作有:加、减、乘、除。后缀D代表双精度浮点操作,而后缀F代表单精度浮点操作(如:ADDD、ADDF、SUBD、SUBF、MULTD、MULTF、DIVD、DIVF)。值得提出的是,DLX的浮点比较操作设置浮点状态寄存器中的位,如果比较结果为真,则将该位设置为1;如果比较结果为假,则将该位设置为0。浮点分支指令BFPT和BFTF则测试该寄存器的值来决定分支是否成功Windows XP操作系统WinDLX模拟器软件包中还有WinDLX教程和联机帮助,可以通过它们进一步了解模拟器的使用方法和DLX处理器的原理。
当然,我们也可以使用多步执行,按快捷键F8,选择5步流水,即可。
3.Pipeline窗口介绍
通
文档评论(0)