[理学]计算机组成原理 指令系统

上传人:tia****nde 文档编号:70529162 上传时间:2019-01-17 格式:PPT 页数:89 大小:800.31KB
返回 下载 相关 举报
[理学]计算机组成原理 指令系统_第1页
第1页 / 共89页
[理学]计算机组成原理 指令系统_第2页
第2页 / 共89页
[理学]计算机组成原理 指令系统_第3页
第3页 / 共89页
[理学]计算机组成原理 指令系统_第4页
第4页 / 共89页
[理学]计算机组成原理 指令系统_第5页
第5页 / 共89页
点击查看更多>>
资源描述

《[理学]计算机组成原理 指令系统》由会员分享,可在线阅读,更多相关《[理学]计算机组成原理 指令系统(89页珍藏版)》请在金锄头文库上搜索。

1、第四章 指令系统,本章要求:,指令的概念、功能,指令的种类。 指令系统设计的基本要求。 基本寻址技术及其工作原理,各种寻址方式下的指令特点分析。 指令格式的分析和各种要求结果的确定(执行情况、对寄存器值、标志位的影响等)。 指令系统原理的掌握和应用,理解地址结构,熟悉寻址方式、各类具体指令及其执行情况。,第四章 指令系统,4.1 指令系统的发展与性能要求 4.2 指令格式 4.3 指令和数据的寻址方式 4.4 堆栈寻址方式 4.5 指令系统的要求与指令分类 本章小结,4.1 指令系统的发展和性能要求,4.1.1 指令系统的发展 4.1.2 指令系统的性能 4.1.3 计算机语言与硬件结构的关系

2、,4.1.1 指令系统的发展,计算机的程序是由一系列的指令组成的,指令就是要计算机执行某种操作的命令。 从计算机组成的层次结构来说,计算机的指令有微指令、机器指令和宏指令之分。,微指令:微程序级的命令,它属于硬件; 宏指令:由若干条机器指令组成的软件指令,它属于软件; 机器指令(指令):介于微指令与宏指令之间,每条指令可完成一个独立的算术运算或逻辑运算。,指令系统:一台计算机中所有机器指令的集合。 它是表征一台计算机性能的重要因素,其格式与功能不仅直接影响到机器的硬件结构,也直接影响到系统软件,影响到机器的适用范围。,计算机指令系统的发展过程:,50年代:指令系统只有定点加减、逻辑运算、数据传

3、送、转移等十几至几十条指令。,60年代后期:增加了乘除运算、浮点运算、十进制运算、字符串处理等指令,指令数目多达一二百条,寻址方式也趋多样化。,70年代末期:大多数计算机的指令系统多达几百条。我们称这些计算机为复杂指令系统计算机(CISC)。但是如此庞大的指令系统难以保证正确性,不易调试维护,造成硬件资源浪费。为此人们又提出了便于VLSI技术实现的精简指令系统计算机(RISC)。,4.1.2 对指令系统性能的要求,指令系统的性能决定了计算机的基本功能,它的设计直接关系到计算机的硬件结构和用户的需要。 一个完善的指令系统应满足如下四方面的要求: 完备性 有效性 规整性 兼容性,完备性 用汇编语言

4、编写各种程序时,指令系统直接提供的指令足够使用,而不必用软件来实现。完备性要求指令系统丰富、功能齐全、使用方便。,有效性 利用该指令系统所编写的程序能够高效率的运行。高效率主要表现在程序占据存储空间小、执行速度快。一般来说,一个功能更强、更完善的指令系统,必定有更好的有效性。,规整性 包括指令系统的对称性、匀齐性、指令格式和数据格式的一致性。,对称性指在指令系统中所有的寄存器和存储器单元都可同等对待,所有的指令都可使用各种寻址方式;,匀齐性是指一种操作性质的指令可以支持各种数据类型;,指令格式和数据格式的一致性是指指令长度和数据长度有一定的关系,以方便处理和存取。,兼容性 系列机各机种之间具有

