《第8章 指令系统ppt课件.ppt》由会员分享,可在线阅读,更多相关《第8章 指令系统ppt课件.ppt(112页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第8章 指令系统23第八章第八章 指令系统指令系统重点内容: 指令系统的发展与性能要求; 机器指令的设计要素; 指令格式; 操作数类型和操作类型; 指令和数据的寻址方式; RISC技术。 48.1 8.1 指令系统的发展与性能要求 计算机的程序由一系列的机器指令组成 指令就是要计算机执行某种操作的命令 指令是计算机硬件能够识别并直接执行的操作命令 它指示计算机硬件完成指定的基本操作 从计算机组成的层次结构来说,计算机的指令有微指令、机器指令和宏指令之分。58.1 8.1 指令系统的发展与性能要求 微指令是微程序级的命令,它属于硬件 宏指令是由若干条机器指令组成的软件指令,它属于软件 机器指令则
2、介于微指令与宏指令之间,通常简称为指令,每一条指令可完成一个独立的算术运算或逻辑运算操作 本章所讨论的指令,是机器指令。68.1 8.1 指令系统的发展与性能要求 一台计算机中所有机器指令的集合,称为这台计算机的指令系统。 指令系统是表征一台计算机性能的重要因素,它的格式与功能不仅直接影响到机器的硬件结构,而且也直接影响到系统软件和机器的适用范围。 78.1.1 指令系统的发展 20世纪50年代,由于受器件限制,计算机的硬件结构比较简单,所支持的指令系统只有定点加减、逻辑运算、数据传输、转移等十几至几十条指令。 20世纪60年代后期,随着集成电路的出现,硬件功能不断增强,指令系统越来越丰富,除
3、以上基本指令外,还设置了乘除运算、浮点运算、十进制运算、字符串处理等指令,指令数目多达一二百条,寻址方式也趋多样化。 88.1.1 指令系统的发展 20世纪60年代后期开始出现系列计算机。 系列计算机,是指基本指令系统相同、基本体系结构相同的一系列计算机。 Pentium系列就是当前流行的一种个人机系列。 一个系列往往有多种型号,通常是新机种在性能和价格方面比旧机种优越。 系列机解决了各机种的软件兼容问题,其必要条件是同一系列的各机种有共同的指令集,而且新推出的机种指令系统一定包含所有旧机种的全部指令。因此旧机种上运行的各种软件可以不加任何修改便在新机种上运行,大大减少了软件开发费用。 98.
4、1.1 指令系统的发展 CISC 20世纪70年代末期,随着VLSI技术的飞速发展而越来越复杂化,大多数计算机的指令系统多达几百条,称这些计算机为复杂指令系统计算机(CISC)。 RISC 庞大的指令系统不但使计算机的研制周期变长,难以保证正确性,不易调试维护,而且由于采用了大量使用频率很低的复杂指令而造成硬件资源浪费。为此提出了便于VLSI技术实现的精简指令系统计算机(RISC)。108.1.2 指令系统的性能要求 (1)完备性 指用汇编语言编写各种程序时,指令系统直接提供的指令足够使用,而不必用软件来实现。 (2)有效性 指利用该指令系统所编写的程序占据存储空间小、执行速度快。 118.1
5、.2 指令系统的性能要求 (3)规整性 对称性是指在指令系统中所有的寄存器和存储器单元都可同等对待,所有的指令都可使用各种寻址方式; 匀齐性是指一种操作性质的指令可以支持各种数据类型,如算术运算指令可支持字节、字、双字整数的运算,十进制数运算和单、双精度浮点数运算等; 指令格式和数据格式的一致性是指,指令长度和数据长度有一定的关系,以方便处理和存取。 128.1.2 指令系统的性能要求 (4)兼容性 系列机各机种之间具有相同的基本结构和共同的基本指令集,因而指令系统是兼容的,即各机种上基本软件可以通用。 由于不同机种推出的时间不同,在结构和性能上有差异,做到所有软件都完全兼容是不可能的,只能做
6、到“向上兼容”,即低档机上运行的软件可以在高档机上运行。 138.1.3 低级语言与硬件结构的关系 程序是人们把需要用计算机解决的问题变换成计算机能够识别的一串指令或语句 。 编程语言有高级语言和低级语言之分。 低级语言分机器语言(二进制语言)和汇编语言(符号语言),它们都是面向机器的语言,和具体机器的指令系统密切相关。 高级语言的语句和用法与具体机器的指令系统无关。14机器语言汇编语言高级语言高级语言机器能直接识别正确机器能直接识别正确执行的语言。用二进执行的语言。用二进制形式表示。制形式表示。面向机器的符号语言,面向机器的符号语言,需要借助汇编程序或需要借助汇编程序或编译程序翻译。编译程序
7、翻译。接近自然语言,需要接近自然语言,需要通过编译或解释后才通过编译或解释后才能执行。能执行。低低级级语语言言8.1.3 低级语言与硬件结构的关系 15比较项比较项 目目高级语言高级语言低级语言低级语言1 1对程序员的训练要求对程序员的训练要求(1)(1)通用算法通用算法(2)(2)语言规则语言规则(3)(3)硬件知识硬件知识 有有 较少较少 不要不要 有有 较多较多要要2 2对机器独立的程度对机器独立的程度 独立独立不独立不独立3 3编制程序的难易程度编制程序的难易程度易易难难4 4编制程序所需时间编制程序所需时间短短 较长较长5 5程序执行时间程序执行时间 较长较长短短6 6编译过程中对计
8、算机编译过程中对计算机资源的要求资源的要求多多少少8.1.3 低级语言与硬件结构的关系 168.2 8.2 机器指令的设计要素 CPU的操作被它执行的指令所确定。这些指令被称为机器指令(Machine Instruction)或计算机指令。 CPU可完成的各类功能反映在为CPU定义的各类指令中。 CPU执行的各种不同指令的集合称为CPU的指令集(Instruction Set) 17 机器指令设计的要素主要有: 操作码(Operation Code) 指定将要完成的操作类型(如ADD、MOV等),这些二进制代码常简称为Opcode。 源操作数地址(Source Operand Referenc
9、e) 操作会涉及一个或多个源操作数,它指明从哪里得到源操作数。 目的操作数地址(Result Operand Reference) 它指明操作结果被存放的地方。 下一条指令的地址(Next Instruction Reference) 告诉CPU这条指令执行完成后到哪儿去取下一个指令。 8.2.1 机器指令格式 18 源操作数和目的操作数一般存放在以下3个位置: 主存或虚存。 与下一条指令的引用一样,必须提供主存或虚存的地址。 CPU寄存器。 除极少数例外,一个CPU总有一个或多个能被机器指令所访问的寄存器。 I/O设备。 需要I/O操作的指令必须指定I/O模块或设备的地址。8.2.1 机器指
10、令格式 198.2.1 机器指令格式 机器指令格式,是机器指令用二进制代码表示的结构形式,通常由操作码字段和地址码字段组成。 一条指令的结构可用如下形式来表示: 操作码字段表征指令的操作特性与功能 地址码字段通常指定参与操作的操作数的地址操作码字段地址码字段208.2.1 机器指令格式 机器指令格式设计的主要目标 节省程序的存储空间。 指令格式要尽量规整,减少硬件译码的复杂程度。 优化后不能降低指令的执行速度。218.2.1 机器指令格式 机器指令符号表示法(Symbol Representation) 操作码被缩写成助记符(Memonic)来表示。 例如: 操作数也可用符号表示。例如,指令:
11、 ADD R, Y 它将存储器Y位置中的数据值加到寄存器R内容上 注意,操作针对位置的内容进行,而非对它的地址 uADD:加uDIV:除uSUB:减uLOAD:由存储器装入uMPY:乘uSTOR:存到存储器 22 操作码(Opcode) 指明即将完成的操作 源操作数和目的操作数的引用方式, 通常隐式指明下一个指令的引用方式。 操作码指定的操作类型: 算术和逻辑运算 在两个寄存器、寄存器和存储器或两个存储器位置之间传输数据; I/O操作 控制操作8.2.2 操作码设计 23 不同的指令用操作码字段的不同编码来表示,每一种编码代表一种指令。 CPU中的专门电路用来解释每个操作码,因此机器就能执行操
12、作码所表示的操作。 组成操作码字段的位数一般取决于计算机指令系统的规模。一般来说,一个包含n位的操作码最多能够表示2n条指令。8.2.2 操作码设计 24 对于一个机器的指令系统,在指令字中操作码字段和地址码字段长度通常是固定的。 在单片机中,由于指令字较短,为了充分利用指令字长度,指令字的操作码字段和地址码字段是不固定的,即不同类型的指令有不同的划分,以便尽可能用较短的指令字长来表示越来越多的操作种类,并在越来越大的存储空间中寻址。 8.2.2 操作码设计 25 固定长度操作码 一般处理机的指令条数通常为几十条至几百条,用一个字节(8位)表示,非常规整,硬件译码也很简单。 IBM公司生产的大
13、中型计算机中,许多RISC计算机都采用这种编码方法。 主要缺点是:浪费了许多信息量,即操作码的总长度增加。典型情况下,操作码的总长度要增加40%左右。8.2.2 操作码设计 26 Huffman编码法 1952年由Huffman首先提出的一种编码方法 必须先知道各种指令在程序中出现的概率,通常可以通过对已有典型程序进行统计得到 能够使操作码的平均长度最短,信息的冗余量最小 缺点:所形成的操作码很不规整,既不利于硬件的译码,也不利于软件的编译。另外,它也很难与地址码配合,形成有规则长度的指令编码 8.2.2 操作码设计 27 扩展编码法 许多计算机中采用的一种折中方法 由固定长操作码与Huffm
14、an编码法相结合形成的 实现方式,通过下一小节的例8-1加以说明8.2.2 操作码设计 28 一条指令需要的最大地址数是多少? 算术和逻辑指令要求的操作数最多。 指令一般需要含有4个地址段:两个操作数,一个结果,以及下一指令地址。 实际上,四地址的指令极少。大多数CPU使用的是以下一指令地址为隐含的(由程序计数器得到)单地址、双地址或三地址的变体。8.2.3 地址码设计 298.2.3 地址码设计 3 32 21 14 43 3操作码操作码2 21 1操作码操作码2 21 1操作码操作码1 1操作码操作码操作码操作码30 零地址指令的指令中只有操作码,而没有地址码。 不需要地址码或者有一个或两
15、个隐含地址。 基本格式: OP 例: NOP 空操作指令 HLT 停机指令8.2.3 地址码设计 31 一地址指令常称单操作数指令。 可有一个或两个操作数。当有两个操作数时,一个由指令指明地址,另一个隐含地址为堆栈或累加器。 基本格式:OP A 动作:(AC) OP (A) AC 例如: INC OPD 单操作数指令 MUL OPD 双操作数指令 PUSH OPS 双操作数指令8.2.3 地址码设计 32 二地址指令常称双操作数指令,有两个地址码字段A1和A2,分别指明参与操作的两个数在内存中或运算器通用寄存器的地址。 A1兼做存放操作结果的地址。 基本格式:OP A1,A2 动作:(A1)
16、OP (A2) A1 例如: ADD OPD,OPS MOV OPD,OPS 8.2.3 地址码设计 33 三地址指令字中有三个操作数地址 A1:源操作数地址 A2:操作数地址,或称为终点操作数地址 A3:存放操作结果的地址 基本格式:OP A1,A2,A3 动作:(A1) OP (A2) A3 例如: ADD R1,R2,R3 含义是(R3)=(R1)+(R2)8.2.3 地址码设计 34 在二地址指令格式中,从操作数的物理位置来说,又可归结为3种类型: 存储器存储器(SS)型指令 访问内存的指令格式 访存数据多,速度慢 寄存器寄存器(RR)型指令 访问寄存器的指令格式 访问寄存器,速度快
17、寄存器-存储器(RS)型指令 既要访问内存单元,又要访问寄存器 速度介于SS型指令和RR型指令之间8.2.3 地址码设计 35【例8-1】指令字长为16位,其中4位为基本操作码字段OP,另外3个4位长的地址字段A1、A2、A3。4位基本操作码若全部用于三地址指令,则只有16条指令。现在对指令的操作码进行等长(等于地址码长度)扩展。要求,三地址指令15条,二地址指令15条,一地址指令15条,零地址指令16条。8.2.3 地址码设计 368.2.3 地址码设计 解:扩展方法如图所示.378.2.4 指令集设计 计算机设计的一个最具影响的方面是指令集的设计。 指令集的设计是一件很复杂的事情,因为它影
18、响计算机系统的诸多方面。 指令集定义了CPU应完成的多数功能,它对CPU的实现有很大的影响。 指令集也是程序员控制CPU的方式,设计指令集时必须考虑程序员的要求。 388.2.4 指令集设计 在指令集设计的最根本出发点中,最重要的方面包括有: 操作指令表(Operation Repertoire):应提供多少和什么样的操作以及操作的复杂程度。 数据类型(Data Types):所支持的数据类型。 指令格式(Instruction Format):指令的(位)长度、地址数目、各个字段的大小等。 寄存器(Registers):能被指令访问的CPU寄存器数目以及它们的用途。 寻址方式(Address
19、ing Mode):指定操作数地址的产生方式。 398.2.4 指令集设计 机器指令的集合必须充分,足以表达任何高级语言的指令形式。 基于这些考虑,可将指令分成以下4类: 数据处理:算术和逻辑指令。 数据存储:存储器指令。 数据传输:I/O指令。 控制:测试和转移指令。408.2.4 指令集设计 一个较完善的指令系统,应当包括: 数据传输指令 算术运算指令 逻辑运算指令 程序控制指令 输入/输出指令 字符串指令 系统控制指令:特权指令、其他指令418.2.5 指令集字长 指令字长: 指一个指令字中包含二进制代码的位数。 机器字长 指计算机能直接处理的二进制数据的位数 决定了计算机的运算精度。
20、机器字长通常与主存单元的位数一致。 单字长指令:指令字长等于机器字长度的指令 半字长指令:指令字长等于半个机器字长度的指令 双字长指令:指令字长等于两个机器字长度的指令。 428.2.5 指令集字长 使用多字长指令的目的 提供足够的地址位来解决访问内存任何单元的寻址问题, 主要缺点: 必须两次或多次访问内存以取出一整条指令,降低了CPU的运算速度; 同时又占用了更多的存储空间。43例8-2指令格式如下所示,其中OP为操作码,试分析指令格式的特点。 15 9 7 4 3 0OPOP源寄存器源寄存器目标寄存器目标寄存器解:单字长二地址指令。操作码字段OP可以指定128条指令。 源寄存器和目标寄存器
21、都是通用寄存器(可分别指定16个),所以是RR型指令,两个操作数均在寄存器中。 这种指令结构常用于算术逻辑运算类指令。 44解:双字长二地址指令,用于访问存储器。操作码字段OP为6位,可以指定64种操作。 一个操作数在源寄存器(共16个),另一个操作数在存储器中(由变址寄存器和位移量决定),所以是RS型指令。例8-3 指令格式如下所示,OP为操作码字段,试分析指令格式特点。 15 10 7 430 OPOP-源寄存器源寄存器变址寄存器变址寄存器位移量位移量(16(16位位) )458.3 指令和操作数的寻址方式 操作数或指令在存储器中的地址 指当某个操作数或某条指令存放在某个存储单元时,其存储
22、单元的编号。 寻址方式 指在采用地址指定方式时,寻找操作数或指令地址的方式。 寻址方式的分类 指令寻址 操作数寻址468.3.1 指令的寻址方式 顺序寻址方式 由于指令地址在内存中按顺序安排,当执行一段程序时,通常是一条指令接一条指令的顺序进行。 也就是说,从存储器取出第一条指令,然后执行这条指令;接着从存储器取出第二条指令,再执行第二条指令;接着再取出第三条指令这种程序顺序执行的过程,称为指令的顺序寻址方式。 为此,必须使用程序计数器(又称指令指针寄存器)PC来计数指令的顺序号,该顺序号就是指令在内存中的地址。 478.3.1 指令的寻址方式 指令顺序寻址方式示意图488.3.1 指令的寻址
23、方式 跳跃寻址方式 当程序转移执行的顺序时,指令的寻址就采取跳跃寻址方式。 跳跃,是指下条指令的地址码不是由程序计数器给出,而是由本条指令给出。程序跳跃后,按新的指令地址开始顺序执行。指令计数器的内容也必须相应改变,以便及时跟踪新的指令地址。 采用指令跳跃寻址方式,可以实现程序转移或构成循环程序 指令系统中的各种条件转移或无条件转移指令,就是为了实现指令的跳跃寻址而设置的。 498.3.1 指令的寻址方式 指令跳跃寻址方式示意图508.3.2 操作数寻址方式 操作数的寻址方式是指形成操作数的有效地址的方法。 由于指令中操作数字段的地址码是由形式地址和寻址方式特征位等组合形成,因此,一般来说,指
24、令中所给出的地址码,并不是操作数的有效地址(EA)。518.3.2 操作数寻址方式 形式地址A也称偏移量,它是指令字结构中给定的地址量。 寻址方式特征位,此处由间址位和变址位组成。 寻址过程就是把操作数的形式地址变换为操作数的有效地址的过程。 528.3.2 操作数寻址方式 隐含寻址 指令中不明显地给出操作数的地址,而是在指令中隐含着操作数的地址 累加寄存器AC对单地址指令格式就是隐含地址 隐含寻址在指令字中减少了一个地址,有利于缩短指令字长 例: MUL OPS POP OPS538.3.2 操作数寻址方式 立即寻址 指令的地址字段指出的不是操作数的地址,而是操作数本身 即:操作数=A 特点
25、是指令执行时间很短,因为不需要访问内存取数,从而节省了访问内存的时间。 例: MOV AX ,0 MOV AL ,a548.3.2 操作数寻址方式 直接寻址 地址字段中直接指出操作数在内存的地址A,而不需要经过某种变换 即:EA=A 例: MOV AL ,1000H 558.3.2 操作数寻址方式 直接寻址方式的示意图568.3.2 操作数寻址方式 直接寻址 优点:寻找操作数比较简单,不需要专门计算操作数的地址,在指令的执行阶段对主存只访问一次。 缺点: A的位数限制了指令的寻址范围,而且必须修改A的值,才能修改操作数的地址。578.3.2 操作数寻址方式 间接寻址 间接寻址是相对于直接寻址而
26、言的 形式地址A不是操作数的真正地址,而是操作数有效地址所在的存储单元地址 即: EA(A)588.3.2 操作数寻址方式 间接寻址方式的示意图598.3.2 操作数寻址方式 间接寻址 优点:扩大了操作数的寻址范围。 缺点: 在指令的执行阶段需要访问主存两次(一次间接)或多次(多次间接),使指令执行时间延长。608.3.2 操作数寻址方式 寄存器寻址 操作数不放在内存中,而是放在CPU的通用寄存器中 指令中给出的操作数地址不是内存的地址单元号,而是通用寄存器的编号 即: EAR618.3.2 操作数寻址方式 寄存器寻址方式的示意图628.3.2 操作数寻址方式 寄存器寻址 优点: 指令中仅需要
27、一个较小的地址字段; 不需要存储器访问,对于CPU内部的寄存器的存取时间远小于主存存取时间。 缺点: 地址空间很有限。 哪些值应保留在寄存器中,哪些值应存在存储器中,这由程序员决定。638.3.2 操作数寻址方式 寄存器间接寻址 寄存器内容不是操作数,而是操作数的地址 该地址指明的操作数在内存中 即: EA(R)648.3.2 操作数寻址方式 寄存器间接寻址方式的示意图658.3.2 操作数寻址方式 寄存器间接寻址 优点和不足基本上同于间接寻址。 二者的地址空间限制(有限的地址范围)都通过将地址字段指向一个容有全长地址的位置后就被克服了。 寄存器间接寻址比间接寻址少一次存储器访问。668.3.
28、2 操作数寻址方式 相对寻址 把程序计数器PC的内容加上指令格式中的形式地址A而形成操作数的有效地址。 程序计数器的内容是当前指令的地址。相对寻址就是相对于当前的指令地址而言。 即: EA(PC)+A678.3.2 操作数寻址方式 相对寻址方式的示意图688.3.2 操作数寻址方式 相对寻址 形式地址A通常称为偏移量,其值可正可负,相对于当前指令地址进行浮动,因此,无论程序在主存的哪段区域,都可以正确运行。 优点:程序员无需用指令的绝对地址编程,因而所编程序可以放在内存任何地方。698.3.2 操作数寻址方式 基址寻址 将CPU中基址寄存器BR的内容,加上指令格式中的形式地址而形成操作数的有效
29、地址 。 即: EA(BR)+A708.3.2 操作数寻址方式 采用专用基址寄存器BR的基址寻址方式示意图718.3.2 操作数寻址方式 采用通用寄存器作为基址寄存器BR的基址寻址方式示意图728.3.2 操作数寻址方式 基址寻址 优点:可以扩大寻址能力。 因为同形式地址相比,基址寄存器的位数可以设置得很长,从而可以在较大的存储空间中寻址。738.3.2 操作数寻址方式 变址寻址 将CPU中某个变址寄存器IX的内容与偏移量A相加来形成操作数有效地址 。 即: EA(IX)+A748.3.2 操作数寻址方式 采用专用变址寄存器IX的变址寻址方式示意图758.3.2 操作数寻址方式 采用通用寄存器
30、作为变址寄存器IX的变址寻址方式示意图768.3.2 操作数寻址方式 变址寻址 使用变址寻址方式的目的不在于扩大寻址空间,而在于实现程序块的规律变化。 为此必须使变址寄存器的内容实现有规律的变化(如自增1,自减1,乘比例系数)而不改变指令本身,从而使有效地址按变址寄存器的内容实现有规律的变化,这个特点可用于处理数组问题。778.3.2 操作数寻址方式 变址寻址 变址寻址可以和其他寻址方式结合使用。 如变址寻址和基址寻址合用,此时有效地址EA等于指令字中的形式地址A和变址寄存器IX的内容(IX)以及基址寄存器BX中的内容(BX)相加之和。即: EAA+(IX)+(BX) 变址寻址还可以和间址合用
31、,形成先变址后间址或先间址后变址等寻址方式。 788.3.2 操作数寻址方式 【例8-4】设相对寻址的转移指令占3个字节,第一字节为操作码,第二、三字节为相对位移量(补码表示),而且数据在存储器中采用以低字节地址为字地址的存放方式。每当CPU从存储器取出一个字节时,即自动完成(PC)+ 1 PC。 若PC 当前值为240(十进制),要求转移到200(十进制),则转移指令的第二、三字节的机器代码是什么?解:PC当前值为240,该指令取出后PC值为243,要求转移到200,即相对位移量为200 243 43,转换成补码为D5H。由于数据在存储器中采用以低字节地址为字地址的存放方式,故该转移指令的第
32、二字节为D5H,第三字节为FFH。798.3.2 操作数寻址方式 堆栈寻址 在堆栈寻址的指令字中没有形式地址码字段,是一种零地址指令。 堆栈寻址要求计算机中设有堆栈。堆栈既可用寄存器组(称为硬堆栈)来实现,也可利用主存的一部分空间做堆栈(称为软堆栈)。 堆栈的运行方式为先进后出或先进先出两种,先进后出型堆栈的操作数只能从一个口进行读或写。808.3.2 操作数寻址方式 软堆栈压栈(PUSH A)的寻址过程818.3.2 操作数寻址方式 软堆栈出栈(POP A)的寻址过程828.3.2 操作数寻址方式 【例8-5】一条双字长直接寻址的子程序调用指令,其第一个字为操作码和寻址特征,第二个字为地址码
33、5000H。假设PC当前值为2000H,SP 的内容为0100H,栈顶内容为2746H,存储器按字节编址,而且进栈操作是先(SP) SP,后存入数据。试回答下列几种情况下,PC、SP 及栈顶内容各为多少? CALL指令被读取前和被执行后。 子程序返回后。解: CALL 指令被读取前,PC 2000H、SP 0100H,栈顶内容为2746H。CALL 指令被执行后,由于存储器按字节编址,CALL 指令共占4B,故程序断点2004H进栈,此时SP (SP) 2 00FEH,栈顶内容为2004H,PC 被更新为子程序入口地址5000H。 子程序返回后,程序断点出栈,PC 2004H,SP 被修改为0
34、100H,栈顶内容为2746H。 83例8-6一种二地址RS型指令的结构如下所示:其中I为间接寻址标志位,X为寻址模式字段,D位偏移量字段。通过I,X,D的组合,可构成下表所示的寻址方式。请写出六种寻址方式的名称。6位 4位 1位 2位 16位偏移量偏移量DXI通用寄存器通用寄存器OP寻址方式寻址方式I IX X有效地址有效地址E E算法算法说明说明答案答案(1)(1)0 00000E=DE=D(2)(2)0 00101E=(PC)+DE=(PC)+DPCPC为程序计数器为程序计数器(3)(3)0 01010E=(R2)+DE=(R2)+DR2R2为变址寄存器为变址寄存器(4)(4)1 111
35、11E=(R3)E=(R3)(5)(5)1 10000E=(D)E=(D)(6)(6)0 01111E=(R1)+DE=(R1)+DR1R1为基址寄存器为基址寄存器直接寻址直接寻址相对寻址相对寻址变址寻址变址寻址寄存器间接寻址寄存器间接寻址间接寻址间接寻址基址寻址基址寻址848.3.2 操作数寻址方式 【例8-7】设某机配有基址寄存器和变址寄存器,采用一地址格式的指令系统,允许直接和间接寻址,且指令字长、机器字长和存储字长均为16 位。 若采用单字长指令,共能完成105 种操作,则指令可直接寻址的范围是多少?一次间址的寻址范围是多少?画出其指令格式并说明各字段的含义。 若存储字长不变,可采用什
36、么方法直接访问容量为16MB 的主存?858.3.2 操作数寻址方式 解: 在单字长指令中,根据能完成105 种操作,取操作码7 位。因允许直接和间接寻址,且有基址寄存器和变址寄存器,故取2 位寻址特征位,其指令格式如下: 7 2 7 其中OP为操作码,可完成105种操作;M为寻址特征,可反映4种寻址方式;AD为形式地址。这种指令格式可直接寻址27 128,一次间址的寻址范围是216 65 536。OPMAD868.3.2 操作数寻址方式 容量为16MB的存储器,正好与存储字长为16位的8M存储器容量相等,即16MB8M16位。欲使指令直接访问16MB的主存,可采用双字长指令,其操作码和寻址特
37、征位均不变,其格式如下: 7 2 7 其中形式地址为AD1和AD2,共7+1623 位。2238M,即可直接访问主存的任一位置。 OPMAD1AD2878.3.2 操作数寻址方式 【例8-8】某模型机共有64 种操作,操作码位数固定,且具有以下特点: 采用一地址或二地址格式。 有寄存器寻址、直接寻址和相对寻址(位移量为 128+ 127)3种寻址方式。 有16个通用寄存器,算术运算和逻辑运算的操作数均在寄存器中,结果也在寄存器中。 取数/存数指令在通用寄存器和存储器之间传输数据。 存储器容量为1MB,按字节编址。 要求设计算术运算和逻辑运算指令、取数/存数指令和相对转移指令的格式,并简述理由。
38、 888.3.2 操作数寻址方式 解: 算术运算和逻辑运算指令格式为“寄存器寄存器”型,取单字长16 位。 6 2 4 4其中,OP为操作码,6位,可实现64种操作;M为寻址模式,2位,可反映寄存器寻址、直接寻址、相对寻址;Ri 和Rj 各取4位,指出源操作数和目的操作数的寄存器(共16个)编号。OPMRiRj898.3.2 操作数寻址方式 解: 取数/存数指令格式为“寄存器存储器”型,取双字长32位,格式如下: 6 2 4 4其中,OP为操作码,6位不变;M为寻址模式,2位不变;Ri为4位,源操作数地址(存数指令)或目的操作数地址(取数指令);A1和A2共20位为存储器地址,可直接访问按字节
39、编址的1MB 存储器。OPMRiA1A2908.3.2 操作数寻址方式 解: 相对转移指令为一地址格式,取单字长16位,格式如下: 6 2 8 其中,OP为操作码,6位不变;M为寻址模式,2位不变;A为位移量8位,对应位移量为-128+127。 OPMA918.3.2 操作数寻址方式 【例8-9】某机主存容量为4M16 位,且存储字长等于指令字长,若该机指令系统能完成97 种操作,操作码位数固定,且具有直接、间接、变址、基址、相对、立即等6种寻址方式。 画出一地址指令格式并指出各字段的作用。 该指令直接寻址的最大范围。 一次间址和多次间址的寻址范围。 立即数的范围(十进制数表示)。 相对寻址的
40、位移量(十进制数表示)。上述6种寻址方式的指令哪一种执行时间最短?哪一种最长?哪一种便于用户编制处理数组问题的程序?哪一种便于程序浮动?为什么?如何修改指令格式,使指令的直接寻址范围扩大到4M?为使一条转移指令能转移到主存的任一位置,可采取什么措施? 928.3.2 操作数寻址方式 解:一地址指令格式如下: 7 3 6 其中,OP操作码字段,共7位,可反映97种操作;M 寻址方式特征字段,共3位,可反映6种寻址方式;A形式地址字段,共16 7 3 6位。OPMA938.3.2 操作数寻址方式 直接寻址的最大范围为26 64。 由于存储字长为16位,故一次间址的寻址范围为216。若多次间址,需用
41、存储字的最高位来区别是否继续间接寻址,故寻址范围为215。 立即数的范围是 32+ 31(有符号数),或063(无符号数)。 相对寻址的位移量为 32+ 31。 948.3.2 操作数寻址方式 上述6种寻址方式中,因立即数由指令直接给出,故立即寻址的指令执行时间最短。间接寻址在指令的执行阶段要多次访存(一次间接寻址要两次访存,多次间接寻址要多次访存),故执行时间最长。变址寻址由于变址寄存器的内容由用户给定,而且在程序的执行过程中允许用户修改,而其形式地址始终不变,故变址寻址的指令便于用户编制处理数组问题的程序。相对寻址操作数的有效地址只与当前指令地址相差一定的位移量,与直接寻址相比,更有利于程
42、序浮动。958.3.2 操作数寻址方式 若指令的格式改为双字指令,即: 7 3 6 其中OP占 7位,M占3位,A1占6位,A2占16位,即指令的地址字段共16 + 6 22位,则指令的直接寻址范围可扩大到4M。OPMA1A2968.3.2 操作数寻址方式 为使一条转移指令能转移到主存的任一位置,寻址范围需达到4M,除了采用所示的格式外,还可配置22 位的基址寄存器或22 位的变址寄存器,使EA (BR) + A(BR为22 位的基址寄存器)或EA (IX)+ A(IX为22位的变址寄存器),便可访问4M存储空间。还可以通过16位的基址寄存器左移6位再和形式地址A相加,也可达到同样的效果。97
43、8.4 RISC技术 RISC是精简指令系统计算机的英文缩写,即Reduced Instruction Set Computer 与其对应的是CISC (Complex Instruction Set Computer) ,即复杂指令系统计算机988.4.1 RISC的产生和发展 计算机发展至今,机器的功能越来越强,硬件结构越来越复杂。 软件价格相对而言在不断提高,人们希望已开发的软件能被继承、兼容,于是出现了同类型的系列机。 系列机的发展过程中,致使同一系列计算机指令系统变得越来越复杂,某些机器的指令系统竟可包含几百条指令,这类机器被叫作复杂指令系统计算机,简称CISC。998.4.1 RI
44、SC的产生和发展 人们产生了用增加复杂指令的办法来缩短与语义的差距。 若编译器过多依赖复杂指令,对减少机器代码、降低指令执行周期数以及为提高流水性能而优化生成代码等都是非常不利的。 当指令过于复杂时,机器的设计周期会很长、资金耗费会更大。1008.4.1 RISC的产生和发展 20世纪70年代中期,人们开始进一步分析研究CISC,发现一个80-20规律 即典型程序中80%的语句仅仅使用处理机中20%的指令,而且这些指令都是属于简单指令,如取数、加、转移等。 这一点告诫人们,付出再大的代价增添复杂指令,也仅有20%的使用概率,而且当执行频度高的简单指令时,因复杂指令的存在,致使执行速度也无法提高
45、。1018.4.1 RISC的产生和发展 人们从80-20规律中得到启示,能否仅仅用最常用的20%的简单指令,重新组合不常用的80%的指令功能呢? 这引发出RISC技术。1028.4.1 RISC的产生和发展 1975年IBM公司John Cocke提出了精简指令系统的设想。 1982年美国加州伯克莱大学的研究人员研制了RISC I,后来又出现RISC II。 美国斯坦福大学RISC研究的课题是MIPS(Micro Processor Without Interlocking Pipeline Stages),即“消除流水线各段互锁的微处理器”,其最终的研究成果后来转化为MIPS公司RX000
46、的系列产品。 IBM公司又继其IBM801型机IBM RT/PC后,于1990年推出了著名的IBM RS/6000系列产品。 伯克莱大学的研究成果,最后发展成Sun微系统公司的RISC芯片,称为SPARC(Scalable Processor ARChitecture)1038.4.1 RISC的产生和发展 RISC体系结构的芯片已经历了三代: 第一代以32位数据通路为代表,支持Cache,软件支持较少,性能与CISC体系结构的产品相当,如RISC I、MIPS、IBM801等。 第二代产品提高了集成度,增加了对多处理机系统的支持,提高了时钟频率,建立了完善的存储管理体系,软件支持系统也逐渐完
47、善。它们已具有单指令流水线,可同时执行多条指令,每个时钟周期发出一条指令。如MIPS公司的R3000处理器。 第三代RISC产品为64位微处理器,采用了超级流水线(Super Pipelining)技术和超标量(Superscalar)技术,每个时钟周期发出两条或三条指令,使RISC处理器的整体性能更好。如MIPS的R4000处理器。1048.4.2 RISC的主要特征 选取使用频率较高的一些简单指令以及一些很有用但又不复杂的指令,让复杂指令的功能由频度高的简单指令的组合来实现。 指令长度固定,指令格式种类少,寻址方式种类少。 只有取数/存数(LOAD/STORE)指令访问存储器,其余指令的操
48、作都在寄存器内完成。 采用流水线技术,大部分指令在一个时钟周期内完成。采用超标量和超流水线技术,可使每条指令的平均执行时间小于一个时钟周期。 控制器采用组合逻辑控制,不用微程序控制。 CPU中有多个通用寄存器。 采用优化的编译程序。1058.4.2 RISC的主要特征 RISC II指令系统举例 RISC II共有39条指令,分为4类: 寄存器寄存器操作:移位、逻辑、算术(整数)运算等12条。 取/存数指令:取/存字节、半字、字等16条。 控制转移指令:条件转移、调用/返回等6条。 其他:存取程序状态字PSW和程序计数器等5条。1068.4.2 RISC的主要特征 RISC II指令替代 用上
49、述这些指令并在硬件系统的辅助下,足以实现其他一些指令的功能。例如该机约定R0寄存器内容恒为0。 加法指令可替代寄存器间的传输指令,即: (Rs)+(R0)Rd,替代了RsRd。 加法指令还可替代清除寄存器指令,即: (R0)+(R0)Rd,替代了0Rd。 减法指令可替代取负数指令,即: (R0)(Rs)Rd,替代了Rd寄存器内容取负。1078.4.2 RISC的主要特征 RISC II指令替代 该机可用立即数作为一个操作数,这样当立即数取1时,再用加法(或减法)指令就可替代寄存器内容增1(减1)指令,即: (Rs)+1Rd 当立即数取-1时,异或指令可替代求反码指令,即: Rs (1)Rd10
50、88.4.2 RISC的主要特征 RISC II指令格式 指令格式有两种:短立即数格式和长立即数格式。指令字长固定为32位,指令字中每个字段都有固定位置 1098.4.2 RISC的主要特征 RISC指令系统的扩充 从实用角度出发,商品化的RISC机,因用途不同还可扩充一些指令,例如: 浮点指令 特权指令 读后置数指令 完成读修改写操作,用于寄存器与存储单元交换数据等。 一些简单的专用指令。 如某些指令用得较多,实现比较复杂,用子程序实现占用较多的时间,则可考虑设置一条指令。1108.4.3 RISC和CISC的比较 充分利用VLSI芯片的面积 提高计算机运算速度 便于设计,可降低成本,提高可