《指令系统的发展与性能要求.ppt》由会员分享,可在线阅读,更多相关《指令系统的发展与性能要求.ppt(14页珍藏版)》请在金锄头文库上搜索。
1、4.1指令系统的发展与性能要求4.1.1指令系统的发展计算机的程序是有一系列的机器指令组成的。指令就是要计算机执行某种操作的命令。从计算机组成的层次结构来说,计算机的指令有微指令、机器指令和宏指令之分。微指令:是微程序级的命令,它属于硬件。宏指令:是由若干条机器指令组成的软件指令,它属于软件。机器指令:介于微指令和宏指令之间,通常简称为指令,每一条指令可以完成一个独立的算术运算或逻辑运算操作。一台计算机中所有机器指令的集合,称为这台计算机的指令系统。指令系统是表征一台计算机性能的重要因素,它的格式与功能不仅直接影响到机器的硬件结构,而且也直接影响到系统软件,影响到机器的适用范围。下面我们来看一
2、下计算机指令系统的发展过程50年代年代:指令系统只有定点加减、逻辑运算、数据传送、转移等十几至几十条指令。60年代后期年代后期:增加了乘除运算、浮点运算、十进制运算、字符串处理等指令,指令数目多达一二百条,寻址方式也趋多样化。60年代后期开始出现l系列计算机是指节本指令系统相同、基本体系结构相同的一系列计算机。其必要条件是同一系列的各机种有共同的指令集而且新推出的机种指令系统一定包含所有旧机种的全部指令,即实现一个“向上兼容”。因此旧机种上运行的各种软件可以不加任何修改便可在新机种上运行,大大减少了软件开发费用。系列机解决了各机种的软件兼容问题 l复杂指令系统计算机(CISC)计算机的指令系统
3、多达几百条。但是如此庞大的指令系统难以保证正确性,不易调试维护,造成硬件资源浪费。为此人们又提出了便于VLSI技术实现的l精简指令系统计算机(RISC)RISC是一种计算机系统结构的设计思想,至今还没有一个确切的定义,也难以再CISC和RISC之间划出一条明显的界限412 对指令系统性能的要求对指令系统性能的要求指令系统的性能决定了计算机的基本功能,它的设计直接关系到计算机的硬件结构和用户的需要。一个完善的指令系统应满足如下四方面的要求:完备性指用汇编语言编写各种程序时,指令系统直接提供的指令足够使用,而不必用软件来实现。完备性要求指令系统丰富、功能齐全、使用方便。l有效性是指利用该指令系统所
4、编写的程序能够高效率地运行。高效率主要表现在程序占据存储空间小、执行速度快。l规整性包括指令系统的对称性、匀齐性、指令格式和数据格式的一致性。对称性是指:在指令系统中所有的寄存器和存储器单元都可同等对待,所有的指令都可使用各种寻址方式;匀齐性是指:一种操作性质的指令可以支持各种数据类型;指令格式和数据格式的一致性是指:指令长度和数据长度有一定的关系,以方便处理和存取。l兼容性:至少要能做到“向上兼容”,即低档机上运行的软件可以在高档机上运行。4 41 13 3 低级语言与硬件结构的关系低级语言与硬件结构的关系计算机语言有高级语言和低级语言之分。l高级语言语句和用法与具体机器的指令系统无关。l低
5、级语言分机器语言(二进制语言)和汇编语言(符号语言),这两种语言都是面向机器的语言,它们和具体机器的指令系统密切相关。机器语言用指令代码编写程序,而符号语言用指令助记符来编写程序。l高级语言和低级语言的异同可参考表4.1。n计算机能够直接识别和执行的唯一语言是二进制语言,但人们采用符号语言或高级语言编写程序。为此,必须借助汇编程序或编译程序,把符号语言或高级语言翻译成二进制码组成的机器语言。n汇编语言依赖于计算机的硬件结构和指令系统。不同的机器有不同的指令,所以用汇编语言编写的程序不能在其他类型的机器上运行。n高级语言与计算机的硬件结构及指令系统无关,在编写程序方面比汇编语言优越。但是高级语言
6、程序“看不见”机器的硬件结构,不能用于编写直接访问机器硬件资源的系统软件或设备控制软件。为此,一些高级语言提供了与汇编语言之间的调用接口。用汇编语言编写的程序,可作为高级语言的一个外部过程或函数,利用堆栈来传递参数或参数的地址。 l指令字表示一条指令的机器字,就称为指令宇,通常简称指令。表示一条指令的机器字,就称为指令宇,通常简称指令。 l指令格式,则是指令字用二进制代码表示的结构形式。指令格式,则是指令字用二进制代码表示的结构形式。 操作码字段表征指令的操作特性与功能;地址码字段通常指定参与操作的操作数的地址。 一条指令的结构可用如下形式来表示:l 4 42 21 1 操作码操作码 指令系统
7、的每一条指令都有一个操作码,它表示该指令应进行什么性质的操作。 不同的指令用操作码字段的不同编码来表示,每一种编码代表一种指令。l组成操作码字段的位数一般取决于计算机指令系统的规模。 42 指令格式指令格式 操作码字段地址码字段4 42 22 2 地址码地址码 地址码通常指定参与操作的操作数的地址。根据一条指令中有几个操作数地址码通常指定参与操作的操作数的地址。根据一条指令中有几个操作数地址,可将该指令称为几操作数指令或几地址指令。目前二地址和一地地址,可将该指令称为几操作数指令或几地址指令。目前二地址和一地址址指令格式用的得最多。指令格式用的得最多。l 零地址指令的指令字中只有操作码,而没有
8、地址码。零地址指令的指令字中只有操作码,而没有地址码。l一地址指令常称单操作数指令。一地址指令常称单操作数指令。 ( (AC) OP (A) AC AC) OP (A) AC l二地址指令常称双操作数指令,它有两个地址码字段二地址指令常称双操作数指令,它有两个地址码字段A1A1和和A2A2,分别指明参分别指明参与操作的两个数在内存中或运算器通用寄存器的地址,其中地址与操作的两个数在内存中或运算器通用寄存器的地址,其中地址A1A1兼做存兼做存放操作结果的地址。放操作结果的地址。 ( (A1) OP (A2) A1 A1) OP (A2) A1 l三地址指令字中有三个操作数地址三地址指令字中有三个
9、操作数地址A1A1,A2A2和和A3A3。 (A1) OP (A2) A3 (A1) OP (A2) A3 从操作数的物理位置来说,又可归结为三种类型:从操作数的物理位置来说,又可归结为三种类型: l访问内存的指令格式,我们称这类指令为存储器存储器(访问内存的指令格式,我们称这类指令为存储器存储器(SSSS)型指令;型指令; l访问寄存器的指令格式,我们称这类指令为寄存器寄存器(访问寄存器的指令格式,我们称这类指令为寄存器寄存器(RRRR)型指令;型指令; l第三种类型为寄存器存储器(第三种类型为寄存器存储器(RS)型指令。型指令。 4 42 23 3 指令字长度指令字长度 一个指令字中包含二
10、进制代码的位数,称为指令字长度。 机器字长是指计算机能直接处理的二进制数据的位数,它决定了计算机的运算精度。 指令字长度等于机器字长度的指令,称为单字长指令; 指令字长度等于半个机器字长度的指令,称为半字长指令; 指令字长度等于两个机器字长度的指令,称为双字长指令。 使用多字长指令的目的,在于提供足够的地址位来解决访问内存任何单元的寻址问题,但是主要缺点是必须两次或多次访问内存以取出整条指令,这就降低了CPU的运算速度,同时又占用了更多的存储空间。 在一个指令系统中,如果各种指令字长度是相等的,称为等长指令字结构,这种指令字结构简单,且指令字长度是不变的。 如果各种指令字长度随指令功能而异,就
11、称为变长指令字结构。这种指令字结构灵活,能充分利用指令长度,但指令的控制较复杂。 4 42 24 4 指令助记符指令助记符 由于硬件只能识别1和0,所以采用二进制操作码是必要的,但是我们用二进制来书写程序却非常麻烦。为便于书写和记忆而设定的,与机器指令一一对应。每条指令通常用3个或4个英文缩写字母来表示。这种缩写码叫做指令助记符。指令助记符由汇编程序转换成它们相对应的二进制操作码。不同的计算机中,指令助记符的规定是不一样的。当指令的操作码用助记符表示,而地址及其寻址特征也用符号表示时,就成为汇编语言,这些符号称为汇编符号,用汇编符号表示的指令格式,就称为汇编格式。4 42 25 5 指令格式举
12、例指令格式举例 l八位微型计算机的指令格式8位微型机字长只有8位,指令结构是一种可变字长形式,包含单字长、双字长、三字长指令等多种。操作码操作码单字长指令操作码操作数地址操作码操作数地址双字长指令操作码操作数地址操作数地址操作码操作数地址操作数地址2三字长指令内存按字节编址,所以单字长指令每执行一条指令后,指令地址加。双字长指令或三字长指令每执行一条指令时,指令地址要加2或加3,可见多字长的指令格式不利于提高机器速度。2.PDP/11系列机指令格式系列机指令格式PDP/11系列机指令字长16位,其指令格式如下表所示。4.3PDP/11系列机指令格式从表中看出,在PDP/11中,操作码字段是不固
13、定的,其长度也是不相同的。这样做可以扩展操作码以包含较多的指令。但是操作码字段不固定,对控制器的设计来说必将复杂化。3.pentium指令格式指令格式pentium机的指令字长度是可变的:从字节到12字节,还可以带前缀,指令格式如下所示。0或10或10或10或1(字节数)指令前缀段取代指令前缀段取代 操作数长度取代操作数长度取代 地址长度取代地址长度取代1或20或10或10,1,2,40,1,2,4(字节数)操作码操作码 Mod Reg R/M比例比例S变址变址I基址基址B位移量位移量 立即数立即数 或操作码或操作码2位3位3位2位3位3位这种非固定长度的指令格式是典型的CICS结构特征。一是
14、为了与它的前身80486保持兼容,二是希望能给编译程序写作者以更多灵活的编程支持。操作数长度取代前缀和地址长度取代前缀在实地址模式下,操作数和地址的默认长度是16位;在保护模式下,若D1,操作数和地址的默认长度是32位,若D0,二者的默认长度是16位。指令本身由操作码字段、Mod-R/M字段、SIB字段、位移量字段、立即数字段组成。除操作码字段外,其他四个字段都是可选字段。例例1指令格式如下所示,其中OP为操作码,试分析指令格式的特点。1597430 OP-源寄存器源寄存器 目标寄存器目标寄存器解解:(1)单字长二地址指令。(2)操作码字段OP可以指定128条指令。(3)源寄存器和目标寄存器都是通用寄存器(可分别指定16个),所以是RR型指令,两个操作数均在寄存器中。(4)这种指令结构常用于算术逻辑运算类指令。例例2指令格式如下所示,OP为操作码字段,试分析指令格式特点。15107430 OP-源寄存器变址寄存器源寄存器变址寄存器位移量位移量(16位位)解解:(1)双字长二地址指令,用于访问存储器。(2)操作码字段OP为6位,可以指定64种操作。(3)一个操作数在源寄存器(共16个),另一个操作数在存储器中(由变址寄存器和位移量决定)所以是RS型指令。