1 / 21

第二章 计算机指令集结构

第二章 计算机指令集结构. 指令集结构是系统结构的主要内容之一,其功能设计实际上就是确定软 / 硬件功能分配。 本章主要介绍 CISC 和 RISC 指令集结构的功能设计,重点学习典型的 RISC 指令集结构: MIPS 。 其余内容要求自学。. 2.1 CISC 计算机和 RISC 计算机. 计算机系统结构设计思想的转变 1. CISC 的设计思想 由于软硬件的局限,特别是存储器,当初人们普遍认为计算机的指令越丰富越好。在 R-R , R-M , M-M 三种指令中, M-M 被认为效率最高! 工艺技术发展后,问题出现了。.

jett
Download Presentation

第二章 计算机指令集结构

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第二章 计算机指令集结构 • 指令集结构是系统结构的主要内容之一,其功能设计实际上就是确定软/硬件功能分配。 • 本章主要介绍CISC和RISC指令集结构的功能设计,重点学习典型的RISC指令集结构:MIPS。 • 其余内容要求自学。

  2. 2.1 CISC计算机和RISC计算机 • 计算机系统结构设计思想的转变 1. CISC的设计思想 • 由于软硬件的局限,特别是存储器,当初人们普遍认为计算机的指令越丰富越好。在R-R,R-M,M-M三种指令中,M-M被认为效率最高! • 工艺技术发展后,问题出现了。

  3. 2.1 CISC计算机和RISC计算机 2. CISC指令系统的问题 1)20%与80%定律: 一个指令系统中大约20%的指令是经常被使用的,所占比例约为全部程序的80%;而剩下的80%指令很少被用到,只占全部程序的20%。把大量不经常使用的复杂指令设计在微程序控制器中,增加了控制器的设计难度。 2)编译难度的增加和译码时间的延长 单纯通过增加指令的复杂性已不能再提高程序的执行速度了。 3)VLSI技术进步提供的机遇 CPU内部只用布线逻辑可以实现基本指令控制。VLSI对规整的电路设计和制作特别有利。有利于增加大量寄存器。

  4. 2.1 CISC计算机和RISC计算机 二. RISC计算机 1. RISC的特点: 1)精简指令系统及其结构,仅保留使用频率高的指令。 2)不设(或尽量少用)微程序控制器,由硬连逻辑直接译码。 3)使用大量的通用寄存器。 4)由于精简指令系统一般是由频率高的简单指令组成。易于实现优化编译和流水线技术。

  5. 指令数量明显减少,长度等长。利于流水线的设计和工作效率提高。使绝大部分指令都能在1个时钟周期内执行完成--这是RISC技术的一个基本的目标。指令数量明显减少,长度等长。利于流水线的设计和工作效率提高。使绝大部分指令都能在1个时钟周期内执行完成--这是RISC技术的一个基本的目标。 简化寻址方式。 和存储器相关的指令只有LOAD/STORE。 取消控制存储器。改用硬连布线逻辑。空出的物理地方正好放大量的寄存器。 2. RISC计算机与CISC计算机的比较

  6. 2.1 CISC计算机和RISC计算机 CISC与RISC计算机的在程序执行时间上的比较 综合3个因素,RISC的运算速度要比CISC快约3倍。其中的关键是CPI的下降。

  7. 2.1 CISC计算机和RISC计算机 三. CISC和RISC的应用发展 1. IBM公司在1975年成功开发出第一款RISC处理器,从此RISC架构开始走进超级计算机中。除了IBM的Power和PowerPC 外,还有DEC的Alpha、SUN的SPARC、HP的PA-RISC、MIPS技术公司的 MIPS、ARM公司的ARM等等。 2. CISC却在PC上获得新生,微软与Intel唱起了“双黄戏”,一唱一合,顽固坚持CISC路线,搞X86处理器,为了保持软件兼容,PC必须一直延续X86架构无法脱离。(Windows系列+Intel X86系列)。

  8. 2.1 CISC计算机和RISC计算机 3. 发展RISC PC的只有苹果公司,它们的全系列PC都基于IBM的 PowerPC指令架构。但在2006年也开始转用Intel的处理器(x86架构) 。 4. 2011年1月,微软公司同ARM公司(全世界几乎所有的智能手机和平板电脑设备微处理器,包括iPhone和iPad的,都由ARM设计)合作决定其下一代Windows操作系统以ARM微处理器(RISC架构)的设计为基础。 5. 2012年6月,微软公司正式发布了其第一款搭载了最新的Windows8操作系统的自有品牌平板电脑Surface,并且将有两个版本,RT为标准版,采用ARM处理器,只运行Metro应用, 而Pro版将是一款全功能的PC机,采用intel处理器。

  9. 2.2 MIPS指令集结构 MIPS诞生于1980年代,是最早的RISC处理器之一。 一 . MIPS的寄存器 • 32个64位通用寄存器(GPRs) 也被称为整数寄存器,寄存器R0的值永远为0。 • 32个64位浮点数寄存器(FPRs) • 一些特殊寄存器 如浮点状态寄存器,可以与通用寄存器交换数据。

  10. 2.2 MIPS指令集结构 二 . MIPS的数据表示 1、整数:字节(8位)、半字(16位)、字(32位)、双字(64位) 2、浮点数:单精度浮点数(32位)、双精度浮点数(64位) • 字节、半字或者字在装入64位寄存器时,用零扩展或者用符号位扩展来填充该寄存器的剩余部分。装入以后,对它们将按照64位整数的方式进行运算。

  11. 2.2 MIPS指令集结构 三 . MIPS的指令格式 • 所有的指令都是32位的 • 操作码占6位,寻址方式编码到操作码中 • 3种指令格式:

  12. 5 16 6 5 rs rt immediate 操作码 立即数( ) 0 5 6 10 11 15 16 31 寄存器号 寄存器号 2.2 MIPS指令集结构 1、 I类指令 • load指令 • 访存有效地址:Regs[rs]+immediate • 从存储器取来的数据放入寄存器rt • store指令 • 访存有效地址:Regs[rs]+immediate • 要存入存储器的数据放在寄存器rt中

  13. 5 16 6 5 rs rt immediate 操作码 立即数( ) 0 5 6 10 11 15 16 31 寄存器号 寄存器号 2.2 MIPS指令集结构 1、 I类指令 • 立即数指令 • Regs[rt] ← Regs[rs] op immediate • 分支指令 • 转移目标地址:Regs[rs]+immediate,rt无用 • 寄存器跳转、寄存器跳转并链接 • 转移目标地址为Regs[rs]

  14. 5 5 5 6 6 5 rs rt rd func 操作码 shamt 0 5 6 10 11 15 16 25 26 31 20 21 源1 源2 目的 2.2 MIPS指令集结构 2、 R类指令 • 包括ALU指令、专用寄存器读/写指令、move指令等。 • ALU指令 • Regs[rd]← Regs[rs] func Regs[rt] • func为具体的运算操作编码 • shamt存放移位的位数, 也就是指令中的立即数

  15. 6 26 与 相加的偏移量 操作码 PC 0 5 6 31 2.2 MIPS指令集结构 3、 J类指令 • 包括跳转指令、跳转并链接指令、自陷指令、异常返回指令。 • 在这类指令中,指令字的低26位是偏移量,它与PC值相加形成跳转的地址。

  16. 2.2 MIPS指令集结构 四 . MIPS的操作 符号的意义: • x←ny:从y传送n位到x • x,y←z:把z传送到x和y • 下标:表示字段中具体的位; • 对于指令和数据,按从最高位到最低位(即从左到右)的顺序依次进行编号,最高位为第0位,次高位为第1位,依此类推。 • 下标可以是一个数字,也可以是一个范围。 例如:Regs[R4]0:寄存器R4的符号位 Regs[R4]56..63:R4的最低字节

  17. 2.2 MIPS指令集结构 • Mem:表示主存;按字节寻址,可以传输任意个字节。 • 上标:用于表示对字段进行复制的次数 例如:0 32:一个32位长的全0字段 • 符号##:用于两个字段的拼接,并且可以出现在数据传送的任何一边。

  18. 2.2 MIPS指令集结构 1、load和store 详见P45 表2.11

  19. 2.2 MIPS指令集结构 2、 ALU操作 详见P46 表2.12

  20. 2.2 MIPS指令集结构 3、分支和跳转 详见P46 表2.13

  21. 2.2 MIPS指令集结构 4、浮点操作 • 由操作码指出操作数是单精度(SP)或双精度(DP) • 后缀S:表示操作数是单精度浮点数 • 后缀D:表示是双精度浮点数 • 浮点操作 包括加、减、乘、除,分别有单精度和双精度指令。 • 浮点数比较指令

More Related