ImageVerifierCode 换一换
格式:DOCX , 页数:9 ,大小:22.50KB ,
资源ID:5516407      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/5516407.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(计算机系统结构课程设计.docx)为本站会员(b****4)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

计算机系统结构课程设计.docx

1、计算机系统结构课程设计河北大学工商学院计算机系统结构课程设计学 部 信息科学与工程学部 学科门类 工学 专 业 网络工程 班 级 网络一班 学 号 姓 名 张杨 2010年 6月20日第1章 引言 1第2章 WinDLX指令集 2 WinDLX指令集简介 2 WinDLX指令集结构 2第3章 WinDLX模拟器 3 WinDLX模拟器的安装 3 WinDLX模拟器的配置 3 WinDLX运行及模拟结果分析 3第4章 基于WinDLX模拟器的流水线模拟与分析 4 结构相关 4 数据相关 4 指令调度 5第5章 基于SimpleScalar模拟器的Cache性能分析 7 实验目的 7 Simple

2、Scalar简介 7 测试程序分析 7 实验内容及步骤 7 实验结果分析 7总结 8参考文献 9第1章 引言 20世纪70年代初,人们开始认识到软件价格要比硬件增长的快,编译器和操作系统越来越大,因此人们希望引入强有力的、基于软件的系统结构来解决软件危机。DEC的VAX系列因而登上历史舞台,VAX的设计目标是简化高级语言的编译,其指令集结构就是CISC的典范,有300多条指令,十几种寻址方式,指令字长度从1字节到53字节,具有高度的正交性,甚至允许把高级语言的一条语句直接映射为一条机器指令。每个指令集CISC的指令可能在执行处理器系列内的行动, 这将减少所需的指令数实现一个给定的程序,并允许程

3、序员学习一个小而灵活的指令集。但1991年Bhandarkar和Cark给出了VAX与RISC计算机比较后有关缺点的大量分析,在技术上宣布了VAX的死刑。 20世纪80年代初,计算机系统结构开始为语言提供高级硬件支持的方向转移出来为了提高CPU的执行速度,RISC应运而生。1975年,IBM 801开始研制,项目负责人John Cocke因此获得Eckert- Mauchly奖和Turing奖。1980年,Patterson和他在Berkeley的同事们研发了RISC-1和RISC-2。1981年,Hennessy和他在Stanford的同事们发表了介绍MIPS(Microprocessor

4、without Interlocked Pipeline System)的文章。这些研究成果被工业界广泛采用,MIPS系列是RISC的典型代表。20世纪80年代RISC型CPU诞生了,相对于CISC型CPU ,RISC型CPU不仅精简了指令系统,还采用了一种叫做“超标量和超流水线结构”,大大增加了并行处理能力。1995年左右,设计师开始使用高性能通用处理器和科学应用处理器的技术来设计DSP(数字信号处理)指令集结构,使其有更高的并行度,更快的时钟频率,更简单的类RISC指令集。由于RISC的指令格式统一,种类比较少,寻址方式也比复杂指令集少,处理速度提高很多了。因此RISC指令系统更加适合高档

5、服务器的操作系统UNIX和Linux。目前在中高档服务器中普遍采用RISC指令系统的CPU,特别是高档服务器全都采用RISC指令系统的CPU。第2章 WinDLX指令集 WinDLX指令集简介在计算机系统结构-量化研究方法一书中,作者定义DLX是世界上第二台多元未饱和的计算机它是当今实验与商业计算机的平均。DLX指令集结构是对当前大多数指令集结构研究的结果,是一种适合于学习和研究的指令集结构模型,不仅仅因为它在当前十分流行,同时因为它是一种容易理解的系统结构。WinDLX便是一个基于Windows的DLX模拟器。 WinDLX指令集结构2.2.1 WinDLX的寄存器DLX有32个32位通用寄

