计算机系统结构全套课件-第2章-计算机指令集结构.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《计算机系统结构全套课件-第2章-计算机指令集结构.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机系统 结构 全套 课件 计算机 指令 集结
- 资源描述:
-
1、计算机系统结构计算机系统结构全套精品课件全套精品课件2813812.1 指令集结构的分类2.2 寻址技术2.3 指令集结构的功能设计2.4 操作数的类型、表示和大小2.5 指令集格式的设计2.6 DLX指令集结构第二章 计算机指令集结构设计4812.1 指令集结构的分类2.1.1 指令集结构分类根据根据五个因素五个因素对计算机指令集结构进行分类:对计算机指令集结构进行分类: (1)(1) 在在CPUCPU中操作数的存储方法中操作数的存储方法(2) (2) 指令中显式表示的操作数个数指令中显式表示的操作数个数 (3) (3) 操作数的寻址方式操作数的寻址方式 (4) (4) 指令集所提供的操作类
2、型指令集所提供的操作类型 (5) (5) 操作数的类型和大小操作数的类型和大小 第二章 计算机指令集结构设计5811. CPU中用来存储操作数的存储单元主要有:2. 指令中的操作数可以显式给出,也可以隐式地给出。3. CPU对操作数的不同存取方式 l 堆栈堆栈l 累加器累加器l 一组寄存器一组寄存器 CPUCPU中操作数的存储方法,中操作数的存储方法,是各种指令集结构是各种指令集结构之间最主要的区别所在。之间最主要的区别所在。2.1 指令集结构的分类681CPU对操作数的不同存取方式 CPU提供的暂存器每条ALU指令显式表示的操作数个数运算结果的目的地访问显式操作数的过程堆栈堆栈0 0堆栈堆栈
3、Push/PopPush/Pop累加器累加器1 1累加器累加器Load/StoreLoad/Store累加器累加器一组寄存器一组寄存器2/32/3寄存器或存寄存器或存储器储器Load/StoreLoad/Store寄存寄存器或存储器器或存储器781 4. 根据CPU内部存储单元类型进行分类,可以分为l 堆栈型指令集结构堆栈型指令集结构l 累加器型指令集结构累加器型指令集结构l 通用寄存器型指令集结构通用寄存器型指令集结构 例例 C=A+BC=A+B表达式在这三种类型指令集结构上的表达式在这三种类型指令集结构上的实现方法实现方法。假设。假设A A、B B、C C均是保存在存储器单元中,均是保存在
4、存储器单元中,且且A A和和B B的值在运算过程中一直被保持。的值在运算过程中一直被保持。2.1 指令集结构的分类881C=A+B表达式在这三种类型指令集结构上的实现方法 堆栈累加器寄存器 (寄存器存储器)寄存器(寄存器寄存器)PUSH ALOAD ALOAD R1,ALOAD R1,APUSH BADD BADD R1,BLOAD R2,BADDStore CStore C,R1Add R3,R1,R2POP C Store C,R3981三种类型指令集结构的优缺点 指令集结构类型优点缺点堆栈型堆栈型 是一种表示计算的是一种表示计算的简单模型;指令短小。简单模型;指令短小。 堆栈不能被随机访
5、问,从而很难生堆栈不能被随机访问,从而很难生成有效代码。同时,由于堆栈是瓶颈,成有效代码。同时,由于堆栈是瓶颈,所以很难被高效地实现。所以很难被高效地实现。累加器型累加器型 减小了机器的内部减小了机器的内部状态;指令短小。状态;指令短小。 由于累加器是唯一的暂存器,这种由于累加器是唯一的暂存器,这种机器的存储器通信开销最大。机器的存储器通信开销最大。寄存器型寄存器型 是代码生成最一般是代码生成最一般的模型。的模型。 所有操作数均需命名,且显式表示,所有操作数均需命名,且显式表示,因而指令比较长。因而指令比较长。10812.1.2 通用寄存器型指令集结构的分类 1. 通用寄存器型指令集结构的主要
6、优点 使编译器有效地使用寄存器。使编译器有效地使用寄存器。 (1) (1) 在表达式求值方面,比其它类型指令集结构在表达式求值方面,比其它类型指令集结构 具有更大的灵活性具有更大的灵活性; ; (2) (2) 寄存器可以用来存放变量。寄存器可以用来存放变量。 减少存储器的通信量,加快程序的执行速度。减少存储器的通信量,加快程序的执行速度。 (因为寄存器比存储器快)(因为寄存器比存储器快) 可以用更少的地址位来寻址寄存器,从而可可以用更少的地址位来寻址寄存器,从而可 以有效改进程序的目标代码大小。以有效改进程序的目标代码大小。 2.1 指令集结构的分类11813. 两种主要的指令特性能够将通用寄
7、存器指令集结构 (GPR)进一步细分 (1) ALU(1) ALU指令到底有两个或是三个操作数?指令到底有两个或是三个操作数? 有三个操作数的指令:两个源操作数有三个操作数的指令:两个源操作数 一个结果操作数一个结果操作数2. CPU需要设置多少个寄存器呢? 主要由编译器使用寄存器的情况来决定。主要由编译器使用寄存器的情况来决定。l 为表达式求值保留一些寄存器为表达式求值保留一些寄存器l 为传递参数保留一些寄存器为传递参数保留一些寄存器l 用剩下的寄存器来保存变量用剩下的寄存器来保存变量2.1 指令集结构的分类1281 有两个操作数的指令:一个操作数既作为源操有两个操作数的指令:一个操作数既作
8、为源操 作数,也作为目的操作数。作数,也作为目的操作数。(2) (2) 在在ALUALU指令中,有多少个操作数可以用存储器来寻指令中,有多少个操作数可以用存储器来寻 址,也即有多少个存储器操作数?址,也即有多少个存储器操作数? 一般来说,一般来说,ALUALU指令有指令有0 03 3个存储器操作数。个存储器操作数。2.1 指令集结构的分类1381 ALU指令中,存储器操作数个数和操作数个数的 所有可能组合,以及相应的机器实例 ALU指令中存储器操作数个数ALU指令中操作数的最大个数机器实例02IBM RT-PC3SPARC,MIPS12PDP-10,IBM 360,Motorola 68000
9、3IBM360的部分指令的部分指令22PDP11,部分部分IBM360 指令指令3 33VAX1481(3) (3) 通用寄存器指令集结构进一步细分为三种类型:通用寄存器指令集结构进一步细分为三种类型:(4) (4) 常见的三种通用寄存器型指令集结构的常见的三种通用寄存器型指令集结构的优缺点优缺点 注:表中注:表中(m,n)(m,n)的含义是,的含义是, 指令的指令的n n个操作个操作 数中有数中有m m个存储器操作数。个存储器操作数。 l 寄存器寄存器 - - 寄存器型寄存器型(R-R:register-register)R-R:register-register)l 寄存器寄存器 - -
10、存储器型存储器型(R-M:register-memoryR-M:register-memory)l 存储器存储器 - - 存储器型存储器型(M-M:memory-memoryM-M:memory-memory)2.1 指令集结构的分类指令集结构类型优优 点点缺 点 寄存器寄寄存器寄存器型存器型(0,3) 简单,指令字长固简单,指令字长固定,是一种简单的代定,是一种简单的代码生成模型,各种指码生成模型,各种指令的执行时钟周期数令的执行时钟周期数相近。相近。 和指令中含有对存储器操作数访问和指令中含有对存储器操作数访问的结构相比,指令条数多,因而其的结构相比,指令条数多,因而其目标代码较大。目标代
11、码较大。 寄存器存寄存器存储器型储器型(1,2) 可以直接对存储器操可以直接对存储器操作数进行访问,容易作数进行访问,容易对指令进行编码,且对指令进行编码,且其目标代码较小。其目标代码较小。 指令中的操作数类型不同。在一指令中的操作数类型不同。在一条指令中同时对一个寄存器操作数条指令中同时对一个寄存器操作数和存储器操作数进行编码,将限制和存储器操作数进行编码,将限制指令所能够表示的寄存器个数。由指令所能够表示的寄存器个数。由于指令的操作数可以存储在不同类于指令的操作数可以存储在不同类型的存储器单元,所以每条指令的型的存储器单元,所以每条指令的执行时钟周期数也不尽相同。执行时钟周期数也不尽相同。
12、存储器存存储器存储器型储器型(3,3) 是一种最紧密的编是一种最紧密的编码方式,无需码方式,无需“浪费浪费”寄存器保存变量。寄存器保存变量。 指令字长多种多样。每条指令的指令字长多种多样。每条指令的执行时钟周期数也大不一样,对存执行时钟周期数也大不一样,对存储器的频繁访问将导致存储器访问储器的频繁访问将导致存储器访问瓶颈问题。瓶颈问题。16812.2 寻址技术 1. 在通用寄存器指令集结构中,一般是利用寻址方 式指明指令中的操作数是一个常数、一个寄存器 操作数,抑或是一个存储器操作数。 2. 当前指令集结构中所使用的一些操作数寻址方式。 第二章 计算机指令集结构设计寻址方式指令实例含 义寄存器
13、寻址寄存器寻址Add R4 , R3RegsR4RegsR4RegsR3立即值寻址立即值寻址Add R4 , #3RegsR4RegsR43偏移寻址偏移寻址Add R4 , 100(R1)RegsR4RegsR4Mem100+RegsR1寄存器间接寻址寄存器间接寻址Add R4 , (R1)RegsR4RegsR4MemRegsR1索引寻址索引寻址Add R3 , (R1 + R2)RegsR3RegsR3MemRegsR1+RegsR2直接寻址或绝对寻直接寻址或绝对寻址址Add R1 , (1001)RegsR1RegsR1Mem1001存储器间接寻址存储器间接寻址Add R1 , (R3)
14、RegsR1RegsR1MemMemRegsR3自增寻址自增寻址Add R1 , (R2)+RegsR1RegsR1MemRegsR2RegsR2RegsR2d自减寻址自减寻址Add R1, -(R2)RegsR2RegsR2dRegsR1RegsR1+MemRegsR2缩放寻址缩放寻址AddR1 , 100(R2)R3RegsR1RegsR1Mem100RegsR2RegsR3*d18813. 寻址方式使用情况统计结果 (VAXVAX指令集结构的机器:指令集结构的机器:gccgcc、SpiceSpice和和Tex Tex 基准程序)基准程序)1%0%24%43%32%6%16%3%17%55
15、%1%6%11%39%40%0%10%20%30%40%50%60%70%存储器间接寻址缩放寻址寄存器间接寻址立即寻址偏移寻址TexSpicegcc立即值寻址方式立即值寻址方式和和偏移寻址方式偏移寻址方式的使用频率十分高。的使用频率十分高。19814. 各种偏移量字段大小的使用情况 寄存器寄存器型指令集结构的机器上寄存器寄存器型指令集结构的机器上(MIPSMIPS) 运行运行SPECint92SPECint92基准程序集基准程序集 (compresscompress、espressoespresso、eqntotteqntott、gccgcc、lili) 运行运行SPECfp92SPECfp9
16、2基准程序集基准程序集 (dudocdudoc、earear、hydro2dhydro2d、mdljdp2mdljdp2、su2corsu2cor) 2.2 寻址技术2081 x x轴的标记是对偏移量大小进行轴的标记是对偏移量大小进行loglog2 2()运算)运算所得,也就是偏移量字段的位数。所得,也就是偏移量字段的位数。 0%5%10%15%20%25%30%0123456789101112131415SPECint92测量统计结果SPECfp92测量统计结果占偏移寻址方式的百分比2.2 寻址技术2181 程序所使用的偏移量大小分布十分广泛;程序所使用的偏移量大小分布十分广泛; 较小的偏移
17、量和较大的偏移量均占有相当大的比例;较小的偏移量和较大的偏移量均占有相当大的比例; 将偏移量字段的大小设置为将偏移量字段的大小设置为12121616位位。这种长度可。这种长度可 以支持上述以支持上述75759999基于偏移寻址方式的数据访基于偏移寻址方式的数据访 问中偏移量大小的表示。问中偏移量大小的表示。 2.2 寻址技术22815. 在一种Load/Store型指令集结构上,一些指令使用 立即值寻址方式的频率。 比较指令比较指令和和ALUALU指令指令使用立即值寻址方式十分频繁。使用立即值寻址方式十分频繁。 10%87%58%35%45%77%78%10%0%20%40%60%80%100
18、%Load 指令比较指令ALU指令所有指令整型平均浮点平均23816. 不同立即值大小的使用分布情况 将立即值的大小设置为将立即值的大小设置为8 81616位位,可以覆盖所有,可以覆盖所有使用立即值寻址方式指令的使用立即值寻址方式指令的50508080。 0%10%20%30%40%50%60%048121620242832表示立即值的位数百分比gccTexspice2.2 寻址技术24812.3 指令集结构的功能设计 第二章 计算机指令集结构设计操作类型实 例算 术 和 逻算 术 和 逻辑运算辑运算整数的算术和逻辑操作:加、减、与、或等。整数的算术和逻辑操作:加、减、与、或等。数据传输数据传
19、输Load/Store控制控制分支、跳转、过程调用和返回、自陷等。分支、跳转、过程调用和返回、自陷等。系统系统操作系统调用、虚拟存储器管理等。操作系统调用、虚拟存储器管理等。浮点浮点浮点操作:加、乘等。浮点操作:加、乘等。十进制十进制十进制加、十进制乘、十进制到字符的转换。十进制加、十进制乘、十进制到字符的转换。字符串字符串字符串移动、字符串比较、字符串搜索等。字符串移动、字符串比较、字符串搜索等。图形图形象素操作、压缩象素操作、压缩/解压操作等。解压操作等。1. 指令集中操作的分类 26812. 一种指令集结构中的指令到底要支持哪些类型的 操作? ( (指令集结构功能设计问题指令集结构功能设
20、计问题) ) 两种截然不同的方向:两种截然不同的方向: 复杂指令集计算机(复杂指令集计算机(CISCCISC) 强化指令功能,实现软件功能向硬件功能转移。强化指令功能,实现软件功能向硬件功能转移。 精简指令集计算机(精简指令集计算机(RISCRISC) 尽可能地降低指令集结构的复杂性,以达到尽可能地降低指令集结构的复杂性,以达到 简化实现,提高性能的目的。简化实现,提高性能的目的。 当今指令集结构功能设计的一个主要趋势。当今指令集结构功能设计的一个主要趋势。2.3 指令集结构的功能设计27812.3.1 CISC指令集结构的功能设计CISCCISC结构追求的目标:结构追求的目标: 强化指令功能
21、,减少程序的指令条数,以达到强化指令功能,减少程序的指令条数,以达到提高性能的目的。提高性能的目的。增强指令功能主要是从如下几个方面着手:增强指令功能主要是从如下几个方面着手:1. 面向目标程序增强指令功能l 提高运算型指令功能提高运算型指令功能l 提高传送指令功能提高传送指令功能l 增加程序控制指令功能增加程序控制指令功能2.3 指令集结构的功能设计28812.2.面向高级语言和编译程序改进指令系统面向高级语言和编译程序改进指令系统 ( (1) 1) 增加对高级语言和编译系统支持的指令功能增加对高级语言和编译系统支持的指令功能 对源程序中各种高级语言语句进行使用频对源程序中各种高级语言语句进
22、行使用频 度的统计与分析,对于使用频度高的语句,度的统计与分析,对于使用频度高的语句, 可以设置专门的指令或采取措施增加相应可以设置专门的指令或采取措施增加相应 令的功能,以提高其编译速度和执行速度。令的功能,以提高其编译速度和执行速度。 从面向编译程序,尤其是从优化代码生成从面向编译程序,尤其是从优化代码生成 的角度进行考虑,增加指令集结构的规整的角度进行考虑,增加指令集结构的规整 性来改进指令系统。性来改进指令系统。2.3 指令集结构的功能设计2981规整性:规整性:没有或尽可能减少例外的情况和特殊的没有或尽可能减少例外的情况和特殊的 应用,以及所有运算都能对称、均匀地应用,以及所有运算都
23、能对称、均匀地 在存储器单元或寄存器单元之间进行。在存储器单元或寄存器单元之间进行。(2) (2) 高级语言计算机指令系统高级语言计算机指令系统 面向高级语言面向高级语言(HL)(HL)的机器的机器 缩小机器语言和高级语言的语义差距。缩小机器语言和高级语言的语义差距。 间接执行型高级语言机器间接执行型高级语言机器 高级语言和机器语言是一一对应的,用汇高级语言和机器语言是一一对应的,用汇 编的方法编的方法( (可以用软件实现,也可以用硬件实可以用软件实现,也可以用硬件实 现现) )把高级语言源程序翻译成机器语言程序。把高级语言源程序翻译成机器语言程序。2.3 指令集结构的功能设计3081 直接执
24、行型高级语言机器直接执行型高级语言机器 高级语言就作为机器语言,直接由硬件或高级语言就作为机器语言,直接由硬件或 固件对高级语言源程序的语句逐条进行解释以固件对高级语言源程序的语句逐条进行解释以 执行它。执行它。3. 面向操作系统的优化实现改进指令系统 操作系统的实现在很大程度上取决于体系结操作系统的实现在很大程度上取决于体系结 构的支持。构的支持。 (1) (1) 主要表现在对以下方面的支持主要表现在对以下方面的支持2.3 指令集结构的功能设计3181l 中断处理中断处理l 进程管理进程管理l 存储管理和保护存储管理和保护l 系统工作状态的建立与切换系统工作状态的建立与切换 (2) (2)
25、设置指令设置指令l 支持系统工作状态和访问方式转移的指令支持系统工作状态和访问方式转移的指令l 支持进程转移的指令支持进程转移的指令l 支持进程同步和互斥的指令支持进程同步和互斥的指令2.3 指令集结构的功能设计32812.3.2 RISC指令集功能的设计1. CISC结构存在的缺点(1) (1) 在在CISCCISC结构的指令系统中,各种指令的使用频结构的指令系统中,各种指令的使用频 率相差悬殊。率相差悬殊。(2) CISC(2) CISC结构指令系统的复杂性带来了计算机体系结构指令系统的复杂性带来了计算机体系 结构的复杂性,这不仅增加了研制时间和成结构的复杂性,这不仅增加了研制时间和成 本
展开阅读全文