计算机系统结构教程第02章.ppt
《计算机系统结构教程第02章.ppt》由会员分享,可在线阅读,更多相关《计算机系统结构教程第02章.ppt(90页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、1 1/90/90第2章 指令系统的设计张晨曦张晨曦 刘依刘依www.GotoS2 2/90/902.1指令系统结构的分类2.2寻址方式2.3指令系统的设计与优化2.4 指令系统的发展和改进2.5操作数的类型和大小2.6MIPS指令系统结构3 3/90/901.区别不同指令系统结构的主要因素 CPU中用来存储操作数的存储单元的类型2.CPU中用来存储操作数的存储单元堆栈累加器通用寄存器组3.将指令系统的结构分为三种类型2.1 指令系统结构的分类4 4/90/902.1 指令系统结构的分类堆栈结构累加器结构通用寄存器结构根据操作数的来源不同,又可进一步分为根据操作数的来源不同,又可进一步分为:q
2、寄存器寄存器-存储器结构存储器结构(RMRM结构)结构)(操作数可以来自存储器操作数可以来自存储器 )q寄存器寄存器-寄存器结构寄存器结构(RRRR结构)结构)(所有操作数都是来自通用寄存器组所有操作数都是来自通用寄存器组)也称为也称为load-storeload-store结构,这个名称强调:只有结构,这个名称强调:只有loadload指令和指令和storestore指令能够访问存储器。指令能够访问存储器。5 5/90/902.1 指令系统结构的分类1.对于不同类型的结构,操作数的位置、个数以及操作数的给出方式(显式或隐式)也会不同。显式给出:用指令字中的操作数字段给出隐式给出:使用事先约定
3、好的单元 6 6/90/902.1 指令系统结构的分类 例:表达式表达式Z Z=X+Y=X+Y在在4 4种类型指令系统结构上的代码。种类型指令系统结构上的代码。假设:假设:X X、Y Y、Z Z均保存在存储器单元中,并且不能均保存在存储器单元中,并且不能 破坏破坏X X和和Y Y的值。的值。堆 栈 累加器寄存器(RM型)寄存器(RR型)push Xload Xload R1,Xload R1,Xpush Yadd Yadd R1,Yload R2,Yaddstore Zstore R1,Zadd R3,R1,R2pop Zstore R3,Z7 7/90/902.1 指令系统结构的分类5.通用
4、寄存器型结构现代指令系统结构的主流在灵活性和提高性能方面有明显的优势q跟其它的跟其它的CPUCPU内部存储单元一样,寄存器的访问内部存储单元一样,寄存器的访问 速度比存储器快。速度比存储器快。q对编译器而言,能更加容易、有效地分配和使用对编译器而言,能更加容易、有效地分配和使用 寄存器。寄存器。q寄存器可以用来存放变量。寄存器可以用来存放变量。(1 1)减少对存储器的访问,加快程序的执行速度;减少对存储器的访问,加快程序的执行速度;(因为寄存器比存储器快)(因为寄存器比存储器快)8 8/90/902.1 指令系统结构的分类(2 2)用更少的地址位(相对于存储器地址来说)来对寄用更少的地址位(相
5、对于存储器地址来说)来对寄 存器进行寻址,从而有效地减少程序的目标代码的存器进行寻址,从而有效地减少程序的目标代码的 大小。大小。1.根据ALU指令的操作数的两个特征对通用寄存器型结 构进一步细分ALU指令的操作数个数q3 3个操作数的指令个操作数的指令 两个源操作数、一个目的操作数两个源操作数、一个目的操作数q2 2个操作数的指令个操作数的指令其中一个操作数既作为源操作数,又作为目的操作数。其中一个操作数既作为源操作数,又作为目的操作数。9 9/90/902.1 指令系统结构的分类ALU指令中存储器操作数的个数可以是可以是0 0中的某一个,为中的某一个,为0 0表示没有存储器操作数。表示没有
6、存储器操作数。ALU指令中存储器操作数的个数 ALU指令中操作数的最多个数 结构类型 机器实例 03RR MIPS,SPARC,Alpha,PowerPC,ARM12RM IBM 360/370,Intel 80 x86,Motorola 680003RM IBM 360/370 22MM VAX 33MM VAX 7.ALU指令中操作数个数和存储器操作数个数的典型组合1111/90/902.1 指令系统结构的分类1.通用寄存器型结构进一步细分为3种类型寄存器寄存器型(RR型)寄存器存储器型(RM型)存储器存储器型(MM型)2.3种通用寄存器型结构的优缺点 表中表中(m(m,n)n)表示指令的
7、表示指令的n n个操作数中有个操作数中有m m个存个存储器操作数。储器操作数。指令系统结构类型指令系统结构类型 优优 点点 缺缺 点点 寄存器寄存器型寄存器寄存器型 (0 0,3 3)指令字长固定,指令结构指令字长固定,指令结构简洁,是一种简单的代码简洁,是一种简单的代码生成模型,各种指令的执生成模型,各种指令的执行时钟周期数相近。行时钟周期数相近。与指令中含存储器操作数的指令系与指令中含存储器操作数的指令系统结构相比,指令条数多,目标代统结构相比,指令条数多,目标代码不够紧凑,因而程序占用的空间码不够紧凑,因而程序占用的空间比较大。比较大。寄存器存储器型寄存器存储器型 (1 1,2 2)可以
8、在可以在ALUALU指令中直接对指令中直接对存储器操作数进行引用,存储器操作数进行引用,而不必先用而不必先用loadload指令进行指令进行加载。容易对指令进行编加载。容易对指令进行编码,目标代码比较紧凑。码,目标代码比较紧凑。指令中的两个操作数不对称。在一指令中的两个操作数不对称。在一条指令中同时对寄存器操作数和存条指令中同时对寄存器操作数和存储器操作数进行编码,有可能限制储器操作数进行编码,有可能限制指令所能够表示的寄存器个数。指指令所能够表示的寄存器个数。指令的执行时钟周期数因操作数的来令的执行时钟周期数因操作数的来源(寄存器或存储器)不同而差别源(寄存器或存储器)不同而差别比较大。比较
9、大。存储器存储器型存储器存储器型 (2 2,2 2)或(或(3 3,3 3)目标代码最紧凑,不需要目标代码最紧凑,不需要设置寄存器来保存变量。设置寄存器来保存变量。指令字长变化很大,特别是指令字长变化很大,特别是3 3操作数操作数指令。而且每条指令完成的工作也指令。而且每条指令完成的工作也差别很大。对存储器的频繁访问会差别很大。对存储器的频繁访问会使存储器成为瓶颈。这种类型的指使存储器成为瓶颈。这种类型的指令系统结构现在已不用了。令系统结构现在已不用了。1313/90/901.寻址方式:指令系统中如何形成所要访问的数据的地址。寻址方式可以指明指令中的操作数是一个常数、一个寄存器操作数或者是一个
10、存储器操作数。对于存储器操作数来说,由寻址方式确定的存储器地址称为有效地址。2.2 寻址方式1414/90/902.2 寻址方式2.一些操作数寻址方式:赋值操作Mem:存储器Regs:寄存器组方括号:表示内容qMemMem :存储器的内容:存储器的内容qRegsRegs :寄存器的内容:寄存器的内容qMemRegsR1MemRegsR1:以寄存器:以寄存器R1R1中的内容作为地址的中的内容作为地址的 存储器单元中的内容存储器单元中的内容寻址方式指令实例含 义寄存器寻址ADD R1,R2RegsR1RegsR1RegsR2立即值寻址ADD R3,#6RegsR3RegsR36偏移寻址ADD R3
11、,120(R2)RegsR3RegsR3Mem120+RegsR2寄存器间接寻址ADD R4,(R2)RegsR4RegsR4MemRegsR2索引寻址ADD R4,(R2+R3)RegsR4RegsR4MemRegsR2+RegsR3直接寻址或绝对寻址ADD R4,(1010)RegsR4RegsR4Mem1010存储器间接寻址ADD R2,(R4)RegsR2RegsR2MemMemRegsR4自增寻址ADD R1,(R2)+RegsR1RegsR1MemRegsR2RegsR2RegsR2d自减寻址ADD R1,-(R2)RegsR2RegsR2dRegsR1RegsR1+MemRegs
12、R2缩放寻址ADDR1,80(R2)R3RegsR1RegsR1Mem80RegsR2RegsR3*d1616/90/902.2 寻址方式 采用多种寻址方式可以显著地减少程序的指令条 数,但可能增加计算机的实现复杂度以及指令的CPI。1717/90/902.2 寻址方式立即数寻址方式和偏移寻址方式的使用频度最高。1.各种寻址方式的使用情况统计结果在在VAXVAX机器上运行机器上运行gccgcc、SpiceSpice和和Tex Tex 基准程序基准程序1818/90/902.2 寻址方式1.立即数寻址方式立即数寻址方式的使用频度 指令类型 使用频度 整型平均 浮点平均 load指令 23%22%
13、ALU指令 25%19%所有指令 21%16%大约1/4的load指令和ALU指令采用了立即数寻址。1919/90/902.2 寻址方式5.两种表示寻址方式的方法将寻址方式编码于操作码中,由操作码描述相应操作的寻址方式。适合适合:处理机采用:处理机采用load-store结构,寻址方式只有很少几种。结构,寻址方式只有很少几种。在指令字中设置专门的寻址字段,用以直接指出寻址方式。q灵活,操作码短,但需要设置专门的寻址方式字段,而灵活,操作码短,但需要设置专门的寻址方式字段,而且操作码和寻址方式字段合起来所需要的总位数可能会且操作码和寻址方式字段合起来所需要的总位数可能会比隐含方法的总位数多。比隐
14、含方法的总位数多。适合适合:处理机具有多种寻址方式,且指令有多个操作数。:处理机具有多种寻址方式,且指令有多个操作数。2020/90/902.2 寻址方式1.一个需要注意的问题:物理地址空间的信息如何存放?如何在存储器中存放不同宽度的信息?以IBM370为例子进行讨论。q信息有信息有字节、半字(双字节)、单字(字节、半字(双字节)、单字(4字节)和双字字节)和双字(8字节)字节)等宽度。等宽度。q主存宽度为主存宽度为8个字节。采用按字节编址,各类信息都是个字节。采用按字节编址,各类信息都是用该信息的首字节地址来寻址。用该信息的首字节地址来寻址。允许它们任意存储q很可能会出现一个信息跨存储字边界
15、而存储于两个存很可能会出现一个信息跨存储字边界而存储于两个存储单元中储单元中2121/90/902.2 寻址方式信息宽度不超过主存宽度的信息必须存放在一个存储字内,不能跨边界。q必须做到:必须做到:信息在主存中存放的起始地址必须是该信信息在主存中存放的起始地址必须是该信息宽度(字节数)的整数倍息宽度(字节数)的整数倍 信息存储的整数边界概念信息存储的整数边界概念q满足以下条件满足以下条件n字节信息的起始地址为:字节信息的起始地址为:n半字信息的起始地址为:半字信息的起始地址为:n单字信息的起始地址为:单字信息的起始地址为:n双字信息的起始地址为:双字信息的起始地址为:q存在存储空间的浪费存在存
16、储空间的浪费,但保证访问速度。,但保证访问速度。2222/90/902.2 寻址方式2323/90/901.指令系统的设计首先考虑所应实现的基本功能,确定哪些基本功能应该由硬件实现,哪些功能由软件实现比较合适。包括q指令的功能设计指令的功能设计q指令格式的设计指令格式的设计2.在确定哪些基本功能用硬件来实现时,主要考虑3个因素:速度、成本、灵活性。2.3 指令系统的设计与优化2424/90/902.3 指令系统的设计与优化硬件实现的特点 速度快、成本高、灵活性差速度快、成本高、灵活性差软件实现的特点 速度慢、价格便宜、灵活性好速度慢、价格便宜、灵活性好1.对指令系统的基本要求 完整性、规整性、
17、正交性、高效率、兼容性 完整性:在一个有限可用的存储空间内,对于任何可解的问题,编制计算程序时,指令系统所提供的指令足够使用。2525/90/902.3 指令系统的设计与优化q要求指令系统功能齐全、使用方便要求指令系统功能齐全、使用方便q下表为许多指令系统结构都包含的一些指令类型下表为许多指令系统结构都包含的一些指令类型 n前前4 4类类属于通用计算机系统的基本指令属于通用计算机系统的基本指令n对于最后对于最后4 4种类型的操作,不同指令系统结构的种类型的操作,不同指令系统结构的支支持大不相同持大不相同。2626/90/902.3 指令系统的设计与优化操作类型 实 例 算术和逻辑运算 算术运算
18、和逻辑操作:加,减,乘,除,与,或等 数据传输 load,store控制 分支,跳转,过程调用和返回,自陷等 系统 操作系统调用,虚拟存储器管理等 浮点 浮点操作:加,减,乘,除,比较等 十进制 十进制加,十进制乘,十进制到字符的转换等 字符串 字符串移动,字符串比较,字符串搜索等 图形 像素操作,压缩/解压操作等 2727/90/902.3 指令系统的设计与优化规整性:主要包括对称性和均匀性。q对称性:对称性:所有与指令系统有关的存储单元的使用、所有与指令系统有关的存储单元的使用、操作码的设置等都是对称的。操作码的设置等都是对称的。例如:例如:在存储单元的使用上,所有通用寄存器都要同等对在存
19、储单元的使用上,所有通用寄存器都要同等对 待。在操作码的设置上,如果设置了待。在操作码的设置上,如果设置了A AB B的指的指 令,就应该也设置令,就应该也设置B BA A的指令。的指令。q均匀性:均匀性:指对于各种不同的操作数类型、字长、操作指对于各种不同的操作数类型、字长、操作 种类和数据存储单元,指令的设置都要同等对待。种类和数据存储单元,指令的设置都要同等对待。例如:例如:如果某机器有如果某机器有5 5种数据表示,种数据表示,4 4种字长,两种存储单种字长,两种存储单 元,则要设置元,则要设置5 54 42=402=40种同一操作的指令。种同一操作的指令。2828/90/902.3 指
20、令系统的设计与优化正交性:在指令中各个不同含义的字段,如操作类型、数据类型、寻址方式字段等,在编码时应互不相关、相互独立。高效率:指指令的执行速度快、使用频度高。兼容性:主要是要实现向后兼容,指令系统可以增加新指令,但不能删除指令或更改指令的功能。2929/90/902.3 指令系统的设计与优化1.在设计指令系统时,有两种截然不同的设计策略。(产生了两类不同的计算机系统)CISC(复杂指令系统计算机)q增强指令功能,把越来越多的功能交由硬件来实增强指令功能,把越来越多的功能交由硬件来实 现,并且指令的数量也是越来越多。现,并且指令的数量也是越来越多。RISC(精简指令系统计算机)q尽可能地把指
21、令系统简化,不仅指令的条数少,而且尽可能地把指令系统简化,不仅指令的条数少,而且 指令的功能也比较简单。指令的功能也比较简单。3030/90/902.3 指令系统的设计与优化1.控制指令是用来改变控制流的。跳转:当指令是无条件改变控制流时,称之为跳转指令。分支:当控制指令是有条件改变控制流时,则称之为分支指令。2.能够改变控制流的指令q分支分支q跳转跳转q过程调用过程调用q过程返回过程返回2.3.2 控制指令3131/90/902.3 指令系统的设计与优化1.控制指令的使用频度(load-storeload-store型指令系统结构的机器,基准程序为型指令系统结构的机器,基准程序为SPEC C
22、PU2000SPEC CPU2000)指令类型 使用频度 整型平均 浮点平均 调用/返回 19%8%跳转 6%10%分支 75%82%改变控制流的大部分指令是分支指令(条件转移)。1.分支条件的方法及其优缺点 名 称 检测分支条件的方法 优 点 缺 点 条件码(CC)检测由ALU操作设置的一些特殊的位(即CC)可以自由设置分支条件 条件码是增设的状态。而且它限制了指令的执行顺序,因为要保证条件码能顺利地传送给分支指令。条件寄存器 比较指令把比较结果放入任何一个寄存器,检测时就检测该寄存器。简单 占用了一个寄存器 比较与分支 比较操作是分支指令的一部分,通常这种比较是受到一定限制的。用一条指令(
23、而不是两条)就能实现分支 当采用流水方式时,该指令的操作可能太多,在一拍内做不完。3333/90/902.3 指令系统的设计与优化5.转移目标地址的表示最常用的方法 在指令中提供一个偏移量,由该偏移量和程序计数在指令中提供一个偏移量,由该偏移量和程序计数器(器(PCPC)的值相加而得出目标地址。的值相加而得出目标地址。(PCPC相对寻址)相对寻址)优点q有效地减少表示该目标地址所需要的位数有效地减少表示该目标地址所需要的位数q位置无关(代码可被装载到主存的任意位置执行)位置无关(代码可被装载到主存的任意位置执行)关键:确定偏移量字段的长度q模拟结果表明:采用模拟结果表明:采用4 48 8位位的
24、偏移量字段(以指令字的偏移量字段(以指令字为单位)就能表示大多数控制指令的转移目标地址了。为单位)就能表示大多数控制指令的转移目标地址了。3434/90/902.3 指令系统的设计与优化1.过程调用和返回除了要改变控制流之外,可能还要保存机器状态。至少也得保存返回地址(放在专用的链接寄存器或堆栈中)。过去有些指令系统结构提供了专门的保存机制来保存许多寄存器的内容。现在较新的指令系统结构则要求由编译器生成load和store指令来保存或恢复寄存器的内容。3535/90/902.3 指令系统的设计与优化2.3.3 指令操作码的优化指令由两部分组成:操作码、地址码指令格式的设计 确定指令字的编码方式
25、,包括操作码字段和地确定指令字的编码方式,包括操作码字段和地址码字段的编码和表示方式。址码字段的编码和表示方式。指令格式的优化:如何用最短的位数来表示指令的操作信息和地址信息。3636/90/902.3 指令系统的设计与优化1.哈夫曼编码 基本思想:当各种事件发生的概率不均等时,可以对发生概率最高的事件用最短的位数(时间)来表示(处理),而对于出现概率较低的事件,则可以用较长的位数(时间)来表示(处理),从而使总的平均位数(时间)缩短。构造哈夫曼树的方法 q将各事件按其使用频度从小到大依次排列将各事件按其使用频度从小到大依次排列;q每次从中选择两个频度值最小的结点,将其合并成一每次从中选择两个
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机系统 结构 教程 02
限制150内