5、相同的基本结构和共同的基本指令集,因而指令系统是兼容的,即各机种上基本软件可以通用。,4.1.3 计算机语言与硬件结构的关系,计算机语言具有高级语言和低级语言之分。 高级语言如C,FORTRAN等,其语句和用法与具体机器的指令系统无关。 低级语言分机器语言(二进制语言)和汇编语言(符号语言),这两种语言都是面向机器的语言,和具体机器的指令系统密切相关。 机器语言用指令代码编写程序, 符号语言用指令助记符来编写程序。,高级语言和低级语言,计算机能够直接识别和执行的唯一语言是一种用二进制码表示的、由一系列指令组成的机器语言。 但人们采用符号语言或高级语言编写程序。为此,必须借助汇编程序或编译程序,

6、把符号语言或高级语言翻译成二进制码组成的机器语言。,汇编语言依赖于计算机的硬件结构和指令系统。不同的机器有不同的指令,所以用汇编语言编写的程序不能在其他类型的机器上运行。,高级语言与计算机的硬件结构及指令系统无关,在编写程序方面比汇编语言优越。 一些高级语言提供了与汇编语言之间的调用接口。用汇编语言编写的程序,可作为高级语言的一个外部过程或函数,利用堆栈来传递参数或参数的地址。,高级语言和低级语言,高级语言与低级语言的性能比较,4.2 指令格式,4.2.1 指令操作码与地址码 4.2.2 指令字长度与扩展方法 4.2.3 指令格式举例,4.2.1 指令操作码与地址码,指令字(简称指令)即表示一

7、条指令的机器字。 指令格式则是指令字用二进制代码表示的结构形式,由操作码字段和地址码字段组成。,操作码字段:表征指令的操作特性与功能。,地址码字段:通常指定参与操作的操作数的地址。,指令格式如下:,不同的指令用操作码字段的不同编码来表示,每一种编码代表一种指令。,1.操作码,组成操作码字段的位数一般取决于计算机指令系统的规模。 例如,一个指令系统只有8条指令,则,有3位操作码就够。,如果有32条指令,,那么就需要5位操作码。,对于一个机器的指令系统,在指令字中操作码字段和地址码字段长度通常是固定的。 目前,在小型和微型计算机中,由于指令字较短,为了充分利用指令字长度,指令字的操作码字段和地址码

8、字段是不固定的,即不同类型的指令有不同的划分,以便尽可能用较短的指令字长来表示越来越多的操作种类,并在越来越大的存储空间中寻址。,1.操作码,2.地址码,根据一条指令中有几个操作数地址,可将该指令称为几操作数指令或几地址指令。 一般的操作数有被操作数、操作数及操作结果这三种数,因而就形成了三地址指令格式。后来又发展成二地址格式、一地址格式和零地址格式。,各种地址指令格式,其格式为 OPCODE操作码, A1第一个源操作数存储器地址或寄存器地址, A2第二个源操作数存储器地址或寄存器地址, A3操作结果的存储器地址或寄存器地址。,其数学形式描述为:(A1) OP (A2)A3,OPCODE A1

9、 A2 A3,(1) 三地址指令格式,其格式为 OPCODE操作码, A1第一个源操作数存储器地址或寄存器地址, A2第二个源操作数和存放操作结果的存储器地址或寄存器地址。,其数学形式描述为: (A1) OP (A2)A1 或者 (A1) OP (A2)A2,OPCODE A1 A2,(2) 二地址指令格式,(3) 一地址指令格式,其格式为 OPCODE操作码, A操作数的存储器地址或寄存器地址。,其数学形式描述为: OP (A)A 或者 (AC) OP (A)AC (AC)表示累加寄存器AC中的数,OPCODE A,(4) 零地址指令格式,其格式为 OPCODE操作码。 不涉及操作数:如NO

10、P、HLT指令; 操作数隐含:如PUSH、POP指令,(5) 多地址指令格式 性能较好的大、中型计算机甚至高档小型计算机中,往往设置一些功能很强的,用于处理成批数据的指令,例如,字符串处理指令,向量、矩阵运算等指令。为了描述一批数据,指令中往往需要用多个地址来指出数据存放的首地址、长度和下标等信息。 例如 CDC STAR100矩阵运算指令,就有七个地址码段,用来指明两个矩阵的存储情况以及结果的存放情况。,OPCODE,第一种为存储器存储器(SS)型指令,即参与操作的数据都放在内存里。机器执行这种指令需要多次访问内存。 第二种为寄存器寄存器(RR)型指令,执行这类指令过程中,需要多个通用寄存器

