计算机系统结构课程设计报告书.doc
15页...wd...河北大学工商学院计算机系统构造课程设计学 部 信息科学与工程学部 学科门类 工学 专 业 网络工程 班 级 网络一班学 号 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章基于SimpleScalar模拟器的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 instruction 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.这将减少所需的指令数实现一个给定的程序,并允许程序员学习一个小而灵活的指令集但1991年Bhandarkar和Cark给出了VAX与RISC计算机对比后有关缺点的大量分析,在技术上宣布了VAX的死刑。
20世纪80年代初,计算机系统构造开场为语言提供高级硬件支持的方向转移出来为了提高CPU的执行速度,RISC应运而生1975年,IBM 801开场研制,工程负责人John Cocke因此获得Eckert- Mauchly奖和Turing奖1980年,Patterson和他在Berkeley的同事们研发了RISC-1和RISC-21981年,Hennessy和他在Stanford的同事们发表了介绍MIPS〔Microprocessor without Interlocked Pipeline System〕的文章这些研究成果被工业界广泛采用,MIPS系列是RISC的典型代表20世纪80年代RISC型CPU诞生了,相对于CISC型CPU ,RISC型CPU不仅精简了指令系统,还采用了一种叫做“超标量和超流水线构造〞,大大增加了并行处理能力1995年左右,设计师开场使用高性能通用处理器和科学应用处理器的技术来设计DSP〔数字信号处理〕指令集构造,使其有更高的并行度,更快的时钟频率,更简单的类RISC指令集由于RISC的指令格式统一,种类对比少,寻址方式也比复杂指令集少,处理速度提高很多了因此RISC指令系统更加适合高档服务器的操作系统UNIX和Linux。
目前在中高档服务器中普遍采用RISC指令系统的CPU,特别是高档服务器全都采用RISC指令系统的CPU第2章 WinDLX指令集2.1 WinDLX指令集简介在?计算机系统构造-量化研究方法?一书中,作者定义DLX是世界上第二台多元未饱和的计算机——它是当今实验与商业计算机的平均DLX指令集构造是对当前大多数指令集构造研究的结果,是一种适合于学习和研究的指令集构造模型,不仅仅因为它在当前十分流行,同时因为它是一种容易理解的系统构造WinDLX便是一个基于Windows的DLX模拟器2.2 WinDLX指令集构造2.2.1 WinDLX的存放器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.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位整数的方式进展计算2.2.3 WinDLX的寻址方式利用R0存放器永远为零的特性,DLX用很少的硬件代价,提供了5种寻址方式它们是:存放器寻址方式;立即数寻址方式〔立即数范围为16位〕;位移寻址方式〔某存放器的值加上位移量形成操作数的地址〕;存放器间接寻址方式〔位移寻址方式中位移量等于0〕;直接寻址方式〔位移寻址方式中存放器用R0〕。
2.2.4 WinDLX指令格式由于DLX的寻址方式较少,因此在指令格式中没有必要专门设置寻址方式描述位,可以将其直由于DLX的寻址方式较少,因此在指令格式中没有必要专门设置寻址方式描述位,可以将其直指令字长度32位〔单字长指令〕,其中操作码占6位I型指令6 5 5 16 操作码源存放器目的存放器立即数R型指令 6 5 5 5 11操作码源存放器1源存放器2目的存放器功能码J型指令 6 26操作码与PC相加的偏移量I型指令格式主要用来对各种类型数的存取操作指令编码,即各种Load指令和Store指令,含义为:从内存单元〔地址为源存放器值+立即数〕取数至目的存放器;或把源存放器中值存在内存单元〔地址为目的存放器值+立即数〕中;或把立即数送到目的存放器中〔源存放器不用〕I型指令格式还用来为分支指令编码,包括条件分支指令〔此时,立即数是相对目标地址,源存放器是判断条件,目的存放器不用〕,存放器跳转指令〔此时,源存放器里是目标地址,目的存放器不用〕和存放器跳转并连接指令〔此时,源存放器里是目标地址,立即数为0,目的存放器也为0,该指令主要用于过程调用〕。
R型指令格式主要用来为各种算数/逻辑运算指令编码,含义为:源存放器1和源存放器2进展功能码指定的操作,并把结果存入目的存放器中另外,R型指令还为读写特殊存放器指令和存放器之间的传送指令编码J型指令格式主要用来为跳转并连接指令〔注意不是存放器跳转并连接指令〕和陷阱与异常返回指令编码2.2.5WinDLX指令集DLX指令大致可以分为4大类:加载/存储、ALU操作、分支与跳转和浮点数操作所有通用存放器GPR和浮点数存放器FPR都可作为加载或存储之用,唯一例外是R0,加载R0是没有意义的单精度浮点数占用一个浮点数存放器,双精度浮点数占用一对浮点数存放器单精度浮点数与双精度浮点数之间的转换必须显式地进展所有的ALU指令都是存放器-存放器指令,包括简单的算术和逻辑操作:加、减、与、或、异或和移位,所有这些指令都支持立即数寻址方式,它带有一个16位的符号扩展立即数LHI〔Load High Immediate〕操作将立即数加载到存放器的高半字,而将低半字设为0,这使得一个32位的常数可以用两条指令来建立如上所述,R0经常被用来合成通用操作,加载一个常数的操作可以由一个立即数和一个源操作数是R0的加法来实现,存放器-存放器传送可以通过其中一个源操作数是R0的加法来完成〔DLX有时用助记符LI代表加载来指前者,而用MOV来指后者〕。
还有对比两个存放器的对比指令〔=,≠,<,>,≤,≥〕,如果条件为真,那么对比指令将在目的存放器中放入一个1〔代表真〕;否那么放入一个0由于这些操作都设置存放器,因此它们被叫做set-equal,set-not-equal,set-less-than等,同时这些对比指令也具有立即数寻址方式控制由一组跳转指令和一组分支指令来处理4种跳转指令由指定目的地址的两种方式和是否进展链接来区分有两种跳转指令把26位带符号的位移量加到PC中来确定目的地址;另外两种跳转指令通过指定包含目的地址的存放器来确定目的地址有两种跳转:简单跳转,跳转并链接〔用于过程调用〕,后者把返回地址——下一个顺序指令的地址——放入存放器R31所有的分支都是有条件的分支条件由指令确定,可能是测试源存放器是否为0;存放器可能含有一个数据或者对比结果分支的目标地址由16位带符号位移量和PC值相加的结果来确定浮点指令对浮点存放器进展操作,并指出将被使用的操作数是单精度还是双精度MOVF和MOVD分别把一个单精度〔MOVF〕或双精度〔MOVD〕浮点存放器的值复制到另一个同类型存放器中MOVFP2I和MOVI2FP在单精度浮点存放器和整数存放器之间传送数据。
把一个双精数据移到两个整数存放器中需要两条指令另外还有32位浮点存放器上的整数乘除法指令和整数与浮点数之间转换的指令浮点操作包括加、减、乘、除后缀F表示单精度浮点数,而后缀D表示双精度浮点数浮点数对比指令会设置浮点数状态存放器中的某一位,可以用两条分支指令BFPTO〔为真分支〕和BFPF〔为假分支〕测试浮点数状态存放器来决定是否进展分支DLX的一个不太寻常的特征是它用浮点部件来完成整数的乘除因为对较慢的浮点数操作的控制要比控制整数的加减复杂得多,既然浮点部件已经可以处理浮点乘除,那么再让它处理相对较慢的整数乘除也并不困难因此,DLX要求把乘除的操作数放入浮点存放器中第3章 WinDLX模拟器3.1 WinDLX模拟器的安装WinDLX 包含windlx.exe和windlx.hlp文件此外,还需要一些扩展名为.s的汇编代码文件实验将使用fact.s 和input.s这两个汇编代码文件WinDLX的安装非常简单,将WinDLX压缩包解压到一个指定的目录,做实验时直接双击WinDLX图标就可进入Win。

卡西欧5800p使用说明书资料.ppt
锂金属电池界面稳定化-全面剖析.docx
SG3525斩控式单相交流调压电路设计要点.doc
话剧《枕头人》剧本.docx
重视家风建设全面从严治党治家应成为领导干部必修课PPT模板.pptx
黄渤海区拖网渔具综合调查分析.docx
2024年一级造价工程师考试《建设工程技术与计量(交通运输工程)-公路篇》真题及答案.docx
【课件】Unit+3+Reading+and+Thinking公开课课件人教版(2019)必修第一册.pptx
嵌入式软件开发流程566841551.doc
生命密码PPT课件.ppt
爱与责任-师德之魂.ppt
制冷空调装置自动控制技术讲义.ppt


