计算机指令集结构.ppt
《计算机指令集结构.ppt》由会员分享,可在线阅读,更多相关《计算机指令集结构.ppt(74页珍藏版)》请在三一办公上搜索。
1、,第2章 计算机指令集结构,张云春(Source:张晨曦、刘依 计算机体系结构),2.1指令集结构的分类2.2寻址方式2.3指令集结构的功能设计2.4操作数的类型和大小2.5指令格式的设计2.6MIPS指令集结构,2,October 22,2023,2.1 指令集结构的分类,区别不同指令集结构的主要因素 CPU中用来存储操作数的存储单元的类型CPU中用来存储操作数的存储单元的主要类型堆栈累加器通用寄存器组,3,October 22,2023,2.1 指令集结构的分类,将指令集结构分为三种类型堆栈结构累加器结构通用寄存器结构根据操作数的来源不同,又可进一步分为:寄存器-存储器结构(RM结构)(操
2、作数可以来自存储器)寄存器-寄存器结构(RR结构)(所有操作数都是来自通用寄存器组)也称为load-store结构,这个名称强调:只有load指令和store指令能够访问存储器。,4,October 22,2023,2.1 指令集结构的分类,对于不同类型的指令集结构,操作数的位置、个数以及操作数的给出方式(显式或隐式)也会不同。显式给出:用指令字中的操作数字段给出隐式给出:使用事先约定好的存储单元 4种指令集结构的操作数的位置以及结果的去向,5,October 22,2023,灰色块:操作数黑色块:结果TOS(Top Of Stack):栈顶,6,October 22,2023,2.1 指令集
3、结构的分类,例:表达式C=A+B在4种类型指令集结构上的代码。假设:A、B、C均保存在存储器单元中,并且不能 破坏A和B的值。,7,October 22,2023,2.1 指令集结构的分类,通用寄存器结构现代指令集结构的主流在灵活性和提高性能方面有明显的优势跟其他的CPU内部存储单元一样,寄存器的访问速度比存储器快。对编译器而言,能更加容易、有效地分配和使用寄存器。寄存器可以用来存放变量。(1)减少对存储器的访问,加快程序的执行速度;(因为寄存器比存储器快)(2)用更少的地址位(相对于存储器地址来说)来对寄存器进行寻址,从而有效地减少程序的目标代码的大小。,8,October 22,2023,
4、2.1 指令集结构的分类,根据ALU指令的操作数的两个特征对通用寄存器型指令集结构进一步细分ALU指令的操作数个数3个操作数的指令 两个源操作数、一个目的操作数2个操作数的指令 其中一个操作数既作为源操作数,又作为目的操作数。ALU指令中存储器操作数的个数可以是0中的某一个,为0表示没有存储器操作数。,9,October 22,2023,ALU指令中操作数个数和存储器操作数个数的典型组合,10,October 22,2023,2.1 指令集结构的分类,通用寄存器型指令集结构进一步细分为3种类型寄存器-寄存器型(RR型)寄存器-存储器型(RM型)存储器-存储器型(MM型)3种通用寄存器型指令集结
5、构的优缺点表中(m,n)表示指令的n个操作数中有m个存储器操作数。,11,October 22,2023,12,October 22,2023,2.2 寻址方式,一种指令集结构如何确定所要访问的数据的地址?当前的指令集结构中所采用的一些操作数寻址方式:赋值操作Mem:存储器Regs:寄存器组方括号:表示内容Mem:存储器的内容Regs:寄存器的内容MemRegsR1:以寄存器R1中的内容作为地址的 存储器单元中的内容,13,October 22,2023,14,October 22,2023,2.2 寻址方式,采用多种寻址方式可以显著地减少程序的指令条数,但可能增加计算机的实现复杂度以及指令的
6、CPI(时钟周期数)。,15,October 22,2023,2.2 寻址方式,立即数寻址方式和偏移寻址方式的使用频度最高。,各种寻址方式的使用情况统计结果在VAX机器上运行gcc、Spice和Tex 基准程序,16,October 22,2023,2.2 寻址方式,偏移量的取值范围在load-store结构的机器(Alpha)上运行SPEC CPU2000基准程序,17,October 22,2023,2.2 寻址方式,从该图可以看出:程序所使用的偏移量大小分布十分广泛 主要是因为在存储器中所保存的数据并不是十分集中,需要使用不同的偏移量才能对其进行访问。较小的偏移量和较大的偏移量均占有相当
7、大的比例,18,October 22,2023,2.2 寻址方式,立即数寻址方式立即数寻址方式的使用频度,大约1/4的load指令和ALU指令采用了立即数寻址。,19,October 22,2023,2.2 寻址方式,立即数的取值范围,20,October 22,2023,2.2 寻址方式,最常用的是较小的立即数;有时也会用到较大的立即数(主要是用于地址计算)。在指令集结构设计中,至少要将立即数的大小设置为816位。在VAX机(支持32位立即数)上做过类似的统计,结果表明20%25%的立即数超过16位。,21,October 22,2023,2.3 指令集结构的功能设计,指令集结构的功能设计确
8、定软、硬件功能分配,即确定哪些基本功能应该由硬件实现,哪些功能由软件实现比较合适。在确定哪些基本功能用硬件来实现时,主要考虑3个因素:速度、成本、灵活性硬件实现的特点 速度快、成本高、灵活性差软件实现的特点 速度慢、价格便宜、灵活性好,22,October 22,2023,2.3 指令集结构的功能设计,对指令集的基本要求 完整性、规整性、高效率、兼容性 完整性:在一个有限可用的存储空间内,对于任何可解的问题,编制计算程序时,指令集所提供的指令足够用。要求指令集功能齐全、使用方便下表为许多指令集结构都包含的一些指令类型 前4类属于通用计算机系统的基本指令对于最后4种类型的操作,不同指令集结构的支
9、 持大不相同。,23,October 22,2023,2.3 指令集结构的功能设计,24,October 22,2023,2.3 指令集结构的功能设计,规整性:主要包括对称性和均匀性。对称性:所有与指令集有关的存储单元的使用、操作码的设置等都是对称的。例如:在存储单元的使用上,所有通用寄存器都要同等对待。在操作码的设置上,如果设置了A-B的指令,就应该也设置B-A的指令。均匀性:指对于各种不同的操作数类型、字长、操作种类和数据存储单元,指令的设置都要同等对待。例如:如果某机器有5种数据表示,4种字长,两种存储单元,则要设置542=40种同一操作的指令。高效率:指令的执行速度快、使用频度高。,2
10、5,October 22,2023,2.3 指令集结构的功能设计,在设计指令集结构时,有两种截然不同的设计策略。(产生了两类不同的计算机系统)CISC(复杂指令集计算机)增强指令功能,把越来越多的功能交由硬件来实 现,并且指令的数量也是越来越多。RISC(精简指令集计算机)尽可能地把指令集简化,不仅指令的条数少,而且指令的功能也比较简单。,26,October 22,2023,2.3.1 CISC指令集结构的功能设计,CISC结构追求的目标 强化指令功能,减少程序的指令条数,以达到提高性能的目的。增强指令功能主要从以下几方面着手:面向目标程序增强指令功能 增强运算型指令的功能增强数据传送指令的
11、功能增强程序控制指令的功能 丰富的程序控制指令为编程提供了多种选择。,27,October 22,2023,2.3.1 CISC指令集结构的功能设计,例如:循环在程序中占有相当大的 比例,所以在指令上提供专门的支持。循环控制部分通常用3条指令完成:一条加法指令一条比较指令一条分支指令设置循环控制指令,用一条指令完成上述3条指令的功能。,一般循环程序的结构,28,October 22,2023,2.3.1 CISC指令集结构的功能设计,面向高级语言的优化实现来改进指令集(缩小高级语言与机器语言的语义差距)高级语言与一般的机器语言的语义差距非常大,为高级语言程序的编译带来了一些问题。(1)编译器本
12、身比较复杂。(2)编译生成的目标代码比较难以达到很好的优化。,29,October 22,2023,2.3.1 CISC指令集结构的功能设计,30,October 22,2023,2.3.1 CISC指令集结构的功能设计,增强对高级语言和编译器的支持 对源程序中各种高级语言语句的使用频度进行统计与分析,对使用频度高、执行时间长的语句,增强有关指令的功能,加快这些指令的执行速度,或者增加专门的指令,可以达到减少目标程序的执行时间和减少目标程序长度的目的。增强系统结构的规整性,减少系统结构中的各种例外情况。(面向高级语言的计算机),31,October 22,2023,2.3.1 CISC指令集结
13、构的功能设计,高级语言计算机 间接执行高级语言机器 高级语言成为机器的汇编语言,这时高级语言和机器语言是一一对应的。用汇编的方法把高级语言源程序翻译成机器语言程序。直接执行高级语言的机器 直接把高级语言作为机器语言,直接由固件/硬件对高级语言源程序的语句逐条进行解释执行。这时既不用编译,也不用汇编。,32,October 22,2023,2.3.1 CISC指令集结构的功能设计,面向操作系统的优化实现改进指令集 操作系统和计算机系统结构是紧密联系的,操作系统的实现在很大程度上取决于系统结构的支持。指令集对操作系统的支持主要有:处理机工作状态和访问方式的切换。进程的管理和切换。存储管理和信息保护
14、。进程的同步与互斥,信号灯的管理等。支持操作系统的有些指令属于特权指令,一般用户程序是不能使用的。,33,October 22,2023,2.3.2 RISC指令集结构的功能设计,CISC指令集结构存在的问题(1979年开始,Patterson等人的研究)各种指令的使用频度相差悬殊据统计:只有20的指令使用频度比较高,占运行时间的80,而其余80的指令只在20的运行时间内才会用到。使用频度高的指令也是最简单的指令。,34,October 22,2023,Intel 80 x86最常用的10条指令,35,October 22,2023,2.3.2 RISC指令集结构的功能设计,指令集庞大,指令条
15、数很多,许多指令的功能又很复杂,使得控制器硬件非常复杂。导致的问题:占用了大量的芯片面积(如占用CPU芯片总面积的一半以上),给VLSI设计造成很大的困难;增加了研制时间和成本,容易造成设计错误。许多指令由于操作繁杂,其CPI值比较大,执行速度慢。采用这些复杂指令有可能使整个程序的 执行时间反而增加。由于指令功能复杂,规整性不好,不利于采用流水技术来提高性能。,36,October 22,2023,2.3.2 RISC指令集结构的功能设计,设计RISC机器遵循的原则 指令条数少而简单。只选取使用频度很高的指令,在此基础上补充一些最有用的指令。采用简单而又统一的指令格式,并减少寻址方式;指令字长
16、都为32位或64位。指令的执行在单个机器周期内完成。(采用流水线机制)只有load和store指令才能访问存储器,其他指令的操作都是在寄存器之间进行。(即采用load-store结构)大多数指令都采用硬连逻辑来实现。强调优化编译器的作用,为高级语言程序生成优化的代码。充分利用流水技术来提高性能。,37,October 22,2023,2.3.2 RISC指令集结构的功能设计,早期的RISC微处理器1981年,Berkeley分校的Patterson 等人的32位微处理器RISC I:31条指令,指令字长都是32位,78个通用寄存器,时钟频率为8 MHz;控制部分所占的芯片面积只有约6%。商品化
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 指令 集结
链接地址:https://www.31ppt.com/p-6376259.html