计算机指令集结构

上传人:宝路 文档编号:47980828 上传时间:2018-07-07 格式:PPT 页数:74 大小:1.42MB
返回 下载 相关 举报
计算机指令集结构_第1页
第1页 / 共74页
计算机指令集结构_第2页
第2页 / 共74页
计算机指令集结构_第3页
第3页 / 共74页
计算机指令集结构_第4页
第4页 / 共74页
计算机指令集结构_第5页
第5页 / 共74页
点击查看更多>>
资源描述

《计算机指令集结构》由会员分享,可在线阅读,更多相关《计算机指令集结构(74页珍藏版)》请在金锄头文库上搜索。

1、第2章 计算机指令集结构张云春 (Source: 张晨曦、刘依 计算机体系结构)Computer Architecture2.1指令集结构的分类2.2寻址方式2.3指令集结构的功能设计2.4操作数的类型和大小2.5指令格式的设计2.6MIPS指令集结构2*Computer Architecture2.1 指令集结构的分类1. 区别不同指令集结构的主要因素CPU中用来存储操作数的存储单元的类型 1. CPU中用来存储操作数的存储单元的主要 类型n堆栈n累加器n通用寄存器组3*Computer Architecture2.1 指令集结构的分类3. 将指令集结构分为三种类型n堆栈结构n累加器结构n通

2、用寄存器结构 根据操作数的来源不同,又可进一步分为:n寄存器-存储器结构(RM结构)(操作数可以来自存储器 )n寄存器-寄存器结构(RR结构)(所有操作数都是来自通用寄存器组)也称为load-store结构,这个名称强调:只有 load指令和store指令能够访问存储器。 4*Computer Architecture2.1 指令集结构的分类4. 对于不同类型的指令集结构,操作数的 位置、个数以及操作数的给出方式(显 式或隐式)也会不同。n显式给出:用指令字中的操作数字段给出n隐式给出:使用事先约定好的存储单元 5. 4种指令集结构的操作数的位置以及结 果的去向5*灰色块:操作数 黑色块:结果

3、 TOS(Top Of Stack):栈顶 6*Computer Architecture2.1 指令集结构的分类例: 表达式C=A+B在4种类型指令集结构上的代码。假设:A、B、C均保存在存储器单元中,并且不能破坏A和B的值。堆 栈 累加器寄存器(RM型) 寄存器(RR型) push Aload Aload R1,Aload R1,Apush Badd Badd R1,Bload R2,Baddstore Cstore R1,Cadd R3,R1,R2pop Cstore R3,C7*Computer Architecture2.1 指令集结构的分类6. 通用寄存器结构n现代指令集结构的主流

4、n在灵活性和提高性能方面有明显的优势n跟其他的CPU内部存储单元一样,寄存器的访问速度比存储 器快。n对编译器而言,能更加容易、有效地分配和使用寄存器。n寄存器可以用来存放变量。(1)减少对存储器的访问,加快程序的执行速度;(因为 寄存器比存储器快)(2)用更少的地址位(相对于存储器地址来说)来对寄 存器进行寻址,从而有效地减少程序的目标代码的大小。8*Computer Architecture2.1 指令集结构的分类7. 根据ALU指令的操作数的两个特征对通用寄 存器型指令集结构进一步细分nALU指令的操作数个数n3个操作数的指令两个源操作数、一个目的操作数n2个操作数的指令其中一个操作数既

5、作为源操作数,又作为目的操作数。nALU指令中存储器操作数的个数可以是0中的某一个,为0表示没有存储器操作数。9*ALU指令中存储器操作数的个数 ALU指令中操作数的最多个数 结构类型 机器实例 03RR MIPS,SPARC,Alpha,PowerPC,ARM12RM IBM 360/370,Intel 80x86,Motorola 680003RM IBM 360/370 22MM VAX 33MM VAX 8. ALU指令中操作数个数和存储器操作数个数的典型组合10*Computer Architecture2.1 指令集结构的分类9. 通用寄存器型指令集结构进一步细分为3种 类型n寄存

6、器-寄存器型(RR型)n寄存器-存储器型(RM型)n存储器-存储器型(MM型)10. 3种通用寄存器型指令集结构的优缺点表中(m,n)表示指令的n个操作数中有m个存储器操作数。11*指令集结构类型 优 点 缺 点 寄存器寄存器型(0,3) 指令字长固定,指令结构简洁,是一种简单的代码生成模型,各种指令的执行时钟周期数相近 与指令中含存储器操作数的指令集结构相比,指令条数多,目标代码不够紧凑,因而程序占用的空间比较大 寄存器存储器型(1,2) 可以在ALU指令中直接对存储器操作数进行引用,而不必先用load指令进行加载。容易对指令进行编码,目标代码比较紧凑 指令中的两个操作数不对称。在一条 指令

7、中同时对寄存器操作数和存储器 操作数进行编码,有可能限制指令所 能够表示的寄存器个数。指令的执行 时钟周期数因操作数的来源(寄存器 或存储器)不同而差别比较大 存储器存储器型(2,2)或(3,3) 目标代码最紧凑,不需要设置寄存器来保存变量 指令字长变化很大,特别是3操作数指令。而且每条指令完成的工作也差别很大。对存储器的频繁访问会使存储器成为瓶颈。这种类型的指令集结构现在已不用了 12*Computer Architecture2.2 寻址方式1. 一种指令集结构如何确定所要访问的数据的地址? 2. 当前的指令集结构中所采用的一些操作数寻址方式n:赋值操作nMem:存储器nRegs:寄存器组

