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

上传人:s9****2 文档编号:565001655 上传时间:2022-08-19 格式:DOC 页数:16 大小:122.01KB
返回 下载 相关 举报
计算机系统结构课程设计.doc_第1页
第1页 / 共16页
计算机系统结构课程设计.doc_第2页
第2页 / 共16页
计算机系统结构课程设计.doc_第3页
第3页 / 共16页
计算机系统结构课程设计.doc_第4页
第4页 / 共16页
计算机系统结构课程设计.doc_第5页
第5页 / 共16页
点击查看更多>>
资源描述

《计算机系统结构课程设计.doc》由会员分享,可在线阅读,更多相关《计算机系统结构课程设计.doc(16页珍藏版)》请在金锄头文库上搜索。

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

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

3、uction in a CISC instruction set might perform a series of operations inside the processor.每个指令集CISC的指令可能在执行处理器系列内的行动, This reduces the number of instructions required to implement a given program, and allows the programmer to learn a small but flexible set of instructions.这将减少所需的指令数实现一个给定的程序,并允许程序员

4、学习一个小而灵活的指令集。但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 wit

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

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

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

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

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

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

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

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

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

14、后者把返回地址下一个顺序指令的地址放入寄存器R31。所有的分支都是有条件的。分支条件由指令确定,可能是测试源寄存器是否为0;寄存器可能含有一个数据或者比较结果。分支的目标地址由16位带符号位移量和PC值相加的结果来确定。浮点指令对浮点寄存器进行操作,并指出将被使用的操作数是单精度还是双精度。MOVF和MOVD分别把一个单精度(MOVF)或双精度(MOVD)浮点寄存器的值复制到另一个同类型寄存器中。MOVFP2I和MOVI2FP在单精度浮点寄存器和整数寄存器之间传送数据。把一个双精数据移到两个整数寄存器中需要两条指令。另外还有32位浮点寄存器上的整数乘除法指令和整数与浮点数之间转换的指令。浮点操作包括加、减、乘、除。后缀F表示单精度浮点数,而后缀D表示双精度浮点数。浮点数比较指令会设置浮点数状态寄存器中的某一位,可以用两条分支指令BFPTO(为真分支)和BFPF(为假分支)测试浮点数状态寄存器来决定是否进行分支。DLX的一个不太寻常的特征是它用浮点部件来完成整数的乘除。因为对较慢的浮点数操作的控制要比控制整数的加减复杂得多,既然浮点部件已经可以处理浮点乘除,那么再让它处理相对较慢的整数乘除也并不困难。因此,DLX要求把乘除的操作数放入浮点寄存器中。第3章 WinDLX模拟器3.1 WinDLX模拟器的安装 WinDLX 包含w

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 医学/心理学 > 妇产科学

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号