- 1、本文档共29页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
计算机系统结构设计.doc
计算机系统结构课程设计
学 部
学科门类
专 业
班 级
学 号
姓 名
2010年 6月20日
目 录
第1章 引言 1
第2章 WinDLX指令集 2
2.1 WinDLX指令集简介 2
2.2 WinDLX指令集结构 3
3章 WinDLX模拟器 7
3.1 WinDLX模拟器的安装 7
3.2 WinDLX模拟器的配置 7
3.3 WinDLX运行及模拟结果分析 7
第4章 基于WinDLX模拟器的流水线模拟与分析 14
4.1 控制相关 14
4.2 数据相关 17
4.3 指令调度 20
总结 25
参考文献 26
第1章 引言
介绍指令集结构发展概述
IBM资深专家C.M.Amdahl 1964年在介绍IBM 360系统时首先提出计算机系统结构的概念:计算机系统结构是程序员所看到的计算机的属性,即概念性结构与功能特性。而指令集结构就是其中一个重要的属性,包括寻址规则、寄存器定义和指令系统等,它是CPU的外在表现形式,是计算机系统结构设计中的核心问题,是软硬件功能分配最主要的界面,是计算机系统结构设计者、系统软件设计者和系统硬件设计者所共同关注的问题。
计算机系统结构研究得最多的是指令集结构。在ENIAC时代,基于累加器的指令集结构是在硬件资源十分有限的条件下必然的选择。1964年的IBM 360首次提出“有相同系统结构的计算机系列应该能够运行相同软件”的思想,是第一个基于寄存器的指令集结构。20世纪70年代初,DEC的VAX系列进入市场,VAX的设计目标是简化高级语言的编译,其指令集结构是CISC的典范。20世纪80年代初,计算机系统结构开始从为语言提供高级硬件支持的方向转移出来,为了提高CPU执行指令的速度,RISC应运而生。Intel公司的80x86系列是在CISC/RISC的激烈竞争中坚持下来的唯一CISC。一方面保持二进制兼容性在商业上极具重要性,另一方面,微电子技术的迅速发展使得Intel可以在外部支持80x86指令集,而在内部使用RISC指令集。1995年左右,设计师开始使用高性能通用处理器和科学应用处理器的技术来设计DSP新的指令集结构,使其有更高的并行度,更快的时钟频率,更简单的类RISC指令集。20世纪90年代中有越来越多的设计人员转向了SOC(system-on-chip),虽然这种芯片不是处理器,但处理器在很大程序上决定了芯片的性能。
在DLX中,浮点指令的操作数来源于浮点寄存器,同时该浮点指令还指明了相应的操作是单精度浮点操作还是双精度浮点操作。
??DLX的浮点操作有:加、减、乘、除。后缀D代表双精度浮点操作,而后缀F代表单精度浮点操作(如:ADDD、ADDF、SUBD、SUBF、MULTD、MULTF、DIVD、DIVF)。值得提出的是,DLX的浮点比较操作设置浮点状态寄存器中的位,如果比较结果为真,则将该位设置为1;如果比较结果为假,则将该位设置为0。浮点分支指令BFPT和BFTF则测试该寄存器的值来决定分支是否成功。
????另外,操作MOVF将一个单精度浮点寄存器的内容拷贝至另一个单精度浮点寄存器;?MOVD则将一个双精度浮点寄存器的内容拷贝至另一双精度寄存器;MOVFP2I和MOVI2FP操作则是在一个浮点寄存器和通用寄存器之间移动数据,如果要将一个双精度浮点数移入两个通用寄存器则需要两条指令,另外DLX还提供了在32位浮点寄存器中进行整数乘除操作的指令。
???对于测试统计结果中使用频率大于1%的指令,以直方图的形式分别表示在?图2-1?和?图2-2?中。
????图2-1 指令使用频率的整型平均
????图2-2 指令使用频率的符点平均
DLX有32个32位通用寄存器(GPR),名称为R0,R1,R2,…,R31。另外还有一组浮点寄存器(FPR),它们既可以用作32个32位单精度浮点寄存器,也可以奇偶配对来存储双精度浮点数,即F0和F1构成一个64位双精度浮点数寄存器,F2和F3构成一个64位双精度浮点数寄存器,以此类推。这些64位浮点数寄存器被命名为F0,F2,…,F28,F30。这样,DLX就提供了32个32位单精度浮点数寄存器或16个64位双精度浮点数寄存器。R0的值永远是零。有这样一个特点,就可以利用这个寄存器由简单指令集来合成一组有用的操作。另外,还有一些特殊用途的寄存器,这些寄存器可以和通用寄存器交换数据,在GPR和FPR之间还可以用一些专门的指令来传送数据。
DLX能处理的数据类型有8位字节,16位半字、32位整数字以及32位单精度浮点数和6
文档评论(0)