8、n方括号:表示内容nMem :存储器的内容nRegs :寄存器的内容nMemRegsR1:以寄存器R1中的内容作为地址的存储器单元中的内容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 ,

9、 (1001)RegsR1RegsR1Mem1001存储器间接寻址Add R1 , (R3)RegsR1RegsR1MemMemRegsR3自增寻址Add R1 , (R2)+RegsR1RegsR1MemRegsR2 RegsR2RegsR2d自减寻址Add R1, -(R2)RegsR2RegsR2d RegsR1RegsR1+MemRegsR2缩放寻址Add R1 , 100(R2)R3RegsR1RegsR1Mem100RegsR2 RegsR3*d 14*Computer Architecture2.2 寻址方式采用多种寻址方式可以显著地减少程 序的指令条数,但可能增加计算机的实现

10、复杂度以及指令的CPI(时钟周期数)。15*Computer Architecture2.2 寻址方式立即数寻址方式和偏移寻址方式的使用频度最高。 3. 各种寻址方式的使用情况统计结果在VAX机器上运行gcc、Spice和Tex 基准程序16*Computer Architecture2.2 寻址方式4. 偏移量的取值范围在load-store结构的机器(Alpha)上运行SPEC CPU2000基准程序17*Computer Architecture2.2 寻址方式从该图可以看出:n程序所使用的偏移量大小分布十分广泛主要是因为在存储器中所保存的数据并不是十 分集中,需要使用不同的偏移量才能对

11、其进行访 问。 n较小的偏移量和较大的偏移量均占有相当 大的比例 18*Computer Architecture2.2 寻址方式5. 立即数寻址方式n立即数寻址方式的使用频度 指令类型 使用频度 整型平均 浮点平均 load指令 23% 22% ALU指令 25% 19% 所有指令 21% 16% 大约1/4的load指令和ALU指令采用了立即数寻址。 19*Computer Architecture2.2 寻址方式n立即数的取值范围 20*Computer Architecture2.2 寻址方式n最常用的是较小的立即数;n有时也会用到较大的立即数(主要是用于地址计算)。n在指令集结构设计

12、中,至少要将立即数的大小设置为8 16位。n在VAX机(支持32位立即数)上做过类似的统计,结果 表明20%25%的立即数超过16位。 21*Computer Architecture2.3 指令集结构的功能设计1. 指令集结构的功能设计n确定软、硬件功能分配,即确定哪些基本功能应 该由硬件实现,哪些功能由软件实现比较合适。2. 在确定哪些基本功能用硬件来实现时,主要 考虑3个因素:速度、成本、灵活性n硬件实现的特点速度快、成本高、灵活性差n软件实现的特点速度慢、价格便宜、灵活性好22*Computer Architecture2.3 指令集结构的功能设计3. 对指令集的基本要求完整性、规整性

13、、高效率、兼容性 n完整性:在一个有限可用的存储空间内,对于任 何可解的问题,编制计算程序时,指令集所提供 的指令足够用。n要求指令集功能齐全、使用方便n下表为许多指令集结构都包含的一些指令类型 n前4类属于通用计算机系统的基本指令n对于最后4种类型的操作,不同指令集结构的支持大不相同 。 23*Computer Architecture2.3 指令集结构的功能设计操作类型 实 例 算术和逻辑运算 算术运算和逻辑操作:加,减,乘,除,与,或等 数据传输 load,store控制 分支,跳转,过程调用和返回,自陷等 系统 操作系统调用,虚拟存储器管理等 浮点 浮点操作:加,减,乘,除,比较等 十

14、进制 十进制加,十进制乘,十进制到字符的转换等 字符串 字符串移动,字符串比较,字符串搜索等 图形 像素操作,压缩/解压操作等 24*Computer Architecture2.3 指令集结构的功能设计n规整性:主要包括对称性和均匀性。n对称性:所有与指令集有关的存储单元的使用、 操作码的设置等都是对称的。 例如:在存储单元的使用上,所有通用寄存器都要同等对待。 在操作码的设置上,如果设置了A-B的指令,就应该也设置B -A的指令。 n均匀性:指对于各种不同的操作数类型、字长、 操作种类和数据存储单元,指令的设置都要同等 对待。 例如:如果某机器有5种数据表示,4种字长,两种存储单元, 则要

15、设置542=40种同一操作的指令。 n高效率:指令的执行速度快、使用频度高。25*Computer Architecture2.3 指令集结构的功能设计4. 在设计指令集结构时,有两种截然不 同的设计策略。(产生了两类不同的计算机系统 )nCISC(复杂指令集计算机)n增强指令功能,把越来越多的功能交由硬件来实现,并且指令的数量也是越来越多。nRISC(精简指令集计算机)n尽可能地把指令集简化,不仅指令的条数少,而 且指令的功能也比较简单。 26*Computer Architecture2.3.1 CISC指令集结构的功能设计nCISC结构追求的目标强化指令功能,减少程序的指令条数, 以达到

16、提高性能的目的。n增强指令功能主要从以下几方面着手:n面向目标程序增强指令功能 n增强运算型指令的功能n增强数据传送指令的功能n增强程序控制指令的功能丰富的程序控制指令为编程提供了多种选择。 27*Computer Architecture2.3.1 CISC指令集结构的功能设计例如:循环在程序中占有相 当大的 比例,所以在指令 上提供专门的支持。n循环控制部分通常用3条指令完成:n一条加法指令n一条比较指令n一条分支指令n设置循环控制指令,用一条指令完成上述3条指令的功能。 一般循环程序的结构28*Computer Architecture2.3.1 CISC指令集结构的功能设计n面向高级语言的优

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 教学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号