计算机系统结构实验指导书.doc
《计算机系统结构实验指导书.doc》由会员分享,可在线阅读,更多相关《计算机系统结构实验指导书.doc(13页珍藏版)》请在咨信网上搜索。
1、个人收集整理 勿做商业用途 北 京 邮 电 大 学计 算 机 学 院计算机系统结构 实 验 指 导 书王春露 邝坚 编著2007年 3 月目 录l 计算机系统结构实验简介l DLX处理器简介1. 实验一 WINDLX模拟器安装及使用 12. 实验二 指令流水线相关性分析3. 实验三 DLX处理器程序设计4。 实验四 代码优化5. 实验五 循环展开(选作)计算机系统结构实验简介DLX是一个虚拟处理器.该处理器是加州大学伯克利分校计算机系JohnL .H ennessy教授和斯坦福大学计算机系David A。 Patterson教授在其计算机体系结构:一种定量的方法一书中提出的.该处理器反映了新一
2、代处理器的特点。通过了解DLX处理器的结构和工作原理,并利用DLX模拟器进行实验,可以帮助学生综合地了解和运用有关处理器指令系统的设计、流水线的设计与实现等方面的知识,有助于计算机系统结构课程内容的理解。DLX处理器简介第一节 DLX基本结构DLX是一种典型的Load/Store型指令集结构。它不仅体现了当今多种机器的指令集结构的共同特点,而且它还体现出未来一些机器的指令集结构的特点。这些机器的指令集结构设计思想都和DLX指令集结构的设计思想十分相似,它们都强调:(1) 具有一套简单的Load/Store指令集;(2) 注重指令流水效率;(3) 简化指令的译码;(4) 高效支持编译器。DLX是
3、一种易于学习和研究的处理器结构模型。这种类型的机器正在日趋流行,而且其结构非常易于理解。1DLX中的寄存器 DLX中有32个通用寄存器(GPRs),分别将其命名为R0,R1R31。每个通用寄存器长度为32位。另外,DLX中有32个浮点寄存器(FPRs),分别将其命名为F0,F1F31。每个浮点寄存器长度为32位。这些浮点寄存器可以用来保存32位的单精度浮点数,或者通过相邻两个浮点寄存器奇偶对FiFi+1(i=0,2,4,30)来保存双精度浮点数,这种组合而成的64位双精度浮点寄存器在DLX中分别被命名为F0,F2F28,F30.2. DLX数据类型DLX提供了多种长度的整型数据和浮点数据.对整
4、型数据而言,有8位,16位,32位多种长度;对浮点而言,有32位单精度浮点数和64位双精度浮点数.浮点数据表示采用的是IEEE754标准。DLX操作都是对32位整型数据及32或64位浮点数据进行的.3DLX的寻址方式和数据传送 DLX提供了寄存器寻址,立即寻址,偏移寻址和寄存器间接寻址四种寻址方式。寄存器寻址字段的大小为5位,用来标识32个通用寄存器或浮点寄存器.4。 DLX的指令格式因为DLX只有四种寻址方式,所以将其寻址方式编码在操作码中。为了简化指令译码,并充分发挥流水线的效率,所有DLX指令的字长均是32位,其中用6位表示操作码。DLX中各种类型指令的格式如图1所示:图15DLX中的操
5、作 DLX指令中的操作可以分为四种类型,即:Load和Store操作、ALU操作、分支和跳转操作、浮点操作。(1)Load和Store操作 可以对DLX的所有通用寄存器和浮点寄存器进行Load(载入)和Store(储存)操作,但是通用寄存器R0的Load操作没有任何效果。 (2) ALU操作在DLX中,所有的ALU指令都是寄存器寄存器型指令,其运算包含了简单的算术和逻辑运算,如加、减、AND、OR、XOR和移位.另外,DLX还允许所有这些指令对立即值进行操作,立即值以16位符号扩展形式出现。LHI(Load高位立即值)操作将立即值载入到一个寄存器的高半部分,而该寄存器的低半部分则设置为0.这样
6、就可以通过两条Load指令构造一个32位的常数。正如上面所提到的,R0主要用来合成一些有用的操作。比如,Load一个常数就可以看作是一次简单的立即值加操作,其中一个源操作数是R0;寄存器寄存器间的数据移动也可以看作是一次简单的加,其中一个源操作数是R0.这两个操作可以分别用LI和MOV表示。 在DLX指令集中,还有一些寄存器比较指令(=,,,),如果比较结果为真,这些指令就在目标寄存器中填入1(表示真),否则填入0(表示假)。因为这些比较操作指令要对目标寄存器进行“设置,所以也称它们为设置相等、设置不等、设置小于等指令. (3) 分支和跳转操作在DLX中,对程序流程的控制是通过一些跳转和分支指
7、令来实现的。根据描述目标地址的方法和是否链接可以将跳转操作指令分为四种类型。其中两种类型的跳转指令用带符号位的26位偏移量加上程序计数器的值来确定跳转的目标地址,另外两种类型的跳转指令则指定一个寄存器,由寄存器中的内容决定跳转的目标地址.跳转有两种类型,一种是简单跳转,另一种是跳转并链接(用于过程调用),后者将返回一个地址,即将下一条顺序指令地址(返回地址)保存在寄存器R31中。 DLX中的所有分支指令均是条件分支指令,其源操作数寄存器中包含了一个数值或某个比较结果.分支指令测试该源操作数寄存器中的值是0还是非0,决定分支是否成功。分支目标地址由一个带符号的26位偏移量加上程序计数器的值来确定
8、,分支目的地址指向下一条要执行的指令 (4) 浮点操作 在DLX中,浮点指令的操作数来源于浮点寄存器,同时该浮点指令还指明了相应的操作是单精度浮点操作还是双精度浮点操作。DLX的浮点操作有:加、减、乘、除。后缀D代表双精度浮点操作,而后缀F代表单精度浮点操作(如:ADDD、ADDF、SUBD、SUBF、MULTD、MULTF、DIVD、DIVF)。值得提出的是,DLX的浮点比较操作设置浮点状态寄存器中的位,如果比较结果为真,则将该位设置为1;如果比较结果为假,则将该位设置为0。浮点分支指令BFPT和BFTF则测试该寄存器的值来决定分支是否成功。另外,操作MOVF将一个单精度浮点寄存器的内容拷贝
9、至另一个单精度浮点寄存器; MOVD则将一个双精度浮点寄存器的内容拷贝至另一双精度寄存器;MOVFP2I和MOVI2FP操作则是在一个浮点寄存器和通用寄存器之间移动数据,如果要将一个双精度浮点数移入两个通用寄存器则需要两条指令,另外DLX还提供了在32位浮点寄存器中进行整数乘除操作的指令。第二节 DLX流水线结构一一个简单实现 为了说明指令的流水执行方式,先论述在不流水的情况下,DLX指令是如何执行的.图2给出了实现DLX指令的一种简单数据通路,下面可以看出在五个时钟周期内可以完成一条DLX指令.1取指令周期(IF):IR MemPCNPC PC4其操作为:根据PC值从存贮器中取出指令,并将指
10、令送入指令寄存器IR;PC值增加4,指向顺序的下一条指令,并将下一条指令的地址放入临时寄存器NPC中.图2 2指令译码/读寄存器周期(ID):A RegsIR6.。10B RegsIR11.。15Imm(IR16)16 # IR16.。31其操作为:对指令操作码进行译码,按照给定的寻址方式和地址段中的内容形成操作数的地址,并用这个地址读操作数。操作数可能在驻村中,也可能在通用寄存器中.8指令的译码操作和读寄存器操作是并行进行的。之所以能做到这一点,是因为DLX指令格式中,操作码在固定位置。这种技术也称为固定字段译码技术.值得注意的是,在上述过程中,可能读出了一些在后面周期中并不会使用到的寄存器
11、内容,但是这并不会影响指令执行的正确性.相反,却可以有效地降低问题的复杂性.另外,由于立即值在DLX指令格式中处于固定位置,因此这里也对其进行符号扩展,以便在下一个周期能使用它。当然由于指令的不同,也许在后面的周期中并不会用到这个立即值,但无论如何,提前形成立即值总是有益无害的。3执行/有效地址计算周期(EX)在这个周期,不同的指令有不同的操作.1(1)存储器访问:ALUOutputAImm当指令为存贮器访问指令时,该周期的操作为:ALU将操作数相加形成有效地址,并将结果放入临时寄存器ALUoutput中.(2)寄存器寄存器ALU 操作:ALUOutputA opB 当指令为寄存器-寄存器AL
12、U操作指令时,该周期的操作为:ALU根据操作码指出的功能对临时寄存器A和B中的值进行处理,并将结果送入临时寄存器ALUoutput中.(3)寄存器立即值ALU 操作:ALUOutputA opImm当指令为寄存器-寄存器ALU操作指令时,该周期的操作为: ALU根据操作码指出的功能对临时寄存器A和Imm中的值进行处理,并将结果送入临时寄存器ALUoutput中.(4)分支操作ALUOutputNPCImmCond(A op 0)当指令为分支指令时,该周期的操作为:ALU 将临时寄存器NPC和Imm中的值相加,得到分支的目标地址。同时,对在前一个周期读入到寄存器A的值进行检查,决定分支是否成功。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机系统 结构 实验 指导书
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【a199****6536】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【a199****6536】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。