6、存器(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的值永远是零。有这样一个特点,就可以利用这个寄存器由简单指令集来合成一组有用的操作。另外,还有一些特殊用途的寄存器,这些寄存器可以和通用寄存器交换数据。2.2.2 WinDLX的数据表示DL

7、X能处理的数据类型有8位字节,16位半字、32位整数字以及32位单精度浮点数和64位双精度浮点数。DLX处理字符数据要使用8字节,使用16位半字,是因为它在类似C的语言中出现,在操作系统代码中半字数据类型也很流行,使用32位整数字,是因为DLX认为32位整数的处理范围一般而言已经足够;之所以有32位单精度浮点数,是因为和16位半字同样的理由;之所以有64位双精度浮点数,是因为和32位整数同样的理由。DLX的操作主要面向32位整数以及32位或64位浮点数。字节或半字在被调入32位寄存器时,用零或者符号位填充32位寄存器的高位剩余部分,一旦被调入寄存器,它们将按照32位整数的方式进行计算。2.2.

8、3 WinDLX的寻址方式利用R0寄存器永远为零的特性,DLX用很少的硬件代价,提供了5种寻址方式。它们是:寄存器寻址方式;立即数寻址方式(立即数范围为16位);位移寻址方式(某寄存器的值加上位移量形成操作数的地址);寄存器间接寻址方式(位移寻址方式中位移量等于0);直接寻址方式(位移寻址方式中寄存器用R0)。2.2.4 WinDLX指令格式由于DLX的寻址方式较少,因此在指令格式中没有必要专门设置寻址方式描述位,可以将其直由于DLX的寻址方式较少,因此在指令格式中没有必要专门设置寻址方式描述位,可以将其直指令字长度32位(单字长指令),其中操作码占6位。I型指令6 5 5 16 操作码源寄存

9、器目的寄存器立即数R型指令 6 5 5 5 11操作码源寄存器1源寄存器2目的寄存器功能码J型指令 6 26操作码与PC相加的偏移量I型指令格式主要用来对各种类型数的存取操作指令编码,即各种Load指令和Store指令,含义为:从内存单元(地址为源寄存器值+立即数)取数至目的寄存器;或把源寄存器中值存在内存单元(地址为目的寄存器值+立即数)中;或把立即数送到目的寄存器中(源寄存器不用)。I型指令格式还用来为分支指令编码,包括条件分支指令(此时,立即数是相对目标地址,源寄存器是判断条件,目的寄存器不用),寄存器跳转指令(此时,源寄存器里是目标地址,目的寄存器不用)和寄存器跳转并连接指令(此时,源

10、寄存器里是目标地址,立即数为0,目的寄存器也为0,该指令主要用于过程调用)。R型指令格式主要用来为各种算数/逻辑运算指令编码,含义为:源寄存器1和源寄存器2进行功能码指定的操作,并把结果存入目的寄存器中。另外,R型指令还为读写特殊寄存器指令和寄存器之间的传送指令编码。J型指令格式主要用来为跳转并连接指令(注意不是寄存器跳转并连接指令)和陷阱与异常返回指令编码。2.2.5 WinDLX指令集DLX指令大致可以分为4大类:加载/存储、ALU操作、分支与跳转和浮点数操作。所有通用寄存器GPR和浮点数寄存器FPR都可作为加载或存储之用,唯一例外是R0,加载R0是没有意义的。单精度浮点数占用一个浮点数寄

11、存器,双精度浮点数占用一对浮点数寄存器。单精度浮点数与双精度浮点数之间的转换必须显式地进行。所有的ALU指令都是寄存器-寄存器指令,包括简单的算术和逻辑操作:加、减、与、或、异或和移位,所有这些指令都支持立即数寻址方式,它带有一个16位的符号扩展立即数。LHI(Load High Immediate)操作将立即数加载到寄存器的高半字,而将低半字设为0,这使得一个32位的常数可以用两条指令来建立。如上所述,R0经常被用来合成通用操作,加载一个常数的操作可以由一个立即数和一个源操作数是R0的加法来实现,寄存器-寄存器传送可以通过其中一个源操作数是R0的加法来完成(DLX有时用助记符LI代表加载来指

12、前者,而用MOV来指后者)。 还有比较两个寄存器的比较指令(,),如果条件为真,则比较指令将在目的寄存器中放入一个1(代表真);否则放入一个0。由于这些操作都设置寄存器,因此它们被叫做set-equal,set-not-equal,set-less-than等,同时这些比较指令也具有立即数寻址方式。控制由一组跳转指令和一组分支指令来处理。4种跳转指令由指定目的地址的两种方式和是否进行链接来区分。有两种跳转指令把26位带符号的位移量加到PC中来确定目的地址;另外两种跳转指令通过指定包含目的地址的寄存器来确定目的地址。有两种跳转:简单跳转,跳转并链接(用于过程调用),后者把返回地址下一个顺序指令的

13、地址放入寄存器R31。所有的分支都是有条件的。分支条件由指令确定,可能是测试源寄存器是否为0;寄存器可能含有一个数据或者比较结果。分支的目标地址由16位带符号位移量和PC值相加的结果来确定。浮点指令对浮点寄存器进行操作,并指出将被使用的操作数是单精度还是双精度。MOVF和MOVD分别把一个单精度(MOVF)或双精度(MOVD)浮点寄存器的值复制到另一个同类型寄存器中。MOVFP2I和MOVI2FP在单精度浮点寄存器和整数寄存器之间传送数据。把一个双精数据移到两个整数寄存器中需要两条指令。另外还有32位浮点寄存器上的整数乘除法指令和整数与浮点数之间转换的指令。浮点操作包括加、减、乘、除。后缀F表

14、示单精度浮点数,而后缀D表示双精度浮点数。浮点数比较指令会设置浮点数状态寄存器中的某一位,可以用两条分支指令BFPTO(为真分支)和BFPF(为假分支)测试浮点数状态寄存器来决定是否进行分支。DLX的一个不太寻常的特征是它用浮点部件来完成整数的乘除。因为对较慢的浮点数操作的控制要比控制整数的加减复杂得多,既然浮点部件已经可以处理浮点乘除,那么再让它处理相对较慢的整数乘除也并不困难。因此,DLX要求把乘除的操作数放入浮点寄存器中。第3章 WinDLX模拟器 WinDLX模拟器的安装 WinDLX 包含和文件。此外,还需要一些扩展名为.s的汇编代码文件。实验将使用 和这两个汇编代码文件。WinDL

15、X的安装非常简单,将WinDLX压缩包解压到一个指定的目录,做实验时直接双击WinDLX图标就可进入Windlx模拟器。 WinDLX模拟器的配置WinDLX可以在多种配置下工作。可以改变流水线的结构和时间要求、存储器大小和其他几个控制模拟的参数。点击Configuration / Floating Point Stages(点击Configuration打开菜单,然后点击Floating Point Stages菜单项),选择如下标准配置:UNITCOUNTDELAYAddition Units:12Multiplication Units:15Division Units:119如果需要,

16、可以通过点击相应区域来改变设置。然后,点击OK返回主窗口。点击 Configuration/Memory Size ,可以设置模拟处理器的存储器大小。应设置为0x8000,然后,点击OK返回主窗口。在Configuration 菜单中的其他三个配置也可以设置,它们是:Symbolic addresses,Absolute Cycle Count和Enable Forwarding。 点击相应菜单项后,在它的旁边将显示一个小钩。 WinDLX运行及模拟结果分析在开始模拟之前,至少应装入一个程序到主存。我们选择作为例子,计算一个整型值的阶乘,它的运行还需要一个辅助文件, 中包含一个子程序,它读标准

17、输入(键盘)并将值存入DLX处理器的通用寄存器R1中。为此,选择File/Load Code or Data,窗口中会列出目录中所有汇编程序。按如下步骤操作,可将这两个文件装入主存。 点击 ,点击 select 按钮 ,点击 ,点击 select按钮 ,点击 load按。钮选择文件的顺序很关键,它决定了文件在存储器中出现的顺序。对话框中会显示信息“File(s) loaded successfully. Reset DLX”,点击确认按钮。这样,文件就已被装入到主存储器中了。现在就可以开始模拟工作了。第4章 基于WinDLX模拟器的流水线模拟与分析 控制相关4.1.1 实验目的通过本实验,加深

18、对结构相关的理解,了解结构相关对CPU性能的影响。4.1.2 实验内容1. 用WinDLX模拟器运行程序 。2. 通过模拟,找出存在结构相关的指令对以及导致结构相关的部件。3由结构相关引起的暂停时钟周期数,计算暂停时钟周期数占总执行周期数的百分比。4论述结构相关对CPU性能的影响,讨论解决结构相关的方法。4.1.3 实验原理结构相关是指因为程序的执行方向可能被改变而引起的相关。可能改变程序执行方向的指令通常有无条件转移、一般条件转移、复合条件转移、子程序调用、中断等。1无条件转移无条件转移指令一般能够在指令分析器中就执行完成,因此一般对指令执行部件的工作不会造成影响。2条件转移条件转移指令有两

19、种:一般条件转移指令和复合条件转移指令。对于一般条件转移指令,相关最严重的情况发生在条件码是上一条指令产生的。转移不成功对先行控制器的影响不大,而转移成功时,不仅指令执行过程变成了完全串行,而且要作废已经取到先行指令缓冲栈中的大量指令,从而白白增加了处理机与主存之间的通信量。对于复合条件转移指令,如果转移不成功,则就象一条普通的运算型指令一样。如果转移成功,不仅要全部或部分作废先行指令缓冲栈中已经预取的指令,还可能要作废先行操作栈中的指令和先行读数栈中的操作数,作废当前在指令分析器中分析的指令。4.1.4 控制相关下WinDLX配置1Statistics 窗口:将待运行程序装入主存后按F5使程

20、序完成执行,出现消息Trap #0 occurred 表明最后一条指令 trap 0 已经执行, Trap指令中编号“0”没有定义,只是用来终止程序。双击图标Statistics。Statistics 窗口提供各个方面的信息:模拟中硬件配置情况、暂停及原因、条件分支、 Load/Store指令、浮点指令和traps。窗口中给出事件发生的次数和百分比。2WinDLX可以在多种配置下工作。你可以改变流水线的结构和时间要求、存储器大小和其他几个控制模拟的参数。点击 Configuration / Floating Point Stages(点击Configuration打开菜单,然后点击Floati

21、ng Point Stages菜单项),选择如下标准配置:CountDelayAddition Units:12Multiplication Units:15Division Units:119点击 Configuration / Memory Size ,可以设置模拟处理器的存储器大小。应设置为0x8000,然后,点击 OK 返回主窗口。在 Configuration 菜单中的其他三个配置也可以设置,它们是:Symbolic addresses, Absolute Cycle Count 和 Enable Forwarding。 点击相应菜单项后, 在它的旁边将显示一个小钩。4.1.5实验过

