




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、计算机组成与结构计算机组成与结构主讲:弓剑锋主讲:弓剑锋 2011-2012-2第五章第五章 指令系统指令系统指令系统指令系统 指令系统的发展指令系统的发展 指令格式指令格式 数据表示数据表示 寻址方式寻址方式 指令类型指令类型 RISC 与与 CISC本章内容:本章内容:P138-P1705.1 指令系统的发展指令系统的发展 计算机的计算机的性能性能与它所设置的与它所设置的指令系统指令系统有很大的关有很大的关系,而指令系统的设置又与机器的系,而指令系统的设置又与机器的硬件结构硬件结构密切相关。密切相关。发展过程发展过程 20世纪世纪50年代、年代、60年代早期年代早期 一般只有定点加减、逻辑
2、运算、数据传送和转移一般只有定点加减、逻辑运算、数据传送和转移等十几至几十条最基本的指令,且寻址方式简单。等十几至几十条最基本的指令,且寻址方式简单。 20世纪世纪60年代中、后期年代中、后期 增加了乘除法运算、浮点运算、十进制运算以及增加了乘除法运算、浮点运算、十进制运算以及字符串处理指令等,指令数多达一、二百条,指令系字符串处理指令等,指令数多达一、二百条,指令系统越来越丰富,且寻址方式也趋于多样化。统越来越丰富,且寻址方式也趋于多样化。 5.1 指令系统的发展指令系统的发展 在在60年代出现了系列年代出现了系列(series)计算机。计算机。 为了继承已有的软件,减少软件的开发费用,人为
3、了继承已有的软件,减少软件的开发费用,人们迫切希望各机器上的软件能够兼容,以便在旧机器们迫切希望各机器上的软件能够兼容,以便在旧机器上编制的各种软件也能在新的、性能更好的机器上正上编制的各种软件也能在新的、性能更好的机器上正确运行。确运行。 系列计算机系列计算机指基本指令系统相同,基本体系结构指基本指令系统相同,基本体系结构相同的一系列计算机。相同的一系列计算机。 系列机能解决软件兼容问题的必要条件是该系列系列机能解决软件兼容问题的必要条件是该系列的各个机种有共同的指令集。的各个机种有共同的指令集。 5.1 指令系统的发展指令系统的发展 指令系统趋于多用途、强功能化。指令系统趋于多用途、强功能
4、化。 指令系统的改进是围绕着缩小指令与高级语言的指令系统的改进是围绕着缩小指令与高级语言的语义差异以及有利于操作系统的优化而进行的。语义差异以及有利于操作系统的优化而进行的。 70年代末,人们提出了精简指令系统计算机年代末,人们提出了精简指令系统计算机RISC。 指令结构太复杂会带来一些不利的因素(设计周指令结构太复杂会带来一些不利的因素(设计周期长,正确性难以保证,不易维护等)。期长,正确性难以保证,不易维护等)。 在在庞大的庞大的指令系统中:只有诸如算术运算、逻辑指令系统中:只有诸如算术运算、逻辑运算、数据传送、转移和子程序调用等运算、数据传送、转移和子程序调用等几十条几十条最基本最基本的
5、指令经常被使用,而需要大量硬件支持的大多数较的指令经常被使用,而需要大量硬件支持的大多数较复杂的指令却利用率很低,造成硬件资源的极大浪费。复杂的指令却利用率很低,造成硬件资源的极大浪费。 5.2 指令格式指令格式 指令格式指令格式 指令操作码的扩展技术指令操作码的扩展技术 指令长度与字长的关系指令长度与字长的关系本节内容:本节内容:P139-P1435.2 指令格式指令格式 计算机只能够识别和执行用计算机只能够识别和执行用机器语言机器语言编写的程编写的程序。各种高级语言编写的应用程序,最终都要翻译序。各种高级语言编写的应用程序,最终都要翻译成机器语言来执行。成机器语言来执行。 机器语言是由一系
6、列的指令(语句)组成的。机器语言是由一系列的指令(语句)组成的。指令的格式就是机器语言的语法指令的格式就是机器语言的语法。 一台计算机的所有的指令集合称为该机的指令一台计算机的所有的指令集合称为该机的指令系统或系统或指令集指令集。它是程序工作者编制程序的基本依。它是程序工作者编制程序的基本依据,也是进行计算机逻辑设计的基本依据据,也是进行计算机逻辑设计的基本依据 。每条指。每条指令规定机器完成一定的功能。令规定机器完成一定的功能。5.2.1 指令格式指令格式一条指令应包含如下信息:一条指令应包含如下信息: 操作的性质:操作的性质:体现在指令中被称为体现在指令中被称为操作码操作码。 操作结果的保
7、存:操作结果的保存:由地址码给出。由地址码给出。 操作的对象:操作的对象:数据来源以及如何寻找操作数。体现数据来源以及如何寻找操作数。体现在指令中被称为在指令中被称为地址码地址码。 下一条指令的地址:下一条指令的地址:由操作码和地址码共同决定,由操作码和地址码共同决定,并由程序计数器并由程序计数器PC给出。操作码决定为顺序执行时,给出。操作码决定为顺序执行时,下条指令地址为下条指令地址为PC+1;决定为非顺序执行时,下条;决定为非顺序执行时,下条指令地址由地址码送至指令地址由地址码送至PC。例如转移指令,操作码。例如转移指令,操作码指明转移性质,跳转地址由地址码给出。指明转移性质,跳转地址由地
8、址码给出。5.2.1 指令格式指令格式操作码操作码(OPCODE) :表示该指令所要完成:表示该指令所要完成的具体操作,的具体操作,其长度取决于指令集中的指其长度取决于指令集中的指令条数令条数。指令格式指令格式操作码 OP地址码 A 地址码地址码(A):描述该指令的操作对象。一般包括:描述该指令的操作对象。一般包括:操作数、操作数地址、操作结果的存操作数、操作数地址、操作结果的存储地址储地址。其中,。其中,地址指寄存器的地址、地址指寄存器的地址、存储器的地址或存储器的地址或I/O设备的地址设备的地址。5.2.1 指令格式指令格式 零地址指令零地址指令类型类型OPCODE 指令中只有操作码,而没
9、有操作数或没有操作指令中只有操作码,而没有操作数或没有操作数地址。包括两类指令:数地址。包括两类指令: 无需操作数的指令。如空操作指令、停机指令等。无需操作数的指令。如空操作指令、停机指令等。 默认操作数的指令。如堆栈操作指令。默认操作数的指令。如堆栈操作指令。5.2.1 指令格式指令格式 单地址指令单地址指令指令中只给出一个地址码。包括两类指令:指令中只给出一个地址码。包括两类指令: A1是操作数的地址,也是操作结果的存储地址。是操作数的地址,也是操作结果的存储地址。如如1(自加、自减)指令。(自加、自减)指令。 A1是一个操作数或操作数的地址,另一个操作数是一个操作数或操作数的地址,另一个
10、操作数地址(也是结果的存储地址)为累加寄存器地址(也是结果的存储地址)为累加寄存器AC(隐(隐含)。含)。OPCODEA15.2.1 指令格式指令格式 双地址指令双地址指令指令中给出两个地址码,为最常见的指令格式。指令中给出两个地址码,为最常见的指令格式。 A1:源操作地址码,给出一个源操作数或其地址;:源操作地址码,给出一个源操作数或其地址; A2:目的操作地址码,给出另一个源操作数的地址,:目的操作地址码,给出另一个源操作数的地址,同时也是存放结果的地址。同时也是存放结果的地址。OPCODEA1A25.2.1 指令格式指令格式 三地址指令三地址指令指令中给出三个地址码,说明如下:指令中给出
11、三个地址码,说明如下: A1:第一个操作数或其地址;:第一个操作数或其地址; A2:第二个操作数或其地址;:第二个操作数或其地址; A3:操作结果的存放地址。:操作结果的存放地址。OPCODEA1A2A35.2.1 指令格式指令格式 多地址指令多地址指令 在某些性能较好的大、中型机甚至高档的小型在某些性能较好的大、中型机甚至高档的小型机中,往往设置一些功能很强、用于处理成批数据机中,往往设置一些功能很强、用于处理成批数据的指令,如的指令,如字符串处理指令,向量、矩阵运算指令字符串处理指令,向量、矩阵运算指令等。为了描述一批数据,指令中需要多个地址来指等。为了描述一批数据,指令中需要多个地址来指
12、出数据存放的首地址、长度和下标等信息。出数据存放的首地址、长度和下标等信息。OPCODEA1A2A3An5.2.1 指令格式指令格式 对比对比 02地址指令:指令短、速度快、硬件实现简单。地址指令:指令短、速度快、硬件实现简单。 3n地址指令:功能强大、便于编程,但硬件结构地址指令:功能强大、便于编程,但硬件结构复杂,常出现于高性能机器的扩展指令集中。复杂,常出现于高性能机器的扩展指令集中。 指令地址与数据地址指令地址与数据地址 数据:操作的对象。数据地址由指令中的地址数据:操作的对象。数据地址由指令中的地址码给出。码给出。 指令:操作的性质。指令地址由程序计数器指令:操作的性质。指令地址由程
13、序计数器PC的值给出。的值给出。5.2.2 指令操作码的扩展指令操作码的扩展 指令的操作码标明操作的性质,不同的指令其指令的操作码标明操作的性质,不同的指令其操作码不同。操作码不同。指令中操作码的长度取决于指令集中指令中操作码的长度取决于指令集中指令的数量。指令的数量。 例如,指令集有例如,指令集有62条指令,则操作码长度条指令,则操作码长度6时时才能满足指令集要求(才能满足指令集要求(2662)。)。 指令的设计关键在于对指令操作码的编码设计。指令的设计关键在于对指令操作码的编码设计。5.2.2 指令操作码的扩展指令操作码的扩展 固定长度操作码固定长度操作码编码格式编码格式 操作码所占的二进
14、制位数固定不变。操作码所占的二进制位数固定不变。 有利于有利于简化硬件设计,减少指令译码时间简化硬件设计,减少指令译码时间,广,广泛用于泛用于字长较长字长较长的大、中型计算机和超级小型计算的大、中型计算机和超级小型计算机中。机中。 例如例如IBM370和和VAX11系列机中系列机中, 操作码的长操作码的长度都是度都是8位,可表示位,可表示256条指令。条指令。 在整条指令长度不变的情况下,对于地址个数在整条指令长度不变的情况下,对于地址个数少的指令允许其操作码长些,对于地址个数多的指少的指令允许其操作码长些,对于地址个数多的指令则操作码短些。令则操作码短些。5.2.2 指令操作码的扩展指令操作
15、码的扩展 可变长度操作码可变长度操作码 操作码长度可变是操作码扩展技术的应用。操作码长度可变是操作码扩展技术的应用。 有利于压缩程序中操作码的平均长度,在有利于压缩程序中操作码的平均长度,在字长字长较短较短的微型机中被广泛应用。的微型机中被广泛应用。 例如:例如:PDP11,INTEL 8086/80386等,其操等,其操作码的长度均是可变的。作码的长度均是可变的。5.2.2 指令操作码的扩展指令操作码的扩展 例如,设某机器的指令长度为例如,设某机器的指令长度为16位,包括位,包括1个个4位的操作码和位的操作码和3个个4位的地址码,其格式为:位的地址码,其格式为:操作码扩展操作码扩展 操作码长
16、度固定时,只能编码操作码长度固定时,只能编码16条指令。条指令。 操作码长度可变时,如下方法可扩展表示操作码长度可变时,如下方法可扩展表示61条条指令:指令:5.2.2 指令操作码的扩展指令操作码的扩展OPCODEA1A2A30000A1A2A30001A1A2A30010A1A2A30011A1A2A30100A1A2A30101A1A2A30110A1A2A30111A1A2A31000A1A2A31001A1A2A31010A1A2A31011A1A2A31100A1A2A31101A1A2A31110A1A2A31111A1A2A3 操作码长度固定操作码长度固定5.2.2 指令操作码的
17、扩展指令操作码的扩展0000A1A2A31110A1A2A31111A1A2A3 15条三地址指令条三地址指令1111A2A30000 1111A2A311101111A2A300011111A2A3111116条二地址指令条二地址指令5.2.2 指令操作码的扩展指令操作码的扩展0000A1A2A31110A1A2A31111A1A2A3 15条三地址指令条三地址指令1111A2A30000 1111A2A311101111A2A300011111A2A3111116条二地址指令条二地址指令15条二地址指令条二地址指令1111A3111100001111A311110001 1111A3111
18、111101111A31111111116条单地址指令条单地址指令5.2.2 指令操作码的扩展指令操作码的扩展1111A3111100001111A311110001 1111A3111111101111A31111111116条单地址指令条单地址指令15条单地址指令条单地址指令11111111111100001111111111110001 1111111111111110111111111111111116条零地址指令条零地址指令5.2.2 指令操作码的扩展指令操作码的扩展其他扩展方法:其他扩展方法: 实际的机器可以采用各种灵活的扩展方式,其实际的机器可以采用各种灵活的扩展方式,其思路与此
19、类似。思路与此类似。 例如,形成例如,形成15条三地址指令,条三地址指令,12条二地址指令,条二地址指令,31条单地址指令,条单地址指令,16条零地址指令,共条零地址指令,共74条。条。 上述方法是在上述方法是在不增加指令长度不增加指令长度的情况下,采用的情况下,采用对对地址少的指令使用较长的操作码地址少的指令使用较长的操作码,对,对地址数多的地址数多的指令使用较短的操作码指令使用较短的操作码。其实质是增加了指令的数。其实质是增加了指令的数量,丰富了指令的功能。量,丰富了指令的功能。5.2.2 指令操作码的扩展指令操作码的扩展指令的分配:指令的分配: 指令的分配以指令的分配以指令的使用频度指令
20、的使用频度(即在程序中出(即在程序中出现的概率)为依据。即现的概率)为依据。即频度高的指令应分配短的操频度高的指令应分配短的操作码,频度低的指令则分配较长的操作码作码,频度低的指令则分配较长的操作码。 优点:优点:1、有效地缩短操作码在程序中的平均、有效地缩短操作码在程序中的平均长度,节省存储空间;长度,节省存储空间; 2、缩短常用指令的译码时间以提高程序的运、缩短常用指令的译码时间以提高程序的运行速度。行速度。 缺点:译码系统比固定操作码复杂,增加了设缺点:译码系统比固定操作码复杂,增加了设计控制器的难度,需要更多的硬件支持。计控制器的难度,需要更多的硬件支持。5.2.2 指令操作码的扩展指
21、令操作码的扩展操作码的平均长度操作码的平均长度=(0.45+0.28+0.17)2+(0.05+0.03+0.01+0.01) 4=2.2bit5.2.3 指令长度与字长指令长度与字长 即机器字长,指计算机能直接处理的二进即机器字长,指计算机能直接处理的二进制数据的位数。字长是计算机中的一项重要技术指制数据的位数。字长是计算机中的一项重要技术指标,标,字长越长,计算机的运算精度越高字长越长,计算机的运算精度越高。字长字长 为了便于处理字符数据及尽可能地利用存储空为了便于处理字符数据及尽可能地利用存储空间,一般机器字长定为字节长度的整数倍,即间,一般机器字长定为字节长度的整数倍,即8位、位、16
22、位、位、32位或位或64位。位。 微型、小型机的字长多为微型、小型机的字长多为8位、位、16位和位和32位;位;中、大型机的字长多为中、大型机的字长多为32位和位和64位。位。5.2.3 指令长度与字长指令长度与字长 指令长度即指令字长,取决于操作码指令长度即指令字长,取决于操作码的长度、地址码的长度和地址码的个数。的长度、地址码的长度和地址码的个数。指令长度指令长度 其中,地址码的长度决定指令的直接寻址能力。其中,地址码的长度决定指令的直接寻址能力。 例如,例如,INTEL 8086/80586系列机的指令长度分别系列机的指令长度分别为为8位、位、16位、位、24位、位、32位、位、48位等
23、。而最长的指令位等。而最长的指令可达可达120位。位。 为了充分利用存储空间,指令长度也定为为了充分利用存储空间,指令长度也定为字节长字节长度的整数倍度的整数倍。5.2.3 指令长度与字长指令长度与字长指令长度与字长的关系指令长度与字长的关系指令指令短格式指令短格式指令指令长度指令长度字长字长单字长指令单字长指令指令长度指令长度=字长字长半字长指令半字长指令指令长度指令长度=0.5字长字长长格式指令长格式指令指令长度指令长度字长字长双字长指令双字长指令指令长度指令长度=2倍字长倍字长四字长指令四字长指令指令长度指令长度=4倍字长倍字长5.2.3 指令长度与字长指令长度与字长各种指令字的结构情况
24、:各种指令字的结构情况:地址地址 II+1I+2I+3指令指令1指令指令2指令指令3指令指令4一个字长一个字长指指 令令指指 令令指指 令令指指 令令地址地址 II+1I+2I+3一个字长一个字长指指 令令指指 令令指指 令令指指 令令地址地址 II+1I+2I+3 指令指令1 指 令指 令2一个字长一个字长单字长指令单字长指令双字长指令双字长指令半字长指令半字长指令变字长指令变字长指令指令指令3一个字长一个字长地址地址II+1I+2I+3I+4I+5I+6指令指令1指令指令25.3 数据表示数据表示 目前微机所用数据字长为目前微机所用数据字长为32位或位或64位。位。8位和位和16位机器字长
25、多用于各种单片机中。位机器字长多用于各种单片机中。 计算机的指令系统可支持对字节、半字、字、计算机的指令系统可支持对字节、半字、字、双字的运算,有些计算机还有位处理指令(多见于双字的运算,有些计算机还有位处理指令(多见于单片机中)。单片机中)。5.3 数据表示数据表示 为便于硬件实现,一般要求多字节数为便于硬件实现,一般要求多字节数据对准边界,从而减少访存的次数。据对准边界,从而减少访存的次数。边界对准边界对准特点特点1:半字地址最半字地址最低位为零;字地址最低位为零;字地址最低两位为零;双字地低两位为零;双字地址最低三位为零。址最低三位为零。特点特点2:若数据长度若数据长度不足,则填充空字节
26、。不足,则填充空字节。例如三字节数据占用例如三字节数据占用双字存储,有一字节双字存储,有一字节为空。为空。5.3 数据表示数据表示 若不要求对准边界,则可以节约存储空间。但若不要求对准边界,则可以节约存储空间。但可能增加访存次数。可能增加访存次数。 例如,下图出现一个字在两个存储单元中的情例如,下图出现一个字在两个存储单元中的情况,需访问况,需访问2次存储器才能取得数据。次存储器才能取得数据。5.4 寻址方式寻址方式寻址方式:寻址方式: 在存储器中,操作数或指令字写入或读出的方式,在存储器中,操作数或指令字写入或读出的方式,有有地址指定方式地址指定方式、相联存储方式相联存储方式和和堆栈存取方式
27、堆栈存取方式。 几乎所有的计算机,在内存中都采用地址指定方式。几乎所有的计算机,在内存中都采用地址指定方式。 当采用地址指定方式时,形成操作数或指令地址的当采用地址指定方式时,形成操作数或指令地址的方式,称为方式,称为寻址方式寻址方式。 寻址方式分为两类,即指令寻址方式和数据寻址方寻址方式分为两类,即指令寻址方式和数据寻址方式,前者比较简单,后者比较复杂。一般所说的寻式,前者比较简单,后者比较复杂。一般所说的寻址方式指数据寻址方式。址方式指数据寻址方式。5.4 寻址方式寻址方式CPU一直都在寻找的东西一直都在寻找的东西 指令:指令: 通过程序计数器通过程序计数器PC(存放着下一条指令的地址)(
28、存放着下一条指令的地址)的值找到下一条要执行的指令。的值找到下一条要执行的指令。 PC的值由当前正在执行的指令决定,当前指令的的值由当前正在执行的指令决定,当前指令的操作码决定程序是顺序执行,还是非顺序执行。操作码决定程序是顺序执行,还是非顺序执行。 若为顺序执行,则若为顺序执行,则PC+1;若为非顺序执行,则;若为非顺序执行,则PC值由当前指令地址码给出。值由当前指令地址码给出。 指令寻址方式分指令寻址方式分顺序寻址顺序寻址和和跳跃(转移)寻址跳跃(转移)寻址。5.4 寻址方式寻址方式5.4 寻址方式寻址方式6演示演示5.4 寻址方式寻址方式 数据:数据: 通过指令实现。通过指令实现。 数据
29、存放的三个地方:寄存器、存储器、数据存放的三个地方:寄存器、存储器、I/O设备。设备。 不同的存放空间决定了寻找数据方法的不同,造不同的存放空间决定了寻找数据方法的不同,造成了数据寻址方式的多样化和复杂化。成了数据寻址方式的多样化和复杂化。 数据寻址方式就是指寻找操作数所用的方法,它数据寻址方式就是指寻找操作数所用的方法,它与计算机的硬件结构密切相关,对指令的格式和功与计算机的硬件结构密切相关,对指令的格式和功能都有极大的影响。能都有极大的影响。 5.4 寻址方式寻址方式注明:注明:D或或A地址码;地址码;E操作数的有效地址;操作数的有效地址;S操作数;操作数;R寄存器地址。寄存器地址。指令中
30、的地址码就是所需的操作数。指令中的地址码就是所需的操作数。 1 立即寻址立即寻址优点:优点:操作数在取指令时同时得到,不必再次访问操作数在取指令时同时得到,不必再次访问存储器,提高了指令执行速度。存储器,提高了指令执行速度。 缺点:缺点:操作数数值受限;操作数不能单独修改。操作数数值受限;操作数不能单独修改。 OP # S立即寻址特征立即寻址特征立即数立即数 SD5.4 寻址方式寻址方式指令中的地址码是操作数的地址。指令中的地址码是操作数的地址。 2 直接寻址直接寻址优点:优点:不需计算地址,寻址速度很快;不需计算地址,寻址速度很快; 缺点:缺点:寻址范围受到地址字段长度的限制。寻址范围受到地
31、址字段长度的限制。演示演示演示演示S( E )( D )5.4 寻址方式寻址方式指令中的地址码是操作数的有效地址的地址。指令中的地址码是操作数的有效地址的地址。 3 间接寻址间接寻址优点:优点:地址构成灵活,寻址范围大;地址构成灵活,寻址范围大; 缺点:缺点:最少需访问两次存储器才能取得数据。最少需访问两次存储器才能取得数据。演示演示S( E )( ( D ) )演示演示5.4 寻址方式寻址方式 指令中的地址码是某寄存器的地址指令中的地址码是某寄存器的地址 ,操作数在,操作数在该寄存器中。该寄存器中。4 寄存器寻址寄存器寻址优点:优点:寄存器高速存取,可大幅提高执行速度;寄存器高速存取,可大幅
32、提高执行速度; 缺点:缺点:寄存器数量有限。寄存器数量有限。 OP RiRi S S = ( E ) = ( R )5.4 寻址方式寻址方式 指令中的地址码是某寄存器的地址指令中的地址码是某寄存器的地址 ,操作数的,操作数的地址在该寄存器中。地址在该寄存器中。5 寄存器间址寄存器间址优点:优点:借助寄存器提高执行速度;借助寄存器提高执行速度; 寻址灵活;寻址灵活;缺点:缺点:寄存器数量有限。寄存器数量有限。 S = ( E ) = ( ( R ) )OP Ri E Ri S5.4 寻址方式寻址方式 程序计数器程序计数器PC的值(基址)加指令地址码(位的值(基址)加指令地址码(位移量)形成操作数
33、的有效地址。移量)形成操作数的有效地址。6 相对寻址相对寻址特点:特点:1、位移量可正可负,通常用补码表示。、位移量可正可负,通常用补码表示。2、常用于程序跳转。、常用于程序跳转。 S = ( E ) = ( PC+D )演示演示演示演示5.4 寻址方式寻址方式举例如下:举例如下:OP35P C:相对距离相对距离 =35内存内存OP 35300010351000 PC值为值为1000,指令地址码为,指令地址码为35,相对地址为,相对地址为1035。这个地址随。这个地址随PC的值变化而变化,并且相对差的值变化而变化,并且相对差一个固定值。因此,当把操作数作为指令地址时,无一个固定值。因此,当把操
34、作数作为指令地址时,无论程序装入存储器的任何区域,只要这个差值不变,论程序装入存储器的任何区域,只要这个差值不变,程序均能正确运行。程序均能正确运行。5.4 寻址方式寻址方式 基址寄存器的内容(基址)加指令地址码(位基址寄存器的内容(基址)加指令地址码(位移量)形成操作数的有效地址。移量)形成操作数的有效地址。7 基址寻址基址寻址 S = ( E ) = ( ( R ) + D )址5.4 寻址方式寻址方式 当当存储容量较大,所需地址码的长度大于字长存储容量较大,所需地址码的长度大于字长时,指令中的地址码部分直接给出的地址不可能直时,指令中的地址码部分直接给出的地址不可能直接访问存储器的所有单
35、元。接访问存储器的所有单元。演示演示 因此,把整个存储空间因此,把整个存储空间分成若干段分成若干段,每段的,每段的首首地址地址存放在一个存放在一个基址寄存器基址寄存器中,中,段内的位移量段内的位移量由指由指令直接给出。令直接给出。 基址寄存器基址寄存器:专用寄存器,或者由指令指定的某专用寄存器,或者由指令指定的某个通用寄存器。个通用寄存器。用途:用途:1、大容量存储体寻址;、大容量存储体寻址; 2、查表。、查表。变址 变址寄存器变址寄存器:专用寄存器,或者由指令指专用寄存器,或者由指令指定的某个通用寄存器或内存单元。定的某个通用寄存器或内存单元。5.4 寻址方式寻址方式 变址寄存器的内容(变址
36、)加指令地址码(位变址寄存器的内容(变址)加指令地址码(位移量)形成操作数的有效地址。移量)形成操作数的有效地址。8 变址寻址变址寻址 S = ( E ) = ( ( R ) + D )演示演示5.4 寻址方式寻址方式Ri为变址寄存器时的为变址寄存器时的变址寻址变址寻址内存内存20501000opX3 Ri00801080内存内存 2050 1080变址寄存器 1000Ri OP X3 Ri 0080Ri为内存变址单元时为内存变址单元时的变址寻址的变址寻址5.4 寻址方式寻址方式 基址寻址基址寻址面向系统面向系统,主要用于,主要用于逻辑地址到物理地逻辑地址到物理地址的变换址的变换,用来解决程序
37、在主存储器中的再定位和,用来解决程序在主存储器中的再定位和扩大寻址空间等问题。扩大寻址空间等问题。基址和变址的应用方向基址和变址的应用方向 变址寻址则变址寻址则面向用户面向用户,用于访问字符串、向量和,用于访问字符串、向量和数组等数组等成批数据成批数据,没有逻辑地址到物理地址的变换,没有逻辑地址到物理地址的变换功能。功能。 在一些小型机或微型机中,基址寻址和变址寻在一些小型机或微型机中,基址寻址和变址寻址实际上已经合二为一了。址实际上已经合二为一了。5.4 寻址方式寻址方式 段寻址基于基址寻址。操作数地址由段地址加段寻址基于基址寻址。操作数地址由段地址加地址码指定的偏移量得到。地址码指定的偏移
38、量得到。9 段寻址段寻址 S = ( E ) = ( ( R ) + D ) 段寄存器:段寄存器:专用寄存器,存放段地址。常用的专用寄存器,存放段地址。常用的段寄存器有:段寄存器有:CS(程序段段寄存器)、(程序段段寄存器)、DS(数据(数据段段寄存器)、段段寄存器)、SS(堆栈段段寄存器)、(堆栈段段寄存器)、ES(扩展(扩展数据段段寄存器),参见数据段段寄存器),参见5.8.2小节。小节。 Intel 8086 CPU由由16位段寄存器和位段寄存器和16位偏移量位偏移量产生产生20位物理地址。位物理地址。演示演示5.4 寻址方式寻址方式 操作数在堆栈中。操作数在堆栈中。10 堆栈寻址堆栈寻
39、址5.5 指令类型指令类型 一台计算机的指令系统通常有上百条或几百条一台计算机的指令系统通常有上百条或几百条指令,从它们所完成的功能来看,一个较为完善的指令,从它们所完成的功能来看,一个较为完善的指令系统,应具备以下各类指令:指令系统,应具备以下各类指令:5.5 指令类型指令类型 主要用于定点或浮点的算术运算。包括二进制主要用于定点或浮点的算术运算。包括二进制定点定点加、减、乘、除指令,加、减、乘、除指令,浮点浮点加、减、乘、除指加、减、乘、除指令,令,求反、求补求反、求补指令,指令,十进制十进制加、减运算指令等。加、减运算指令等。1 算术运算指令算术运算指令算术指令常用的状态标志位有:算术指
40、令常用的状态标志位有: Z 结果为结果为0 ; N 结果为负结果为负 ; V 结果溢出;结果溢出; C 产生进位或借位。产生进位或借位。5.5 指令类型指令类型 主要用于主要用于无符号数无符号数的位操作、代码的转换、判的位操作、代码的转换、判断及运算。包括与、或、非、异或等指令及相应的断及运算。包括与、或、非、异或等指令及相应的位操作。位操作。2 逻辑运算指令逻辑运算指令3 移位指令移位指令 包括算术移位、逻辑移位和循环移位指令。常包括算术移位、逻辑移位和循环移位指令。常用于实现简单的乘除运算。用于实现简单的乘除运算。 算术移位实现对有符号数的乘除运算;逻辑移算术移位实现对有符号数的乘除运算;
41、逻辑移位实现对无符号数的乘除运算。位实现对无符号数的乘除运算。5.5 指令类型指令类型算术移位算术移位逻辑移位逻辑移位5.5 指令类型指令类型小循环移位小循环移位大循环移位大循环移位5.5 指令类型指令类型 字符串处理指令是一种字符串处理指令是一种非数值非数值处理指令,这类处理指令,这类指令用在文字编辑中对大量字符串进行处理。指令用在文字编辑中对大量字符串进行处理。4 字符串处理指令字符串处理指令常用操作指令有:常用操作指令有: 字符串传送:将字符串从主存的一个区域区传送字符串传送:将字符串从主存的一个区域区传送到另一区域;到另一区域; 字符串转换:把一种编码的字符串转换成另一种字符串转换:把
42、一种编码的字符串转换成另一种编码的字符串;编码的字符串; 字符串替换:把某一字符串用另一字符串代替;字符串替换:把某一字符串用另一字符串代替;5.5 指令类型指令类型5 数据传送指令数据传送指令 字符串比较:一个字符串与另一个字符串逐个字符串比较:一个字符串与另一个字符串逐个 字符进行比较,以判断是否相等;字符进行比较,以判断是否相等; 字符串查询:查找在字符串中是否含有某一指定字符串查询:查找在字符串中是否含有某一指定的子串或字符;的子串或字符; 实现寄存器与寄存器,寄存器与存储单元以及实现寄存器与寄存器,寄存器与存储单元以及存储单元与存储单元之间的数据存储单元与存储单元之间的数据复制复制或
43、或交换交换。 主要包括取数指令、存数指令、传送指令、成主要包括取数指令、存数指令、传送指令、成组传送指令、字节交换指令等。组传送指令、字节交换指令等。5.5 指令类型指令类型 实现程序跳转。常见类型有:无条件转移指令、实现程序跳转。常见类型有:无条件转移指令、条件转移指令、转子程序指令、返回主程序指令、条件转移指令、转子程序指令、返回主程序指令、中断返回指令等。中断返回指令等。6 程序控制指令(转移指令)程序控制指令(转移指令)1、无条件转移指令:、无条件转移指令: 不受任何条件约束,直接把程序转移到指令规不受任何条件约束,直接把程序转移到指令规定的地方。常见指令:定的地方。常见指令:JMP。
44、5.5 指令类型指令类型2、条件转移指令:、条件转移指令: 先测试设置的判断条件,然后根据测试结果决先测试设置的判断条件,然后根据测试结果决定是否转移。定是否转移。 算术标志位(算术标志位(Z、N、V、C)常用作判断条件,)常用作判断条件,此类指令较多,详见此类指令较多,详见P151152。根据寻址方式不同,条件转移可分为:根据寻址方式不同,条件转移可分为: 相对转移:转移地址相对转移:转移地址PCPC + 地址码(相对寻址)地址码(相对寻址) 绝对转移:转移地址绝对转移:转移地址PC地址码(直接寻址)地址码(直接寻址)5.5 指令类型指令类型3、转子指令:、转子指令: 转向子程序入口,并将原
45、程序中下一条指令地转向子程序入口,并将原程序中下一条指令地址(址(PC)存入内存单元(或寄存器、堆栈)中,以)存入内存单元(或寄存器、堆栈)中,以便为返回主程序时提供返回地址。便为返回主程序时提供返回地址。4、返回指令:、返回指令: 从内存单元(或寄存器、堆栈)中取出返回地从内存单元(或寄存器、堆栈)中取出返回地址,返回主程序继续执行调用指令的下一条指令。址,返回主程序继续执行调用指令的下一条指令。5、中断返回指令:、中断返回指令: 中断服务程序完成后,恢复断点,返回主程序,中断服务程序完成后,恢复断点,返回主程序,继续从断点处开始执行指令。继续从断点处开始执行指令。5.5 指令类型指令类型
46、陷阱是一种陷阱是一种意外事故中断意外事故中断,目的是把发生的故,目的是把发生的故障通知障通知CPU,并根据故障的情况转入相应的故障处,并根据故障的情况转入相应的故障处理程序。理程序。7 陷阱指令陷阱指令 陷阱指令是一种陷阱指令是一种隐含指令隐含指令(不出现在指令系统(不出现在指令系统中,其功能以指令的形式隐含地完成),用户不能中,其功能以指令的形式隐含地完成),用户不能使用。当故障出现时,由使用。当故障出现时,由CPU自动产生并执行,故自动产生并执行,故又叫又叫自中断指令自中断指令。 陷阱触发后,中断强制执行,不可屏蔽!陷阱触发后,中断强制执行,不可屏蔽!5.5 指令类型指令类型堆栈:堆栈:8
47、 堆栈指令堆栈指令 堆栈是一组能存取数据的暂时存储单元(类似堆栈是一组能存取数据的暂时存储单元(类似主存),很多计算机把主存的一部分用作堆栈。主存),很多计算机把主存的一部分用作堆栈。 堆栈和其它形式的存储器之间的差别是:它们堆栈和其它形式的存储器之间的差别是:它们对数据的对数据的存取方法存取方法和和寻址方式寻址方式有所不同。有所不同。 堆栈采用先进后出堆栈采用先进后出(FILO:first in last out)的存的存取方式(取方式(破坏性读出破坏性读出)。栈底固定不变,栈顶为数)。栈底固定不变,栈顶为数据通道。据通道。任何堆栈操作只能在栈顶进行。任何堆栈操作只能在栈顶进行。5.5 指令
48、类型指令类型堆栈指针堆栈指针SP (stack pointer): 用于软堆栈指出栈顶地址的寄存器或存储器单元。用于软堆栈指出栈顶地址的寄存器或存储器单元。堆栈分类:堆栈分类: 按构成方式不同分串联堆栈和存储器堆栈两种。按构成方式不同分串联堆栈和存储器堆栈两种。串联堆栈(硬堆栈):串联堆栈(硬堆栈): 由由8或或16个具有移位功能的寄存器组成。操作速个具有移位功能的寄存器组成。操作速度快。但它要受到寄存器数目的限制。度快。但它要受到寄存器数目的限制。演示演示演示演示演示演示5.5 指令类型指令类型存储器堆栈(软堆栈):存储器堆栈(软堆栈): 利用一部分主存空间构成堆栈,需要指针利用一部分主存空
49、间构成堆栈,需要指针SP指指示栈顶的移动情况。当软堆栈建立后,该部分存储示栈顶的移动情况。当软堆栈建立后,该部分存储区则不能再作他用。区则不能再作他用。演示演示演示演示演示演示存储器堆栈的优点有:存储器堆栈的优点有: 堆栈的堆栈的长度长度可视程序的要求任意设置;可视程序的要求任意设置; 堆栈的堆栈的数目数目可由程序员任意规定;可由程序员任意规定; 可使用对存储器寻址的任何一条指令来对堆栈中可使用对存储器寻址的任何一条指令来对堆栈中的数据进行的数据进行寻址寻址。5.5 指令类型指令类型堆栈操作:堆栈操作: 入栈:入栈:把指定的操作数送入堆栈栈顶。堆栈指针把指定的操作数送入堆栈栈顶。堆栈指针SP
50、- n(n = 压入数据的字节数)。压入数据的字节数)。入栈指令:入栈指令:PUSH。 出栈:出栈:把栈顶的数据取出,送到指令指定的单元。把栈顶的数据取出,送到指令指定的单元。堆栈指针堆栈指针SP+n(n = 压入数据的字节数)。压入数据的字节数)。出栈指令:出栈指令:POP。堆栈功能:堆栈功能: 除具备主存的功能外,堆栈常用于中断、子程除具备主存的功能外,堆栈常用于中断、子程序调用过程中序调用过程中保存返回地址、状态标志及现场信息保存返回地址、状态标志及现场信息。也常用于子程序调用及返回时的也常用于子程序调用及返回时的参数传递参数传递。5.5 指令类型指令类型9 I/O指令指令 用来启动外围
51、设备,检查测试外围设备的工作用来启动外围设备,检查测试外围设备的工作状态,并实现外部设备和状态,并实现外部设备和CPU之间,或外围设备与之间,或外围设备与外围设备之间的信息传送。外围设备之间的信息传送。 指令格式:指令格式: OPCODERA操作码,表示操作码,表示I/O指令。指令。寄存器名,指定与外部设备寄存器名,指定与外部设备交换数据的寄存器。交换数据的寄存器。外设的某寄存器地址外设的某寄存器地址或设备码,长度一般或设备码,长度一般为为816位,可表示位,可表示25664K个地址。个地址。5.5 指令类型指令类型10 特权指令特权指令 具有特殊权限的指令。这类指令只用于操作系具有特殊权限的
52、指令。这类指令只用于操作系统或其他系统软件,一般统或其他系统软件,一般不直接提供给用户使用不直接提供给用户使用。 在多用户、多任务的计算机系统中特权指令必在多用户、多任务的计算机系统中特权指令必不可少。它不可少。它主要用于系统资源的分配和管理主要用于系统资源的分配和管理。包括。包括改变系统的工作方式、检测用户的访问权限、修改改变系统的工作方式、检测用户的访问权限、修改虚拟存储器管理的段表、页表和完成任务的创建和虚拟存储器管理的段表、页表和完成任务的创建和切换等。切换等。 5.5 指令类型指令类型11 其他指令其他指令主要包括:主要包括: 向量指令;向量指令; 多处理机指令;多处理机指令; 控制
53、类指令:控制类指令: 常用的控制类指令有:等待指令、停机指令、常用的控制类指令有:等待指令、停机指令、空操作指令、开中断、关中断、置条件码(状态寄空操作指令、开中断、关中断、置条件码(状态寄存器置位)指令、复位指令、测试指令等。存器置位)指令、复位指令、测试指令等。5.7 RISC、CISCCISCCISC 时代背景:时代背景:l 随着硬件成本不断下降,软件成本不断上升,随着硬件成本不断下降,软件成本不断上升,促进人们在指令系统中增加更多的指令和更复杂促进人们在指令系统中增加更多的指令和更复杂的指令,以适应不同应用领域的需要。的指令,以适应不同应用领域的需要。 Complex Instruct
54、ion Set Computerl 系列机问世之后,为了能做到程序兼容,新机系列机问世之后,为了能做到程序兼容,新机型除了要继承老机器的全部指令外,还要增加若型除了要继承老机器的全部指令外,还要增加若干新的指令,从而导致同一系列计算机的指令系干新的指令,从而导致同一系列计算机的指令系统越来越复杂,机器结构也越来越复杂。统越来越复杂,机器结构也越来越复杂。5.7 RISC、CISC 目前,大多数计算机的指令系统多到几百条目前,大多数计算机的指令系统多到几百条指令。指令。 这就体现了计算机性能越高,其指令系这就体现了计算机性能越高,其指令系统越复杂的传统设计思想。这类计算机称为统越复杂的传统设计思
55、想。这类计算机称为“复复杂指令系统计算机杂指令系统计算机”,简称,简称CISC(Complex Instruction Set Computer)。)。 例如:例如:VAX11/780计算机有计算机有303条指令,条指令,18种种寻址方式;寻址方式;Pentium机有机有191条指令,条指令,9种寻址方式。种寻址方式。CISC 现状:现状:5.7 RISC、CISCRISCRISC 时代背景:时代背景: 复杂指令需进行复杂的操作,从而降低了机器复杂指令需进行复杂的操作,从而降低了机器的执行速度。的执行速度。 Reduced Instruction Set Computer 日趋庞大的指令系统使
56、计算机的研制周期变长,日趋庞大的指令系统使计算机的研制周期变长,且增加了调试和维护的难度,还可能降低系统的且增加了调试和维护的难度,还可能降低系统的性能。性能。 1975年年IBM公司开始研究指令系统的合理性问公司开始研究指令系统的合理性问题,题, John Cocke提出了精简指令系统的想法。提出了精简指令系统的想法。5.7 RISC、CISC 第一代第一代RISC处理器处理器 采用采用VLSI CPU芯片芯片, 片上晶体管数为片上晶体管数为44000个个, 线宽线宽3 m,字长,字长32位;位; 有有128个寄存器,均为个寄存器,均为32位;位; 只有只有31条指令,两种寻址方式。条指令,
57、两种寻址方式。 1982年美国加州伯莱克大学研究的年美国加州伯莱克大学研究的RISC I机机: 同时,斯坦福大学推出同时,斯坦福大学推出MIPS机,机,IBM公司推出公司推出IBM 801机,显示了机,显示了RISC的生命力,并推动了的生命力,并推动了RISC技术的不断发展。技术的不断发展。5.7 RISC、CISC 第二代第二代RISC处理器处理器 第二代第二代RISC处理器在第一代的基础上提高了处理器在第一代的基础上提高了集成度集成度和和时钟频率时钟频率,建立了比较完善的,建立了比较完善的Cache分层分层存储体系存储体系。 它们已具有单指令流水线,每次顺序执行多条它们已具有单指令流水线,
58、每次顺序执行多条指令,每个周期发出一条指令。指令,每个周期发出一条指令。 例如,例如,MIPS公司的公司的R3000处理器,则采用了处理器,则采用了25MHZ和和33MHZ的时钟频率,芯片集成度是的时钟频率,芯片集成度是11.5万晶体管,字长万晶体管,字长32位。位。5.7 RISC、CISC 第三代第三代RISC处理器处理器 第三代第三代RISC处理器则采用了巨型计算机或大型处理器则采用了巨型计算机或大型计算机的设计技术计算机的设计技术超级流水线超级流水线(Superpipelining)技术和超标量技术和超标量(Superrscalar)技术。提高了指令级并技术。提高了指令级并行处理能力。
59、行处理能力。 例如,例如,MIPS公式的公式的R4000处理器采用处理器采用50MHZ和和75MHZ的外部时钟频率(内部流水线时钟是的外部时钟频率(内部流水线时钟是100MHZ和和150MHZ),芯片集成度高达),芯片集成度高达110万晶体万晶体管,字长是管,字长是64位,并包含有位,并包含有16KB的的Cache。5.7 RISC、CISCRISC 构成原理:构成原理: 对对CISC指令系统所作的运行统计分析表明,各指令系统所作的运行统计分析表明,各种指令种指令使用频率使用频率相差悬殊,常用的较为简单的指令,相差悬殊,常用的较为简单的指令,仅占指令总数的仅占指令总数的20%,但在程序中使用的
60、频率却占,但在程序中使用的频率却占80。 RISC技术的实质是要求指令系统简化,尽量使技术的实质是要求指令系统简化,尽量使用用寄存器寄存器寄存器寄存器操作指令,指令操作在操作指令,指令操作在一个周期一个周期内内完成,指令完成,指令格式格式力求一致,以利于提高编译的效力求一致,以利于提高编译的效率。率。5.7 RISC、CISC 下表是下表是 HP 公司研究了公司研究了 IBM 370 计算机的高计算机的高级语言运行情况后所得到的统计数据:级语言运行情况后所得到的统计数据:指令类别指令类别转移转移逻辑操作逻辑操作存数取数存数取数存储单元送存储单元存储单元送存储单元整数运算整数运算浮点运算浮点运算
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论