计算机系统结构》电子教案(3).ppt
《计算机系统结构》电子教案(3).ppt》由会员分享,可在线阅读,更多相关《计算机系统结构》电子教案(3).ppt(45页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第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产
2、生的背景:产生的背景:20%20%与与80%80%规律规律(2)(2)RISCRISC设计的基本原则:设计的基本原则:只设置最常用的简单指令,凡遇复杂操作均用多条简单指令实现;只设置最常用的简单指令,凡遇复杂操作均用多条简单指令实现;指令长度固定,操作码与操作数长度都尽量统一;指令长度固定,操作码与操作数长度都尽量统一;基本指令的启动时间间隔降低到基本指令的启动时间间隔降低到1 1个时钟周期;个时钟周期;访问主存只有访问主存只有loadload和和storestore指令,用变址寻址;指令,用变址寻址;尽量采用硬连逻辑对指令译码;尽量采用硬连逻辑对指令译码;为了加快执行速度,在编译过程中对目标
3、代码结构进行优化;为了加快执行速度,在编译过程中对目标代码结构进行优化;(3)(3)RISCRISC性能优势的原因性能优势的原因采用采用RISCRISC技术的主要动机是使各条指令的执行时序尽可能一致,技术的主要动机是使各条指令的执行时序尽可能一致,CPUCPU在在执行时间上可以把它们安排得更紧凑,就像许多大小相近的箱子容易被堆执行时间上可以把它们安排得更紧凑,就像许多大小相近的箱子容易被堆放得更密集一样。这样机器内的各种资源可以充分利用,单位时间内能执放得更密集一样。这样机器内的各种资源可以充分利用,单位时间内能执行更多的指令,速度更快。行更多的指令,速度更快。这方面的具体内容,在第这方面的具
4、体内容,在第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)和斯坦福)和斯坦福大学(大学(
5、StanfordStanford)提出了许多有创见的新思想。伯克利率先在提出了许多有创见的新思想。伯克利率先在19821982年完成年完成了了RISC IRISC I型型3232位芯片的设计,斯坦福大学则在位芯片的设计,斯坦福大学则在John HennessyJohn Hennessy(现任校长)现任校长)带领下于带领下于19831983年完成了第一个采用年完成了第一个采用RISCRISC理念的商用理念的商用MIPSMIPS微处理器微处理器。19841984年年HennessyHennessy等人创建了等人创建了MIPSMIPS计算机公司,计算机公司,19981998年改名为年改名为MIPSM
6、IPS技术技术公司(美普思科技公司,公司(美普思科技公司,MIPS Technologies IncMIPS Technologies Inc),),目前是美国最著名的目前是美国最著名的芯片设计公司之一。芯片设计公司之一。MIPSMIPS技术公司本身不生产微处理器,它只设计高性能技术公司本身不生产微处理器,它只设计高性能工业级的工业级的3232位和位和6464位位CPUCPU的结构体系,并且向其它半导体公司提供使用其内的结构体系,并且向其它半导体公司提供使用其内核(核(IPIP)的授权,用于生产基于的授权,用于生产基于MIPSMIPS而又各具特色的微处理器。而又各具特色的微处理器。199919
7、99年年MIPSMIPS技术公司发布了技术公司发布了MIPS32MIPS32和和MIPS64MIPS64架构标准。架构标准。MIPSMIPS的通用微处理器主要用于构建高性能工作站、服务器和超级计算的通用微处理器主要用于构建高性能工作站、服务器和超级计算机系统,其嵌入式产品在机系统,其嵌入式产品在19991999年以前全球销量第一,目前也仅次于年以前全球销量第一,目前也仅次于ARMARM。2014.2.173计算机系统结构 MIPS处理器处理器MIPSMIPS的意思是的意思是“无内部互锁流水级的微处理器无内部互锁流水级的微处理器”(Microprocessor Microprocessor wi
8、thout interlocked piped stageswithout interlocked piped stages),),其机制是尽量利用软件办法避免流其机制是尽量利用软件办法避免流水线中的数据相关问题。水线中的数据相关问题。MIPSMIPS具有强大的应用基础,能在具有强大的应用基础,能在MIPSMIPS上运行的操作系统,包括上运行的操作系统,包括LinuxLinux、WindRiverWindRiver、WinCEWinCE、GNUGNU、和和MontaMonta Vista Vista等;支持等;支持1414种编译器,包括种编译器,包括MIPSMIPS、SDESDE、Green
9、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
10、指令架构。中国龙芯已与指令架构。中国龙芯已与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用于存放跳转并链
11、接类指令的返回地址。用于存放跳转并链接类指令的返回地址。32 32个个6464位浮点数寄存器(位浮点数寄存器(FPRsFPRs)F0F0,F1F1,F31F31用来存放用来存放3232个单精度浮点数(个单精度浮点数(3232位),也可以用来存放位),也可以用来存放3232个双精度浮个双精度浮点数(点数(6464位)。位)。存储单精度浮点数(存储单精度浮点数(3232位)时,只用到位)时,只用到FPRFPR的一半,其另一半没用。的一半,其另一半没用。特殊功能寄存器特殊功能寄存器PCPC(program counterprogram counter,程序计数寄存器)程序计数寄存器)HIHI(整数乘
12、除结果高位寄存器,除法余数)整数乘除结果高位寄存器,除法余数)LOLO(整数乘除结果低位寄存器,除法的商整数乘除结果低位寄存器,除法的商)它们可以与通用寄存器交换数据。它们可以与通用寄存器交换数据。浮点状态寄存器:用来保存有关浮点操作结果的信息。浮点状态寄存器:用来保存有关浮点操作结果的信息。2014.2.175计算机系统结构MIPS的寄存器别名(程序员习惯用法)的寄存器别名(程序员习惯用法)MIPSMIPS编译器支持一些专业程序员对编译器支持一些专业程序员对3232个个通用寄存器通用寄存器GPRGPR(GENERAL GENERAL PURPOSE REGISTERPURPOSE REGIS
13、TER)约定的习惯性用法(非强制的):约定的习惯性用法(非强制的):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函数调用参数函数调用参数(argumen
14、ts)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 Poi
15、nter)$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的数据表示的数据表示整数整数字
16、节(字节(8 8位)位)半字(半字(1616位)位)字(字(3232位)位)双字(双字(6464位)位)浮点数浮点数单精度浮点数(单精度浮点数(3232位)位)双精度浮点数(双精度浮点数(6464位)位)字节、半字或者字在装入字节、半字或者字在装入6464位寄存器时,用零扩展或者用符号位扩展来填位寄存器时,用零扩展或者用符号位扩展来填充该寄存器的剩余部分。装入以后,对它们将按照充该寄存器的剩余部分。装入以后,对它们将按照6464位整数的方式进行运算。位整数的方式进行运算。2014.2.177计算机系统结构2.6.3 MIPS的数据寻址方式(的数据寻址方式(P47)立即数寻址与偏移量寻址;立即数
17、寻址与偏移量寻址;立即数字段和偏移量字段都是立即数字段和偏移量字段都是1616位的。位的。寄存器间接寻址是通过把寄存器间接寻址是通过把0 0作为偏移量来实现的;作为偏移量来实现的;16 16位绝对寻址是通过把位绝对寻址是通过把R0R0(其值永远为其值永远为0 0)作为基址寄存器来完成的;)作为基址寄存器来完成的;MIPS MIPS的存储器按字节寻址,地址为的存储器按字节寻址,地址为6464位;位;所有存储器访问必须是边界对齐的,即访问地址必须是该数据长度(字节所有存储器访问必须是边界对齐的,即访问地址必须是该数据长度(字节数)的整倍数,又叫整数边界原则;数)的整倍数,又叫整数边界原则;MIPS
18、 MIPS的存储器按字节编制;的存储器按字节编制;所有数据字、指令字从最高有效位开始依次标记为所有数据字、指令字从最高有效位开始依次标记为bit 0bit 0、1 1、2 2;MIPSMIPS处理器的存储顺序,可以设置为处理器的存储顺序,可以设置为“小端字节表示顺序小端字节表示顺序”(LittileLittile-EndianEndian,低位字节放在低地址低位字节放在低地址)或者或者“大端字节表示顺序大端字节表示顺序”(Big-Big-EndianEndian,高位字节放在低地址,以便适合网络数据包内顺序高位字节放在低地址,以便适合网络数据包内顺序)。)。在下文使用的在下文使用的MIPS64
19、MIPS64模拟器中采用模拟器中采用“小端字节表示顺序小端字节表示顺序”。2014.2.178计算机系统结构2.6.4 MIPS指令格式(指令格式(P48)MIPS32 MIPS32和和MIPS64MIPS64体系结构定义了兼容的体系结构定义了兼容的3232位和位和6464位处理机指令位处理机指令 使用条件编译或宏汇编指令能写出可同时在使用条件编译或宏汇编指令能写出可同时在MIPS32MIPS32和和MIPS64MIPS64上运行的程序上运行的程序 寻址方式编码到操作码中寻址方式编码到操作码中 所有的指令都是所有的指令都是3232位的位的 操作码占操作码占6 6位位 3 3种指令格式(种指令格
20、式(3种格式中,同名字段的位置固定不变)种格式中,同名字段的位置固定不变)2014.2.179计算机系统结构2.6.4 MIPS指令格式指令格式II类指令类指令 包括所有的包括所有的loadload和和storestore指令,立即数指令,分支指令,寄存器跳转指令,指令,立即数指令,分支指令,寄存器跳转指令,寄存器链接跳转指令。寄存器链接跳转指令。立即数字段为立即数字段为1616位,用于提供立即数或偏移量。位,用于提供立即数或偏移量。load load指令指令 访存有效地址:访存有效地址:RegsRegs rsrs immediateimmediate 从存储器取来的数据放入寄存器从存储器取来
21、的数据放入寄存器rtrt storestore指令指令 访存有效地址:访存有效地址:RegsRegs rsrs immediateimmediate 要存入存储器的数据放在寄存器要存入存储器的数据放在寄存器rtrt中中 立即数指令立即数指令 RegsRegs rtrt RegsRegs rsrs op immediate op immediate 分支指令分支指令 转移目标地址:转移目标地址:RegsRegs rsrs immediateimmediate,rtrt无用无用 寄存器跳转、寄存器跳转并链接寄存器跳转、寄存器跳转并链接 转移目标地址为转移目标地址为RegsRegs rsrs 201
22、4.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类指令类指令 包括跳转指令,跳转并链接指令,自陷指令,异常返回指令。包括跳转指令,跳转并链接指令,自陷指令,异常返回指令。在这类指令中,指令字
23、的低在这类指令中,指令字的低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下标:表示字段中具体的位;下标:表示字段中具体的位;对于指令和数据,按从最高位到最低位(即从左到右)的
24、顺序依对于指令和数据,按从最高位到最低位(即从左到右)的顺序依次进行编号,最高位为第次进行编号,最高位为第0 0位,次高位为第位,次高位为第1 1位,依此类推。位,依此类推。下标可以是一个数字,也可以是一个范围。下标可以是一个数字,也可以是一个范围。例如:例如:RegsRegsR4R40 0:寄存器寄存器R4R4的符号位的符号位 RegsRegsR4R456-6356-63:R4R4的最低字节的最低字节 2014.2.1713计算机系统结构2.6.5 MIPS的操作(续的操作(续)MemMem:表示主存;表示主存;按字节寻址,可以传输任意个字节。按字节寻址,可以传输任意个字节。上标:用于表示对
25、字段进行复制的次数。上标:用于表示对字段进行复制的次数。例如:例如:0 03232表示一个表示一个3232位长的全位长的全0 0字段字段符号符号#:用于两个字段的拼接,并且可以出现在数据传送的任何一边。:用于两个字段的拼接,并且可以出现在数据传送的任何一边。举例举例:R8R8、R6R6是是6464位的寄存器,下式位的寄存器,下式RegsRegsR8R832-6332-63 3232(MemMem RegsRegsR6R60 0)2424#MemMem RegsRegsR6R6表示的意义是:以表示的意义是:以R6R6的内容作为地址访问内存,得到的字节按符号位扩展为的内容作为地址访问内存,得到的字
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机系统 结构 电子 教案
限制150内