22、程实验时,先将Configuration / Memory Size菜单选项中的设置按4.1.5控制相关下WinDLX的配置更改,在flie菜单中选择really reset all windlx completely ,随后选择load code or data 装入structure_d.点load。将待运行程序装入主存后按F5使程序完成执行,出现消息Trap #0 occurred 查看clock cycle diagram中的实验结果时空图。4.1.6 结果分析 数据相关4.2.1 实验目的4.2.2 实验内容4.2.3 实验原理4.2.4 数据相关下WinDLX配置4.2.5 实验过

23、程4.2.6 结果分析 指令调度4.3.1 实验目的4.3.2 实验内容4.3.3 实验原理4.3.4 WinDLX配置4.3.5 实验过程4.3.6 结果分析第5章 基于SimpleScalar模拟器的Cache性能分析 实验目的 SimpleScalar简介 测试程序分析 实验内容及步骤 实验结果分析总结参考文献1 John L. Hennessy, David A. Computer Architecture: A Quantitative Approach, 4th Edition. Patterson. Morgan Kaufmann,4 edition, 2郑纬民, 汤志忠译. 计算机系统结构量化研究方法(第三版). 电子工业出版社,3郑纬民, 汤志忠. 计算机系统结构(第2版). 郑纬民, 汤志忠. 清华大学出版社, 4李学干. 计算机系统结构,西安电子科技大学出版社,20065张晨曦. 刘依. 计算机组成与结构. 高等教育出版社,6n/arch/7l

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1