11、或专用寄存器,从寄存器中取操作数,把操作结果存放到另一寄存器中。机器执行该类型指令的速度很快。 第三种为寄存器存储器(RS)型指令,执行此类指令时,既要访问内存单元,又要访问寄存器。,从存放操作数的物理位置来划分,指令格式主要有三种类型:,目前在计算机系统结构中,通常一个指令系统中指令字的长度和指令中的地址结构并不是单一的,往往采用多种格式混合使用,这样可以增强指令的功能。,4.2.3 指令字长度与扩展方法,指令字长度:一个指令字中包含二进制代码的位数。 机器字长:计算机能直接处理的二进制数据的位数,它决定了计算机的运算精度。,指令字长度与机器字长,其中L为指令字长度,N为机器字长度。 余下以

12、此类推。例如IBM 370系列的指令格式有16b(半字)的,有32b(单字)的,还有48b(一个半字)的。,多字长指令,使用多字长指令,目的在于提供足够的地址位来解决访问内存任何单元的寻址问题。 其主要缺点是必须两次或多次访问内存以取出一整条指令,降低了CPU的运算速度,又占用了更多的存储空间。,等长/变长指令字结构,等长指令字结构:各种指令字长度是相等的。这种指令字结构简单,且指令字长度是不变的。 变长指令字结构:各种指令字长度随指令功能而异。结构灵活,能充分利用指令长度,但指令的控制较复杂。,2. 指令操作码扩展方法,指令操作码通常有两种编码格式: 一种是固定格式,即操作码的长度固定,且集

13、中放在指令字的一个字段中。 这种格式可以简化硬件设计,减少指令译码时间,一般用在字长较长的大、中型机和超级小型机以及 RISC机上,如IBM 370和VAX 11系列机,其操作码长度均为8b,可表示256种指令。 另一种是可变格式,即操作码的长度可变,且分散地放在指令字的不同字段中。 这种格式能够有效地压缩程序中操作码的平均长度,在字长较短的微型机上广泛采用。如 Z80、Intel 8086等,操作码的长度都是可变的。,2. 指令操作码扩展方法,操作码不固定将增加指令译码和分析的难度,使控制器的设计复杂。 通常在指令字中用一个固定长度的字段来表示基本操作码,而对于一部分不需要某个地址码的指令,

14、则把它们的操作码的长度扩充到该地址字段。 这样既能充分利用指令字的各个字段,又能在不增加指令长度的情况下扩展操作码的长度,使它能表示更多的指令。,例如:某机器的指令字长度为16b,包括4b基本操作码字段和三个4b地址字段,其指令格式为:,4b基本操作码有16种组合,若全部用于表示三地址指令,则只有16条。但是,如果三地址指令仅需15条,两地址指令需15条,一地址指令需15条,零地址指令需16条,共61条指令,应该如何安排操作码?显然,只有4b基本操作码是不够的,必须将操作码的长度向地址码字段扩展才行。这可采用如下操作码扩展方法: (1) 三地址指令仅需15条,由4b基本操作码的00001110

15、组合给出,剩下的一个组合1111用于把操作码长度扩展到 A1,即4b扩展到8b;,(2) 二地址指令需15条,由8b操作码的1111000011111110组合给出,剩下一个11111111用于把操作码长度扩展到 A2,即从8b扩展到12b; (3) 一地址指令需15条,由12b操作码的111111110000111111111110组合给出,剩下一个组合111111111111用于把操作码长度扩展到A3,即从12b扩展到16b; (4) 零地址指令需16条,由16位操作码的11111111111100001111111111111111组合给出。 采用上述指令操作码扩展方法后,三地址指令、二

16、地址指令和一地址指令各15条,零地址指令16条,共计61条指令。,1. 微型计算机Intel 8086/8088指令格式 Intel 8086是Intel公司于1978年推出的16b的微型计算机,字长16b。Intel 8088是在8086基础之上推出的扩展型准16b微型机,字长16b,但其外部数据总线8b,这样便于与众多的8b外部设备连接。由于Intel 8086/8088指令字较短,所以指令采用变长指令字结构。指令格式包含单字长指令、双字长指令、三字长指令等多种。,2. 大型计算机IBM 370系列指令格式 IBM 370系统是IBM公司于1970年推出的32b大型计算机,1983年IBM又推出了370的扩充结构:IBM 370XA(eXtended Architecture),首次在3080系列上实现,后来又有扩充结构ESA370,于1986年推出3090系列。 ESA370增加了指令格

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号