计算机体系构实验报告.docxVIP

  1. 1、本文档共18页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实验目的熟悉计算机流水线基本概念了解DLX基本流水线各段的功能,了解不同指令在流水线中的实际流动情况对流水线做性能分析了解影像流水线效率的因素——数据相关、结构相关、控制相关,了解相关的种类了解解决数据相关的方法背景知识WinDLX简介美国斯坦福大学计算机系Hennessy教授和加州伯克利分校计算机系Patterson教授是计算机系统结构领域非常受人尊敬的学者和开拓者。John Hennessy 精通软硬件两个方面,是具有传奇色彩的MIPS编译器和几代MIPS硬件产品技术上的领导者。David Paterson 是RISC的最初提倡者之一,他首创了RISC一词,定义了RISC的含义,是Sun公司SPARC处理器的主要顾问。他提出了RAID(独立/廉价磁盘冗余阵列)的概念,推动了为海量数据服务器提供磁盘存储解决方案的工业革命,并且还提出了NOW(工作站网络)的概念。他们合著的著作《计算机系统结构-量化研究方法》是他们对计算机组织、系统结构研究和实践的全面而系统的总结,是计算机学科的经典名著。“在这本书的很多地方我们会提到一种计算机的“机器语言”,我们用的机器是一种假想计算机叫做“MIX”,MIX非常类似于实际存在的计算机,也许更加优秀一些。MIX是世界上第一台多元未饱和的计算机。与许多机器一样,MIX具有一个标识号码——1009。这个号码是由16种实际存在的计算机的标识号码取算术平均值之后得到的。这16种机器都和MIX十分类似,使得我们可以在这些计算机上模拟MIX:「(360+650+709+7070+U3+SS80+1107+1604+G20+B220+S2000+920+601+H800+PDP-4+11)/16」=1009。同样的结果也可以通过使用罗马数字获得。“——摘录自Donald Knuth,The Art of Computer Programming,Volume 1:Fundamental Algorithms 在这一节中,将描述一种被称为DLX的load-store系统结构,作者相信DLX是世界上第二台多元未饱和的计算机——它是当今实验与商业计算机的平均,而这些机器与DLX的设计思想十分接近。像Knuth所用的方法一样,我们通过罗马数字的平均值得到计算机的名称:(AMD 29K,DEXstation 3100,HP 850,IBM 801,Intel i860,MIPS M/120A,MIPS M/1000,Motorola 88K,RISC 1,SGI 4D/60,SPARCstation-1,Sun-4/110,Sun-4/260)/13=560=DLX。以上内容摘自《计算机系统结构-量化研究方法》(第二版),它说明了DLX的基本含义。DLX指令集结构是作者对当前大多数指令集结构研究的结果,是一种适合于学习和研究的指令集结构模型,不仅仅因为它在当前十分流行,同时因为它是一种容易理解的系统结构。WinDLX是一个基于Windows的DLX模拟器。有许多用来研究计算机系统结构的模拟器,如Simplescalar,SimOS,SPMCache,DLXview等,WinDLX相对来说比较简单,便于教学。DLX指令集DLX指令大致可以分为4大类:加载/存储、ALU操作、分支与跳转和浮点数操作。为了便于说明指令的含义,我们需要一些C描述语言的扩展:当被传送数据的长度不确定时,在符号←上附加一个下标。←n表示传送n位。下标用于标识从域中选择出特定的位。位从以0开始的最高位开始标注。下标可以是一个数字(例如Regs[R4]0表示R4的符号位),也可以是一个范围(例如Regs[R4]24...31表示R4的最低位字节)。变量Mem用来表示主存,按字节编址,每条指令可以传输1~8字节的数据。上标用来表示对域进行复制(例如024表示一个24位长的全0域) 符号##用来链接两个域并且可以出现在数据转换的任何一边。 所有通用寄存器GPR和浮点数寄存器FPR都可作为加载或存储之用,唯一例外是R0,加载R0是没有意义的。单精度浮点数占用一个浮点数寄存器,双精度浮点数占用一对浮点数寄存器。单精度浮点数与双精度浮点数之间的转换必须显式地进行。图2.2给出了加载和存储指令的例子。假设R8和R10是32位寄存器,则:Regs[R10]16…31←16(Mem[Regs[R8]]0)8##Mem[Regs[R8]]表示以R8的内容作为地址访问内存,得到的字节按符号位扩展成16位后存入R10的低半字(R10的高半字不变)。高半字不变)。指令举例指令名称含义LW R1,30(R2)加载字Regs[R1]←32 Mem[30+Regs[R2]] LW R1,1000(R0)加载字Regs[R1]←32 Mem[1000+0] LB R1,40(R3)

文档评论(0)

guanpiea + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档