计算机组成原理电子教案第5章.ppt
《计算机组成原理电子教案第5章.ppt》由会员分享,可在线阅读,更多相关《计算机组成原理电子教案第5章.ppt(52页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第五章第五章 指令系统指令系统计算机组成原理电子教案 陆 遥5.1 指令系统概述指令系统概述5.2 指令格式及其设计指令格式及其设计 指令的基本格式 指令的操作数类型和操作类型 寻址方式 指令操作码的设计 指令地址码的设计 指令格式举例5.3 精简指令系统计算机精简指令系统计算机 5.3.1 从CISC到RISC RISC的主要特点n一条一条机器指令机器指令(简称(简称指令指令),就是给计算机下达),就是给计算机下达的一个基本操作命令。一台计算机中所有指令的的一个基本操作命令。一台计算机中所有指令的集合,称为这台计算机的集合,称为这台计算机的指令系统指令系统。n硬件设计人员采用各种手段实现指令
2、系统,而软硬件设计人员采用各种手段实现指令系统,而软件设计人员则使用指令系统中的指令来编制各种件设计人员则使用指令系统中的指令来编制各种各样的系统软件和应用软件,达到使用计算机的各样的系统软件和应用软件,达到使用计算机的目的。目的。n计算机指令系统的发展,是与计算机计算机指令系统的发展,是与计算机硬件技术硬件技术的的发展、发展、应用领域应用领域的扩大和的扩大和应用要求应用要求的提高密切相的提高密切相关的。关的。5.1 指令系统概述指令系统概述n为了使计算机系统在功能增强、性能提高的同时,为了使计算机系统在功能增强、性能提高的同时,还能实现软件的兼容(向后兼容),推出了系列还能实现软件的兼容(向
3、后兼容),推出了系列计算机。计算机。n所谓所谓系列计算机系列计算机,是指,是指基本指令系统相同基本指令系统相同,基本基本系统结构相同系统结构相同的一系列计算机。的一系列计算机。n从指令系统的发展过程来看,从第一台电子计算从指令系统的发展过程来看,从第一台电子计算机诞生,到上世纪机诞生,到上世纪70年代末的年代末的30多年里,指令系多年里,指令系统是沿着不断增大、不断复杂化的单一方向发展统是沿着不断增大、不断复杂化的单一方向发展的。之后,出现了指令系统发展的一个新的方向的。之后,出现了指令系统发展的一个新的方向精简指令系统方向。精简指令系统方向。n采用采用精简指令系统精简指令系统的计算机,称为的
4、计算机,称为精简指令系统精简指令系统计算机(计算机(RISC),相对而言,采用,相对而言,采用复杂指令系统复杂指令系统的计算机则称为的计算机则称为复杂指令系统计算机(复杂指令系统计算机(CISC)。5.2 指令格式及其设计指令格式及其设计 指令的基本格式n指令由操作码和地址码两部分组成,其基本格式指令由操作码和地址码两部分组成,其基本格式如下。如下。n操作码操作码本质上就是指令的编号,用于标识不同的本质上就是指令的编号,用于标识不同的指令。指令。操作码由控制器中的操作码由控制器中的指令译码器指令译码器进行识别,进行识别,根据识别的结果,由控制电路发出指令执行所需根据识别的结果,由控制电路发出指
5、令执行所需的各种操作控制信号,控制相关部件完成指令的的各种操作控制信号,控制相关部件完成指令的操作功能。操作功能。n地址码地址码用于指出指令的操作数据所存放的位置用于指出指令的操作数据所存放的位置(包括原始数据的存放位置和处理结果的存放位(包括原始数据的存放位置和处理结果的存放位置)。置)。n地址码可以是地址码可以是存储单元地址存储单元地址,可以是,可以是寄存器编号寄存器编号,也可以是也可以是I/O端口地址端口地址。由于各种存储装置的容量。由于各种存储装置的容量不同,所以,地址码的位数也不同。不同,所以,地址码的位数也不同。n一条指令的操作往往需要涉及多个数据,因此,一条指令的操作往往需要涉及
6、多个数据,因此,指令中的地址码可能会有多个。指令中的地址码可能会有多个。n按指令中地址码个数的不同,可把指令格式分为按指令中地址码个数的不同,可把指令格式分为三地址指令三地址指令、二地址指令二地址指令、一地址指令一地址指令和和零地址零地址指令指令四类。四类。n一条一条指令的长度指令的长度是指这条指令的二进制编码的位是指这条指令的二进制编码的位数,它是这条指令的操作码以及全部地址码的位数,它是这条指令的操作码以及全部地址码的位数之和。由于现在的计算机存储器多以字节编址,数之和。由于现在的计算机存储器多以字节编址,为了方便指令的存取,为了方便指令的存取,指令的长度都取字节长度指令的长度都取字节长度
7、的整数倍的整数倍。n根据指令长度与机器字长的关系,通常把长度等根据指令长度与机器字长的关系,通常把长度等于机器字长的指令称为于机器字长的指令称为单字长指令单字长指令,把长度等于,把长度等于两倍机器字长的指令称为两倍机器字长的指令称为双字长指令双字长指令,而把长度,而把长度等于机器字长一半的指令称为等于机器字长一半的指令称为半字长指令半字长指令,等等。,等等。指令的操作数类型和操作类型 1操作数类型操作数类型n指令所能处理的一切信息,都可以看作是指令的指令所能处理的一切信息,都可以看作是指令的操作数。操作数。n按操作数的性质来分类,操作数可分为:地址,按操作数的性质来分类,操作数可分为:地址,数
8、值,字符和逻辑数据四类;按数据格式来分类,数值,字符和逻辑数据四类;按数据格式来分类,操作数又可分为定点格式和浮点格式两类。操作数又可分为定点格式和浮点格式两类。n对不同类型的数据,其操作方式是不一样的,需对不同类型的数据,其操作方式是不一样的,需要设计不同的指令来完成不同的操作。因此,操要设计不同的指令来完成不同的操作。因此,操作数类型对指令系统的设计有很大的影响。作数类型对指令系统的设计有很大的影响。2操作类型操作类型n对各种计算机而言,其指令的操作种类都大同小对各种计算机而言,其指令的操作种类都大同小异,一般都包含以下一些基本的操作类型:异,一般都包含以下一些基本的操作类型:数据传送类操
9、作。数据传送类操作。算术类操作。算术类操作。逻辑类操作。逻辑类操作。控制转移类操作。控制转移类操作。输入输出类操作。输入输出类操作。系统控制类操作。系统控制类操作。处理器控制类操作。处理器控制类操作。寻址方式n产生指令地址的方式称为产生指令地址的方式称为指令寻址方式指令寻址方式,产生操,产生操作数地址的方式称为作数地址的方式称为数据寻址方式数据寻址方式。n如果程序是顺序执行,则依靠如果程序是顺序执行,则依靠PC的自动加的自动加1,就,就能不断产生所需执行的各条指令的地址。能不断产生所需执行的各条指令的地址。n如果程序需要改变执行的顺序,则要通过控制转如果程序需要改变执行的顺序,则要通过控制转移
10、类指令来实现;这些指令可以(条件转移指令移类指令来实现;这些指令可以(条件转移指令是在转移条件成立时)将转移目标处的指令地址是在转移条件成立时)将转移目标处的指令地址装入装入PC,使控制器下次所取的指令为转移目标指,使控制器下次所取的指令为转移目标指令令。n数据的寻址方式比较多,也比较复杂。根据某种数据的寻址方式比较多,也比较复杂。根据某种寻址方式产生的操作数地址,称为操作数的寻址方式产生的操作数地址,称为操作数的有效有效地址地址EA。1直接寻址直接寻址n这是一种产生这是一种产生存储器操作数地址存储器操作数地址的寻址方式,它的寻址方式,它将操作数在存储器中的存放地址直接作为地址码,将操作数在存
11、储器中的存放地址直接作为地址码,置于指令的地址码部分;指令执行时,直接按此置于指令的地址码部分;指令执行时,直接按此地址即可进行操作数的访问。地址即可进行操作数的访问。n直接寻址的直接寻址的优点优点是:提供存储器操作数地址的速是:提供存储器操作数地址的速度最快;实现一个存储器操作数的访问只需一次度最快;实现一个存储器操作数的访问只需一次访存。访存。缺点缺点是:地址码较长,会大大增加指令的是:地址码较长,会大大增加指令的长度。长度。2间接寻址间接寻址n该寻址方式用于产生该寻址方式用于产生存储器操作数存储器操作数的地址。指令的地址。指令中给出的地址码被称为中给出的地址码被称为间接地址间接地址。间接
12、寻址的过。间接寻址的过程如下图所示。程如下图所示。n间接寻址方式的最大间接寻址方式的最大缺点缺点,就是要对存储器进行,就是要对存储器进行两次访问,才能完成一个操作数的读两次访问,才能完成一个操作数的读/写。写。3寄存器寻址寄存器寻址n如果如果操作数存于寄存器中操作数存于寄存器中,则采用该寻址方式,则采用该寻址方式,在指令的地址码部分给出相应的在指令的地址码部分给出相应的寄存器编号寄存器编号(亦(亦即寄存器地址),即可对该寄存器中的操作数进即寄存器地址),即可对该寄存器中的操作数进行访问。行访问。n由于寄存器的存取速度很快,所以,由于寄存器的存取速度很快,所以,寄存器寻址寄存器寻址方式能以很快的
13、速度完成操作数的访问方式能以很快的速度完成操作数的访问。此外,。此外,寄存器的数量少,其编号的位数也少,寄存器的数量少,其编号的位数也少,能够有效能够有效地减少指令中地址码的长度地减少指令中地址码的长度。4寄存器间接寻址寄存器间接寻址n该寻址方式将该寻址方式将存储器操作数存储器操作数的地址置于一个寄存的地址置于一个寄存器中,并在指令的地址码部分给出该寄存器的编器中,并在指令的地址码部分给出该寄存器的编号。下图所示,为寄存器间接寻址方式的过程。号。下图所示,为寄存器间接寻址方式的过程。n寄存器间接寻址从寄存器中取得存储器操作数地寄存器间接寻址从寄存器中取得存储器操作数地址,速度快。以较短的寄存器
14、号换取较长的存储址,速度快。以较短的寄存器号换取较长的存储器地址,有利于缩短指令中地址码长度器地址,有利于缩短指令中地址码长度。n如果使用加如果使用加1或减或减1指令对寄存器中的操作数地址指令对寄存器中的操作数地址进行修改,可以方便地通过循环控制,对在存储进行修改,可以方便地通过循环控制,对在存储器中连续存放的一组数据依次进行处理。器中连续存放的一组数据依次进行处理。5变址寻址变址寻址n该寻址方式用于访问该寻址方式用于访问存储器操作数存储器操作数。变址寻址需。变址寻址需要用到一种要用到一种变址寄存器变址寄存器;变址寄存器中存放用于;变址寄存器中存放用于改变存储器地址的改变存储器地址的正偏移量正
15、偏移量(即地址增量),而(即地址增量),而基础的存储器地址在指令的地址码字段中给出。基础的存储器地址在指令的地址码字段中给出。n变址寻址也适合于对在存储器中连续存放的一组变址寻址也适合于对在存储器中连续存放的一组数据依次进行处理。变址寻址的主要缺点,是需数据依次进行处理。变址寻址的主要缺点,是需要设置专门的要设置专门的地址加法器地址加法器来计算操作数的地址。来计算操作数的地址。6基址寻址基址寻址n该寻址方式用于访问该寻址方式用于访问存储器操作数存储器操作数。基址寻址所。基址寻址所用的寄存器称为用的寄存器称为基址寄存器基址寄存器,用于存放存储器某,用于存放存储器某个区域的首地址,指令中另外设置一
16、个地址码字个区域的首地址,指令中另外设置一个地址码字段,用来表示一个段,用来表示一个无符号偏移量无符号偏移量。n基址寻址与变址寻址在对寄存器内容和地址码字基址寻址与变址寻址在对寄存器内容和地址码字段的解释上相反,因此,它们的使用场合是不同段的解释上相反,因此,它们的使用场合是不同的。的。7相对寻址相对寻址n相对寻址与基址寻址类似,但寄存器改为使用程相对寻址与基址寻址类似,但寄存器改为使用程序计数器序计数器PC,且不用在指令中表示出来。相对寻,且不用在指令中表示出来。相对寻址是以下条指令的地址为基础地址,再加上一个址是以下条指令的地址为基础地址,再加上一个偏移量来产生操作数地址的。偏移量来产生操
17、作数地址的。相对寻址中的偏移相对寻址中的偏移量是一个带符号的数量是一个带符号的数,用补码表示用补码表示。因此,相对。因此,相对寻址可以在基础地址前后一定范围内寻址。这种寻址可以在基础地址前后一定范围内寻址。这种寻址方式特别适用于转移指令,用以产生转移目寻址方式特别适用于转移指令,用以产生转移目标指令的地址标指令的地址,也适用于浮动程序的设计,也适用于浮动程序的设计。n变址寻址、基址寻址和相对寻址有着相似的地址变址寻址、基址寻址和相对寻址有着相似的地址产生过程,通常被统称为产生过程,通常被统称为偏移寻址方式偏移寻址方式。8隐含寻址隐含寻址n如果指令中某个操作数的地址码是默认的,则不如果指令中某个
18、操作数的地址码是默认的,则不必在指令中表示出来,该操作数的寻址方式就称必在指令中表示出来,该操作数的寻址方式就称为隐含寻址方式。为隐含寻址方式。n采用隐含寻址可以在指令中减少一个地址码,有采用隐含寻址可以在指令中减少一个地址码,有利于缩短指令的长度。但隐含寻址也降低了指令利于缩短指令的长度。但隐含寻址也降低了指令使用的灵活性。使用的灵活性。9堆栈寻址堆栈寻址n进栈和出栈指令直接利用进栈和出栈指令直接利用栈顶指针栈顶指针获取操作数的获取操作数的地址,不需在指令中表示这个地址。所以,堆栈地址,不需在指令中表示这个地址。所以,堆栈寻址也是一种隐含寻址。寻址也是一种隐含寻址。10立即寻址立即寻址n立即
19、寻址方式将操作数直接放在指令的地址码字立即寻址方式将操作数直接放在指令的地址码字段,当控制器从存储器读入这条指令时,该操作段,当控制器从存储器读入这条指令时,该操作数也同时被读取进来;这种操作数称为数也同时被读取进来;这种操作数称为立即数立即数。n立即数只能作为源操作数,不能作目标操作数。立即数只能作为源操作数,不能作目标操作数。寻址方式有效地址说明直接寻址EA=AA为地址码部分给出的存储器直接地址间接寻址EA=(A)A为地址码给出的地址,该地址对应的存储字的内容为操作数地址寄存器寻址EA=RR为寄存器,操作数就存于R中寄存器间接寻址EA=(R)R为寄存器,R的内容为操作数在存储器中的地址变址
20、寻址EA=(R)+AR为变址寄存器,A为基础地址,R的内容加上A得操作数的地址基址寻址EA=(R)+AR为基址寄存器,A为偏移量,R的内容加上A得操作数的地址相对寻址EA=(PC)+APC为程序计数器,A为偏移量,PC的内容加上A得操作数的地址隐含寻址EA=指定寄存器指定寄存器是默认的,不用在地址码中表示堆栈寻址EA=(SP)SP是堆栈的栈顶指针,其内容即为栈顶处的存储单元地址立即寻址操作数=AA为立即数,置于地址码部分 指令操作码的设计n对操作码的设计,主要有两方面的要求:一是节对操作码的设计,主要有两方面的要求:一是节省程序的存储空间(即提高空间效率);二是降省程序的存储空间(即提高空间效
21、率);二是降低硬件译码的复杂程度,加快指令的处理速度低硬件译码的复杂程度,加快指令的处理速度(即提高时间效率)。(即提高时间效率)。n操作码的设计方法有三种:固定长度操作码,操作码的设计方法有三种:固定长度操作码,Huffman编码法和扩展编码法。编码法和扩展编码法。1固定长度操作码固定长度操作码n这是一种最简单的操作码设计方法,它将指令系这是一种最简单的操作码设计方法,它将指令系统中所有指令的操作码都设计成相同的长度。其统中所有指令的操作码都设计成相同的长度。其操作码长度(位数)操作码长度(位数)k与指令数量与指令数量n之间的关系是之间的关系是n固定长度操作码固定长度操作码非常规整非常规整,
22、便于硬件译码便于硬件译码(译码(译码器只需识别一种长度的编码),是器只需识别一种长度的编码),是RISC系统普遍系统普遍采用的操作码设计方法。但是,这种编码方法的采用的操作码设计方法。但是,这种编码方法的操作码平均长度大操作码平均长度大,空间效率差空间效率差。2Huffman编码法编码法nHuffman编码法根据一个指令系统中各种指令使编码法根据一个指令系统中各种指令使用概率的不同,为指令设计不同长度的操作码;用概率的不同,为指令设计不同长度的操作码;其中,使用概率越高的指令,其操作码越短,反其中,使用概率越高的指令,其操作码越短,反之则越长。之则越长。nHuffman编码法是实际可用的操作码
23、设计方法中,编码法是实际可用的操作码设计方法中,操作码平均长度最短操作码平均长度最短(即空间效率最高)的编码(即空间效率最高)的编码方法。方法。n设指令系统有设指令系统有n(n1)种指令,第)种指令,第i(i=1,2,n)种指令的使用概率为)种指令的使用概率为pi,操作码长度为,操作码长度为li,则按,则按Huffman编码法所得到的操作码的平均长编码法所得到的操作码的平均长度为度为 【例5.1】设某模型机共有设某模型机共有7种不同的指令种不同的指令I1I7,其使用概,其使用概率依次为,。用率依次为,。用Huffman编码法为这编码法为这7种指令种指令设计操作码,计算操作码的平均长度,并与固定
24、长度操作设计操作码,计算操作码的平均长度,并与固定长度操作码作比较。码作比较。解解:Huffman编码法的基础是编码法的基础是Huffman树,也称最优二叉树,也称最优二叉树。树。Huffman树的各终端结点分别对应着需要编码的各条树的各终端结点分别对应着需要编码的各条指令,且使用概率越高的指令,距离树根结点就越近。指令,且使用概率越高的指令,距离树根结点就越近。指指 令令使用概率使用概率操作操作码码操作操作码长码长度度I10.4501位位I20.301 02位位I30.151 1 03位位I40.051 1 1 04位位I50.031 1 1 1 05位位I60.011 1 1 1 1 06
25、位位I70.011 1 1 1 1 16位位 由此可得操作码的平均长度为由此可得操作码的平均长度为 如采用固定长度操作码,操作码长度如采用固定长度操作码,操作码长度k至少取至少取3位,平均长位,平均长度也是度也是3位。与位。与Huffman编码法相比,其操作码的冗余量编码法相比,其操作码的冗余量为为nHuffman编码法的主要问题,就是操作码长度变编码法的主要问题,就是操作码长度变化太多,极不规整,不利于硬件的译码。此外,化太多,极不规整,不利于硬件的译码。此外,极不规整的操作码也很难与地址码配合,形成有极不规整的操作码也很难与地址码配合,形成有规则长度的指令编码。由于上述原因,规则长度的指令
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 组成 原理 电子 教案
限制150内