欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    计算机系统结构》电子教案(3).ppt

    • 资源ID:65766332       资源大小:406KB        全文页数:45页
    • 资源格式: PPT        下载积分:20金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要20金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    计算机系统结构》电子教案(3).ppt

    第第2 2章章 指令系统的设计指令系统的设计本章主要内容本章主要内容(1)(1)指令操作码的优化(不讲)指令操作码的优化(不讲)(2)(2)RISCRISC技术简介技术简介(3)(3)MIPSMIPS指令集指令集(4)(4)MIPSMIPS模拟器(补充)模拟器(补充)2014.2.171计算机系统结构2.4.2 2.4.2 RISCRISC技术简介(技术简介(P44P44)名词:名词:RISCReduced Instruction Set ComputingRISCReduced Instruction Set Computing,精简指令集计算机精简指令集计算机(1)(1)RISCRISC产生的背景:产生的背景:20%20%与与80%80%规律规律(2)(2)RISCRISC设计的基本原则:设计的基本原则:只设置最常用的简单指令,凡遇复杂操作均用多条简单指令实现;只设置最常用的简单指令,凡遇复杂操作均用多条简单指令实现;指令长度固定,操作码与操作数长度都尽量统一;指令长度固定,操作码与操作数长度都尽量统一;基本指令的启动时间间隔降低到基本指令的启动时间间隔降低到1 1个时钟周期;个时钟周期;访问主存只有访问主存只有loadload和和storestore指令,用变址寻址;指令,用变址寻址;尽量采用硬连逻辑对指令译码;尽量采用硬连逻辑对指令译码;为了加快执行速度,在编译过程中对目标代码结构进行优化;为了加快执行速度,在编译过程中对目标代码结构进行优化;(3)(3)RISCRISC性能优势的原因性能优势的原因采用采用RISCRISC技术的主要动机是使各条指令的执行时序尽可能一致,技术的主要动机是使各条指令的执行时序尽可能一致,CPUCPU在在执行时间上可以把它们安排得更紧凑,就像许多大小相近的箱子容易被堆执行时间上可以把它们安排得更紧凑,就像许多大小相近的箱子容易被堆放得更密集一样。这样机器内的各种资源可以充分利用,单位时间内能执放得更密集一样。这样机器内的各种资源可以充分利用,单位时间内能执行更多的指令,速度更快。行更多的指令,速度更快。这方面的具体内容,在第这方面的具体内容,在第3 3章讲流水线时会详细介绍。章讲流水线时会详细介绍。2014.2.172计算机系统结构2.4.2 2.4.2 RISCRISC技术的发展技术的发展2020世纪世纪7070年代初,年代初,IBMIBM研究中心的研究中心的John John CockeCocke证明,计算机中约证明,计算机中约20%20%的的指令承担了指令承担了80%80%的工作,的工作,19741974年,他提出年,他提出RISCRISC的概念。的概念。在在RISCRISC的早期研究中,加州大学伯克利分校(的早期研究中,加州大学伯克利分校(UC BerkeleyUC Berkeley)和斯坦福)和斯坦福大学(大学(StanfordStanford)提出了许多有创见的新思想。伯克利率先在提出了许多有创见的新思想。伯克利率先在19821982年完成年完成了了RISC IRISC I型型3232位芯片的设计,斯坦福大学则在位芯片的设计,斯坦福大学则在John HennessyJohn Hennessy(现任校长)现任校长)带领下于带领下于19831983年完成了第一个采用年完成了第一个采用RISCRISC理念的商用理念的商用MIPSMIPS微处理器微处理器。19841984年年HennessyHennessy等人创建了等人创建了MIPSMIPS计算机公司,计算机公司,19981998年改名为年改名为MIPSMIPS技术技术公司(美普思科技公司,公司(美普思科技公司,MIPS Technologies IncMIPS Technologies Inc),),目前是美国最著名的目前是美国最著名的芯片设计公司之一。芯片设计公司之一。MIPSMIPS技术公司本身不生产微处理器,它只设计高性能技术公司本身不生产微处理器,它只设计高性能工业级的工业级的3232位和位和6464位位CPUCPU的结构体系,并且向其它半导体公司提供使用其内的结构体系,并且向其它半导体公司提供使用其内核(核(IPIP)的授权,用于生产基于的授权,用于生产基于MIPSMIPS而又各具特色的微处理器。而又各具特色的微处理器。19991999年年MIPSMIPS技术公司发布了技术公司发布了MIPS32MIPS32和和MIPS64MIPS64架构标准。架构标准。MIPSMIPS的通用微处理器主要用于构建高性能工作站、服务器和超级计算的通用微处理器主要用于构建高性能工作站、服务器和超级计算机系统,其嵌入式产品在机系统,其嵌入式产品在19991999年以前全球销量第一,目前也仅次于年以前全球销量第一,目前也仅次于ARMARM。2014.2.173计算机系统结构 MIPS处理器处理器MIPSMIPS的意思是的意思是“无内部互锁流水级的微处理器无内部互锁流水级的微处理器”(Microprocessor Microprocessor without interlocked piped stageswithout interlocked piped stages),),其机制是尽量利用软件办法避免流其机制是尽量利用软件办法避免流水线中的数据相关问题。水线中的数据相关问题。MIPSMIPS具有强大的应用基础,能在具有强大的应用基础,能在MIPSMIPS上运行的操作系统,包括上运行的操作系统,包括LinuxLinux、WindRiverWindRiver、WinCEWinCE、GNUGNU、和和MontaMonta Vista Vista等;支持等;支持1414种编译器,包括种编译器,包括MIPSMIPS、SDESDE、Green HillsGreen Hills、GNUGNU和和WindRiverWindRiver等;支持等;支持1515种调试器,包括种调试器,包括GNUGNU、Green Green HillsHills、WindRiverWindRiver、ASHLINGASHLING和和FS2FS2等;支持等;支持1818种仿真工具,包括种仿真工具,包括Mentor Mentor GraphicsGraphics、SynopsysSynopsys、CoWareCoWare和和CandenceCandence等。等。中国科学院计算所的龙芯中国科学院计算所的龙芯1 1和和2 2都采用都采用6464位位MIPSMIPS指令架构。中国龙芯已与指令架构。中国龙芯已与MIPSMIPS公司合作,购买其指令系统授权,以便批量生产与出口。公司合作,购买其指令系统授权,以便批量生产与出口。2014.2.174计算机系统结构2.6.1 MIPS的寄存器(的寄存器(P47)32 32个个6464位通用寄存器(位通用寄存器(GPRsGPRs),),也称为整数寄存器也称为整数寄存器名称是名称是R0R0,R1R1,R31R31(也可写为也可写为$0$0,$1 1,$3131)R0R0的值永远是的值永远是0 0,可用作源寄存器,也可作为无用结果的目的寄存器;,可用作源寄存器,也可作为无用结果的目的寄存器;R31R31用于存放跳转并链接类指令的返回地址。用于存放跳转并链接类指令的返回地址。32 32个个6464位浮点数寄存器(位浮点数寄存器(FPRsFPRs)F0F0,F1F1,F31F31用来存放用来存放3232个单精度浮点数(个单精度浮点数(3232位),也可以用来存放位),也可以用来存放3232个双精度浮个双精度浮点数(点数(6464位)。位)。存储单精度浮点数(存储单精度浮点数(3232位)时,只用到位)时,只用到FPRFPR的一半,其另一半没用。的一半,其另一半没用。特殊功能寄存器特殊功能寄存器PCPC(program counterprogram counter,程序计数寄存器)程序计数寄存器)HIHI(整数乘除结果高位寄存器,除法余数)整数乘除结果高位寄存器,除法余数)LOLO(整数乘除结果低位寄存器,除法的商整数乘除结果低位寄存器,除法的商)它们可以与通用寄存器交换数据。它们可以与通用寄存器交换数据。浮点状态寄存器:用来保存有关浮点操作结果的信息。浮点状态寄存器:用来保存有关浮点操作结果的信息。2014.2.175计算机系统结构MIPS的寄存器别名(程序员习惯用法)的寄存器别名(程序员习惯用法)MIPSMIPS编译器支持一些专业程序员对编译器支持一些专业程序员对3232个个通用寄存器通用寄存器GPRGPR(GENERAL GENERAL PURPOSE REGISTERPURPOSE REGISTER)约定的习惯性用法(非强制的):约定的习惯性用法(非强制的):REGISTER NAMEREGISTER NAMEUSAGE USAGE$0$zero$0$zero常量常量0(0(constant value 0)constant value 0)$2-$3$v0-$v1$2-$3$v0-$v1函数调用返回值函数调用返回值(values for results and values for results and expression evaluation)expression evaluation)$4-$7$a0-$a3$4-$7$a0-$a3函数调用参数函数调用参数(arguments)arguments)$8-$15$t0-$t7$8-$15$t0-$t7暂时的暂时的(或随便用的或随便用的)$16-$23$16-$23$s0-$s7s0-$s7保存的保存的(或如果用,需要或如果用,需要SAVE/RESTORESAVE/RESTORE的的)()(saved)saved)$24-$25$t8-$t9$24-$25$t8-$t9暂时的暂时的(或随便用的或随便用的)$26-$27$k0-$k1$26-$27$k0-$k1由操作系统的异常或中断处理程序使用由操作系统的异常或中断处理程序使用$28$28$gpgp全局指针全局指针(Global Pointer)Global Pointer)$29$sp$29$sp堆栈指针堆栈指针(Stack Pointer)Stack Pointer)$30$30$fpfp帧指针帧指针(Frame Pointer)Frame Pointer)(BNN(BNN:fpfp is stale is stale acutallyacutally,and can be simply used as$t8),and can be simply used as$t8)$31$31$rara返回地址返回地址(return address)return address)2014.2.176计算机系统结构2.6.2 MIPS的数据表示的数据表示整数整数字节(字节(8 8位)位)半字(半字(1616位)位)字(字(3232位)位)双字(双字(6464位)位)浮点数浮点数单精度浮点数(单精度浮点数(3232位)位)双精度浮点数(双精度浮点数(6464位)位)字节、半字或者字在装入字节、半字或者字在装入6464位寄存器时,用零扩展或者用符号位扩展来填位寄存器时,用零扩展或者用符号位扩展来填充该寄存器的剩余部分。装入以后,对它们将按照充该寄存器的剩余部分。装入以后,对它们将按照6464位整数的方式进行运算。位整数的方式进行运算。2014.2.177计算机系统结构2.6.3 MIPS的数据寻址方式(的数据寻址方式(P47)立即数寻址与偏移量寻址;立即数寻址与偏移量寻址;立即数字段和偏移量字段都是立即数字段和偏移量字段都是1616位的。位的。寄存器间接寻址是通过把寄存器间接寻址是通过把0 0作为偏移量来实现的;作为偏移量来实现的;16 16位绝对寻址是通过把位绝对寻址是通过把R0R0(其值永远为其值永远为0 0)作为基址寄存器来完成的;)作为基址寄存器来完成的;MIPS MIPS的存储器按字节寻址,地址为的存储器按字节寻址,地址为6464位;位;所有存储器访问必须是边界对齐的,即访问地址必须是该数据长度(字节所有存储器访问必须是边界对齐的,即访问地址必须是该数据长度(字节数)的整倍数,又叫整数边界原则;数)的整倍数,又叫整数边界原则;MIPS MIPS的存储器按字节编制;的存储器按字节编制;所有数据字、指令字从最高有效位开始依次标记为所有数据字、指令字从最高有效位开始依次标记为bit 0bit 0、1 1、2 2;MIPSMIPS处理器的存储顺序,可以设置为处理器的存储顺序,可以设置为“小端字节表示顺序小端字节表示顺序”(LittileLittile-EndianEndian,低位字节放在低地址低位字节放在低地址)或者或者“大端字节表示顺序大端字节表示顺序”(Big-Big-EndianEndian,高位字节放在低地址,以便适合网络数据包内顺序高位字节放在低地址,以便适合网络数据包内顺序)。)。在下文使用的在下文使用的MIPS64MIPS64模拟器中采用模拟器中采用“小端字节表示顺序小端字节表示顺序”。2014.2.178计算机系统结构2.6.4 MIPS指令格式(指令格式(P48)MIPS32 MIPS32和和MIPS64MIPS64体系结构定义了兼容的体系结构定义了兼容的3232位和位和6464位处理机指令位处理机指令 使用条件编译或宏汇编指令能写出可同时在使用条件编译或宏汇编指令能写出可同时在MIPS32MIPS32和和MIPS64MIPS64上运行的程序上运行的程序 寻址方式编码到操作码中寻址方式编码到操作码中 所有的指令都是所有的指令都是3232位的位的 操作码占操作码占6 6位位 3 3种指令格式(种指令格式(3种格式中,同名字段的位置固定不变)种格式中,同名字段的位置固定不变)2014.2.179计算机系统结构2.6.4 MIPS指令格式指令格式II类指令类指令 包括所有的包括所有的loadload和和storestore指令,立即数指令,分支指令,寄存器跳转指令,指令,立即数指令,分支指令,寄存器跳转指令,寄存器链接跳转指令。寄存器链接跳转指令。立即数字段为立即数字段为1616位,用于提供立即数或偏移量。位,用于提供立即数或偏移量。load load指令指令 访存有效地址:访存有效地址:RegsRegs rsrs immediateimmediate 从存储器取来的数据放入寄存器从存储器取来的数据放入寄存器rtrt storestore指令指令 访存有效地址:访存有效地址:RegsRegs rsrs immediateimmediate 要存入存储器的数据放在寄存器要存入存储器的数据放在寄存器rtrt中中 立即数指令立即数指令 RegsRegs rtrt RegsRegs rsrs op immediate op immediate 分支指令分支指令 转移目标地址:转移目标地址:RegsRegs rsrs immediateimmediate,rtrt无用无用 寄存器跳转、寄存器跳转并链接寄存器跳转、寄存器跳转并链接 转移目标地址为转移目标地址为RegsRegs rsrs 2014.2.1710计算机系统结构2.6.4 MIPS指令格式指令格式RR类指令类指令 包括包括ALUALU指令,专用寄存器读指令,专用寄存器读/写指令,写指令,movemove指令等。指令等。ALU ALU指令指令 RegsRegsrd rd RegsRegs rsrs funct Regsfunct Regs rtrt functfunct为具体的运算操作编码为具体的运算操作编码2014.2.1711计算机系统结构2.6.4 MIPS指令格式指令格式JJ类指令类指令 包括跳转指令,跳转并链接指令,自陷指令,异常返回指令。包括跳转指令,跳转并链接指令,自陷指令,异常返回指令。在这类指令中,指令字的低在这类指令中,指令字的低2626位是偏移量,它与位是偏移量,它与PCPC值相加形成跳转的地址。值相加形成跳转的地址。2014.2.1712计算机系统结构2.6.5 MIPS的操作(的操作(P49)MIPS MIPS指令可以分为四大类指令可以分为四大类 load load和和storestore ALU ALU操作操作 分支与跳转分支与跳转 浮点操作浮点操作 符号的意义符号的意义 xxn ny y:从从y y传送传送n n位到位到x xx x,yzyz:把把z z传送到传送到x x和和y y下标:表示字段中具体的位;下标:表示字段中具体的位;对于指令和数据,按从最高位到最低位(即从左到右)的顺序依对于指令和数据,按从最高位到最低位(即从左到右)的顺序依次进行编号,最高位为第次进行编号,最高位为第0 0位,次高位为第位,次高位为第1 1位,依此类推。位,依此类推。下标可以是一个数字,也可以是一个范围。下标可以是一个数字,也可以是一个范围。例如:例如:RegsRegsR4R40 0:寄存器寄存器R4R4的符号位的符号位 RegsRegsR4R456-6356-63:R4R4的最低字节的最低字节 2014.2.1713计算机系统结构2.6.5 MIPS的操作(续的操作(续)MemMem:表示主存;表示主存;按字节寻址,可以传输任意个字节。按字节寻址,可以传输任意个字节。上标:用于表示对字段进行复制的次数。上标:用于表示对字段进行复制的次数。例如:例如:0 03232表示一个表示一个3232位长的全位长的全0 0字段字段符号符号#:用于两个字段的拼接,并且可以出现在数据传送的任何一边。:用于两个字段的拼接,并且可以出现在数据传送的任何一边。举例举例:R8R8、R6R6是是6464位的寄存器,下式位的寄存器,下式RegsRegsR8R832-6332-63 3232(MemMem RegsRegsR6R60 0)2424#MemMem RegsRegsR6R6表示的意义是:以表示的意义是:以R6R6的内容作为地址访问内存,得到的字节按符号位扩展为的内容作为地址访问内存,得到的字节按符号位扩展为3232位后存入位后存入R8R8的低的低3232位,位,R8R8的高的高3232位(即位(即RegsRegsR80-31R80-31)不变。不变。2014.2.1714计算机系统结构 load和和store指令指令指令举例指令举例 指令名称指令名称 含含 义义 LD R2LD R2,20(R3)20(R3)装入双字装入双字 RegsR2RegsR264 64 Mem20+RegsR3 Mem20+RegsR3 LW R2LW R2,40(R3)40(R3)装入字装入字 RegsR2RegsR264 64(Mem40+RegsR3(Mem40+RegsR30 0)32 32#Mem40+RegsR3 Mem40+RegsR3 LB R2LB R2,30(R3)30(R3)装入字节装入字节 RegsR2RegsR264 64(Mem30+RegsR3(Mem30+RegsR30 0)5656#Mem30+RegsR3 Mem30+RegsR3 LBU R2LBU R2,40(R3)40(R3)装入无符号字节装入无符号字节 RegsR2RegsR264 64 0 05656#Mem40+RegsR3#Mem40+RegsR3 LH R2LH R2,30(R3)30(R3)装入半字装入半字 RegsR2RegsR264 64(Mem30+RegsR3(Mem30+RegsR30 0)4848#Mem30+RegsR3#Mem31+RegsR3 Mem30+RegsR3#Mem31+RegsR3 L.S F2L.S F2,60(R4)60(R4)装入单精度浮点数装入单精度浮点数RegsF2RegsF264 64 Mem60+RegsR4#0Mem60+RegsR4#032 32 L.D F2L.D F2,40(R3)40(R3)装入双精度浮点数装入双精度浮点数 RegsF2RegsF26464 Mem40+RegsR3 Mem40+RegsR3 SD R4SD R4,300(R5)300(R5)保存双字保存双字 Mem300+RegsR5Mem300+RegsR564 64 RegsR4 RegsR4 SW R4SW R4,300(R5)300(R5)保存字保存字 Mem300+RegsR5Mem300+RegsR53232 RegsR4 RegsR4 S.S F2S.S F2,40(R2)40(R2)保存单精度浮点数保存单精度浮点数Mem40+RegsR2Mem40+RegsR232 32 RegsF2 RegsF2 031031 SH R5SH R5,502(R4)502(R4)保存半字保存半字Mem502+RegsR4Mem502+RegsR41616 RegsR5 RegsR5 48.6348.63 2014.2.1715计算机系统结构 ALU指令指令 寄存器寄存器型(寄存器寄存器型(RRRR型)指令或立即数型型)指令或立即数型 算术和逻辑操作:加、减、与、或、异或和移位等算术和逻辑操作:加、减、与、或、异或和移位等 R0 R0的值永远是的值永远是0 0,它可以用来合成一些常用的操作。,它可以用来合成一些常用的操作。例如:例如:DADDIU R1DADDIU R1,R0R0,#100#100 给寄存器给寄存器R1R1装入常数装入常数100100 DADD R1 DADD R1,R0R0,R2 R2 把寄存器把寄存器R2R2中的数据传送到寄存器中的数据传送到寄存器R1R1指令举例指令举例 指令名称指令名称 含义含义 DADDUDADDUR1R1,R2R2,R3 R3 无符号加无符号加 RegsR1 RegsR2+RegsR3 RegsR1 RegsR2+RegsR3 DADDIU DADDIU R4R4,R5R5,#6#6 加无符号立即数加无符号立即数 RegsR4 RegsR5+6 RegsR4 RegsR5+6 LUILUIR1R1,#4#4 把立即数装入到一个字把立即数装入到一个字的高的高1616位位 RegsR1 0RegsR1 03232#4#0#4#01616DSLLDSLLR1R1,R2R2,#5#5 逻辑左移逻辑左移 RegsR1 RegsR25 RegsR1 RegsR25 DSLT R1DSLT R1,R2R2,R3 R3 置小于置小于 If(RegsR2 RegsR3)If(RegsR2 RegsR3)RegsR1 1 else RegsR10 RegsR1 1 else RegsR10 2014.2.1716计算机系统结构2.6.6 MIPS的控制指令(的控制指令(P50)由一组跳转和一组分支指令来实现控制流的改变由一组跳转和一组分支指令来实现控制流的改变 典型的典型的MIPSMIPS控制指令控制指令指令举例指令举例 指令名称指令名称 含义含义 J name J name 跳转跳转 PC PC 36633663 name2 name2JAL name JAL name 跳转并链接跳转并链接 RegsR31PC+4RegsR31PC+4;PC PC 36633663namename22;(PC+4)(PC+4)2 22727)name)name(PC+4)+2(PC+4)+22727)JALR R3 JALR R3 寄存器跳转并链接寄存器跳转并链接 RegsR31PC+4RegsR31PC+4;PC RegsR3 PC RegsR3 JR R5 JR R5 寄存器跳转寄存器跳转 PC PC RegsRegsR5 R5 BEQZ R4BEQZ R4,name name 等于零时分支等于零时分支 if(if(RegsRegsR4=0)PCname R4=0)PCname ;(PC+4)(PC+4)2 21717)name)name(PC+4)+2(PC+4)+21717)BNE R3BNE R3,R4R4,name name 不相等时分支不相等时分支 if(if(RegsRegsR3!=R3!=RegsRegsR4)PCnameR4)PCname(PC+4)(PC+4)2 21717)name)name(PC+4)+2(PC+4)+21717)MOVZ R1MOVZ R1,R2R2,R3 R3 等于零时移动等于零时移动 if(RegsR3=0)RegsR1if(RegsR3=0)RegsR1 RegsR2 RegsR2 2014.2.1717计算机系统结构 跳转指令跳转指令根据跳转指令确定目标地址的方式不同以及跳转时是否链接,可以把跳根据跳转指令确定目标地址的方式不同以及跳转时是否链接,可以把跳转指令分成转指令分成4 4种。种。确定目标地址的方式确定目标地址的方式 把指令中的把指令中的2626位偏移量左移位偏移量左移2 2位(因为指令字长都是位(因为指令字长都是4 4个字节)后,个字节)后,替换程序计数器的低替换程序计数器的低2828位;位;间接跳转:由指令中指定的一个寄存器来给出转移目标地址。间接跳转:由指令中指定的一个寄存器来给出转移目标地址。跳转的两种类型跳转的两种类型 简单跳转:把目标地址送入程序计数器。简单跳转:把目标地址送入程序计数器。跳转并链接:把目标地址送入程序计数器,把返回地址(即顺序下跳转并链接:把目标地址送入程序计数器,把返回地址(即顺序下一条指令的地址)放入寄存器一条指令的地址)放入寄存器R31R31。2014.2.1718计算机系统结构 分支指令(条件转移)分支指令(条件转移)分支条件由指令确定分支条件由指令确定例如:测试某个寄存器的值是否为零例如:测试某个寄存器的值是否为零提供一组比较指令,用于比较两个寄存器的值。提供一组比较指令,用于比较两个寄存器的值。例如:例如:“置小于置小于”指令指令有的分支指令可以直接判断寄存器内容是否为负,或者比较两个寄存器有的分支指令可以直接判断寄存器内容是否为负,或者比较两个寄存器是否相等。是否相等。分支的目标地址分支的目标地址由由1616位带符号偏移量左移两位后和位带符号偏移量左移两位后和PCPC相加的结果来决定相加的结果来决定一条浮点条件分支指令:通过测试浮点状态寄存器来决定是否进行分支。一条浮点条件分支指令:通过测试浮点状态寄存器来决定是否进行分支。2014.2.1719计算机系统结构2.6.7 MIPS的浮点操作(的浮点操作(P51)由操作码指出操作数是单精度(由操作码指出操作数是单精度(SPSP)或双精度(或双精度(DPDP)后缀后缀S S:表示操作数是单精度浮点数表示操作数是单精度浮点数后缀后缀D D:表示是双精度浮点数表示是双精度浮点数 浮点操作浮点操作包括加、减、乘、除,分别有单精度和双精度指令。包括加、减、乘、除,分别有单精度和双精度指令。浮点数比较指令浮点数比较指令根据比较结果设置浮点状态寄存器中的某一位,以便于后面的分支指根据比较结果设置浮点状态寄存器中的某一位,以便于后面的分支指令令BC1TBC1T(若真则分支)或若真则分支)或BC1FBC1F(若假则分支)测试该位,以决定是否进若假则分支)测试该位,以决定是否进行分支。行分支。2014.2.1720计算机系统结构注意浮点数的存储格式只有注意浮点数的存储格式只有64位双精度这一种,没有位双精度这一种,没有32位单精度数。位单精度数。MIPS64伪指令伪指令2014.2.1721计算机系统结构MIPS64指令集指令集12014.2.1722计算机系统结构MIPS64指令集指令集22014.2.1723计算机系统结构MIPS64指令集指令集32014.2.1724计算机系统结构MIPS64指令集指令集42014.2.1725计算机系统结构MIPS64指令集指令集52014.2.1726计算机系统结构MIPS64指令集指令集62014.2.1727计算机系统结构MIPS64模拟器介绍模拟器介绍12014.2.1728计算机系统结构MIPS64模拟器介绍模拟器介绍22014.2.1729计算机系统结构MIPS64模拟器介绍模拟器介绍32014.2.1730计算机系统结构MIPS64模拟器的存储器映射模拟器的存储器映射I/O地址与命令地址与命令CONTROL:.word32 0 x10000CONTROL:.word32 0 x10000;控制寄存器(映射地址)控制寄存器(映射地址)DATA:.word32 0 x10008DATA:.word32 0 x10008;数据寄存器(映射地址)数据寄存器(映射地址)Set CONTROL=1,Set CONTROL=1,将将DATADATA作为无符号整型数输出作为无符号整型数输出Set CONTROL=2,Set CONTROL=2,将将DATADATA作为有符号整型数输出作为有符号整型数输出Set CONTROL=3,Set CONTROL=3,将将DATADATA作为浮点数输出作为浮点数输出Set CONTROL=4,Set CONTROL=4,将将DATADATA作为输出字串的首地址作为输出字串的首地址Set CONTROL=5,Set CONTROL=5,将将DATA+5 DATA+5 作为作为x x坐标,坐标,DATA+4DATA+4作为作为y y坐标,坐标,DATADATA作为作为RGBRGB彩色值输出彩色值输出Set CONTROL=6,Set CONTROL=6,清除终端屏幕清除终端屏幕Set CONTROL=7,Set CONTROL=7,清除图形屏幕清除图形屏幕Set CONTROL=8,Set CONTROL=8,从键盘读从键盘读DATADATA(整型数或浮点数)整型数或浮点数)Set CONTROL=9,Set CONTROL=9,从从DATADATA读读1 1字节,无字符回显字节,无字符回显数据地址数据地址0 0 x00000 x00000程序存储器程序存储器程序起点程序起点lwulwu r24,DATA(r0)r24,DATA(r0)lwulwu r25,CONTROL(r0)r25,CONTROL(r0)指令地址指令地址0 0 x00000 x00000数据存储器数据存储器常规数据区常规数据区0 0 x10000 x100000 0 x10008x10008sdsd r9,0(r24)r9,0(r24)sdsd r2,0(r25)r2,0(r25)控制寄存器控制寄存器数据寄存器数据寄存器仿真非智能终端仿真非智能终端2014.2.1731计算机系统结构MIPS64模拟器演示实验模拟器演示实验1 整数加法整数加法文件名:文件名:sum.s.dataA:.word 10B:.word 8C:.word 0 .textmain:ld r4,A(r0);r4(A)ld r5,B(r0);r5(B)dadd r3,r4,r5;r3r4+r5 sd r3,C(r0);Cr3 halt2014.2.1732计算机系统结构MIPS64模拟器演示实验模拟器演示实验2 阶乘阶乘1 1文件名:文件名:factorial.s;阶乘示例阶乘示例;返回值放返回值放r10;.datanumber:.word 10;此数未用,可能想作为输入值的上限此数未用,可能想作为输入值的上限title:.asciiz“factorial program n=“;提示字符串提示字符串CONTROL:.word32 0 x10000DATA:.word32 0 x10008 .text lwu r21,CONTROL(r0);r21指向指向CONTROL单元(端口)单元(端口)lwu r22,DATA(r0);r22指向指向DATA单元(端口)单元(端口)2014.2.1733计算机系统结构MIPS64模拟器演示实验模拟器演示实验2 阶乘阶乘2 2 daddi r24,r0,4;输出输出ascii字串(提示信息)字串(提示信息)daddi r1,r0,title sd r1,(r22)sd r24,(r21)daddi r24,r0,8;从键盘读输入值到从键盘读输入值到r1(整型量)整型量)sd r24,(r21)ld r1,(r22)start:daddi r29,r0,0 x80;r29指向堆栈区起点(十进制值指向堆栈区起点(十进制值=128)jal factorial;调阶乘子程序,返回值在调阶乘子程序,返回值在r10(整型量)整型量)daddi r24,r0,1;输出输出r10的结果的结果 sd r10,(r22)sd r24,(r21)halt;停机停机2014.2.1734计算机系统结构MIPS64模拟器演示实验模拟器演示实验2 阶乘阶乘3 3;阶乘子程序,入口参数在阶乘子程序,入口参数在r1,返回值在返回值在r10;factorial:slti r10,r1,2;如果如果r12(即即r1=1)则则r101,否则否则r100 bnez r10,out;如果如果r10=1则子程序返回则子程序返回 sd r31,(r29);子程序返回地址压进堆栈子程序返回地址压进堆栈 daddi r29,r29,8;堆栈指针堆栈指针+8 sd r1,(r29);r1当前值压进堆栈当前值压进堆栈 daddi r29,r29,8;堆栈指针堆栈指针+8 daddi r1,r1,-1;r1r11 jal factorial;递归调用,将乘数序列依次入栈(递归调用,将乘数序列依次入栈(n,3,2)2014.2.1735计算机系统结构MIPS64模拟器演示实验模拟器演示实验2 阶乘阶乘4 4 dadd r4,r0,r10;递归出口(首次递归出口(首次r10=1),),r4r10 daddi r29,r29,-8;堆栈指针堆栈指针8 ld r3,(r29);出栈:出栈:r3栈顶单元栈顶单元 dmulu r3,r3,r4;r3r3r4 dadd r10,r0,r3;r10乘积乘积r3 daddi r29,r29,-8;堆栈指针堆栈指针8 ld r31,0(r29);r31返回地址返回地址out:jr r31;子程序返回到子程序返回到r31所指的地址所指的地址2014.2.1736计算机系统结构MIPS64模拟器演示实验模拟器演示实验3 存储器映射输出存储器映射输出文件名:文件名:output.soutput.s.datadataA:A:.word 10.word 10B:B:.word 8.word 8C:C:.word 0.word 0CR:CR:.word32 0 x10000.word32 0 x10000DR:DR:.word32 0 x10008.word32 0 x10008.text.textmain:main:ld r4,A(r0)ld r4,A(r0);r4(A);r4(A)ld r5,B(r0)ld r5,B(r0);r5(B);r5(B)dadddadd r3,r4,r5 r3,r4,r5;r3r4+r5;r3r4+r5sdsd r3,C(r0)r3,C(r0);Cr3;Cr3lwulwu r1,CR(r0)r1,CR(r0);r1;r1指向指向ControlControl寄存器寄存器lwulwu r2,DR(r0)r2,DR(r0);r2;r2指向指向DataData寄存器寄存器daddidaddi r10,r0,1 r10,r0,1;准备命令准备命令1 1(将(将DATADATA作为无符号整型数输出)作为无符号整型数输出)sdsd r3,(r2)r3,(r2);Data;Data寄存器寄存器r3r3sdsd r10,(r1)r10,(r1);Control;Control寄存器寄存器11halthalt2014.2.1737计算机系统结构MIPS64模拟器演示实验模拟器演示实验4存储器映射输入存储器映射输入/输出输出数据地址数据地址0 0 x00000 x00000程序存储器程序存储器程序起点程序起点lwulwu r24,DATA(r0)r24,DATA(r0)lwulwu r25,CONTROL(r0)r25,CONTROL(r0

    注意事项

    本文(计算机系统结构》电子教案(3).ppt)为本站会员(赵**)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开