《计算机组成原理第四章ppt课件.ppt》由会员分享,可在线阅读,更多相关《计算机组成原理第四章ppt课件.ppt(38页珍藏版)》请在三一办公上搜索。
1、4.1 指令系统的发展与性能要求4.2 指令格式4.3 指令和数据的寻址方式4.4 堆栈寻址方式4.5 典型指令,第4章 指令系统,4.1指令系统的发展与性能要求,指令系统决定了计算机的基本功能,指令系统的设计是计算机系统设计的一个核心问题。它不仅与计算机的硬件设计紧密相关,而且直接影响到系统软件设计的难易程度。完善的计算机的指令系统应具备:1、完备性:一台计算机中最基本的、必不可少的指令构成了指令系统的完备性。2、有效性:指利用该指令系统所提供的指令编制的程序能够产生高效率。高效率主要表现在空间和时间方面,即占用存储空间小、执行速度快。3、规整性:指令操作的对称性和匀齐性,指令格式与数据格式
2、的一致性。(1)对称性:在指令系统中,所有寄存器和存储单元都可同等对待,这对简化程序设计,提高程序的可读性非常有用。(2)匀齐性:是指一种操作性质的指令可以支持各种数据类型。(3)指令的格式与数据格式的一致性:指令长度与数据长度有一定关系,以方便存取和处理。4、兼容性:兼容性一般是指计算机的体系结构设计基本相同,机器之间具有相同的基本结构、数据表示和共同的基本指令集合。,程序、指令、指令系统、指令格式,计算机的程序是由一系列的指令组成指令是要计算机执行某种操作的命令指令系统是一台计算机中所有指令的集合决定计算机的基本功能,软件与硬件的界面是计算机系统设计的一个核心问题指令格式是用二进制代码表示
3、的指令形式由操作码字段和地址码字段组成操作码:表示指令进行什么性质的操作地址码:指定参与操作的操作数地址,4.2指令格式,计算机的指令格式与机器的字长、存储器的容量及指令的功能密切相关。,指令操作码与地址码,两个字段:操作码字段+操作数地址字段:1.操作码操作码是指明指令操作性质的命令码。它提供指令的操作控制信息。(1)每条指令都要求它的操作码必须是独一无二的位组合。(2)指令系统中指令的个数N与操作码的位数n,必须满足关系式: N2n2.操作数地址码(1)地址码:用来描述该指令的操作对象。(2)指令字长=操作码的位数+(操作数地址个数)*(操作数地址码位数),地址码,三地址指令,二地址指令,
4、单地址指令,零地址指令,指令操作码与地址码,一、指令格式1.零地址指令格式这是一种没有操作数地址部分的指令格式。这种指令有两种可能:(1)无需任何操作数。如空操作指令,停机指令等。(2)所需的操作数是默认的:堆栈。,操作码OC,指令操作码与地址码,A、堆栈的概念 (a)是若干个存储单元(或寄存器)的有序集合,它顺序地存放一组元素。 (b)数据的存取都只能在栈顶单元内进行,即数据的进栈与出栈都只能经过栈顶单元这个“出入口”。 (c)堆栈中的数据采用“先进后出”或“后进先出”的存取工作方式。B、堆栈结构在计算机中的作用 (a)具有堆栈结构的机器使用零地址指令,这不仅合指令长度短,指令结构简单,机器
5、硬件简化。 (b)实现程序调用,子程序嵌套调用和递归调用。 (c)对于“中断”技术,堆栈更是不可缺少的,保存“断点”和“现场”。,指令操作码与地址码,C、堆栈的操作设数据进栈方向为从高地址向低地址发展,当向堆栈压入数据时,SP的内容先自动递减而指向一个新的空栈顶单元,再把数据写入此栈顶单元;当数据弹出堆栈时,立即读出SP所指向的栈顶单元内容,再把SP内容自动递增而指向新的栈顶位置。即 PUSH X;(SP)-1SP (X)(SP) POP X; (SP)X (SP)+1SP,指令操作码与地址码,2.一地址指令格式(1)指令中给出的一个地址即是操作数的地址,又是操作结果的存储地址。如加1、减1、
6、移位等单操作数指令。(2)在某些计算机中,指令中提供的一个地址提供一个操作数,另一个操作数是由机内硬件寄存器“隐含”地自动提供的。所谓“隐含”是指此操作数在指令中不出现,而是按照事先约定由寄存器默认提供,运算结果仍送到寄存器中。因为这个寄存器在连续运算时,保存着多条指令连续操作的累计结果,故称为累加器(AC)。,指令操作码与地址码,3.二地址指令格式 (1)把保存操作前原来操作数的地址称为源点地址(SS),把保存指令执行结果的地址称为终点地址或目的地址(DD)。 (2)将源点与终点操作数进行操作码规定的操作后,将结果存入终点地址。通常二地址指令又称为双操作数指令。例如,双操作数加法指令:ADD
7、 R0,R1表示将R0寄存器的内容和R1寄存器的内容相加以后,将结果存入R1寄存器中。又如ADD (R0),R1表示将R0寄存器的内容作为地址,到内存中取出该地址所指向的单元内容作为源点操作数,和作为终点操作数的R1寄存器的内容相加以后,将结果存入R1寄存器中。,指令操作码与地址码,4.三地址指令格式其操作是对AC1、AC2指出的两个操作数进行操作码所规定的操作,并将结果存入AC3中。例如: ADD X Y Z 含义为 (X)+(Y)Z 即X单元内容加上Y单元内容,结果送Z单元中。,指令操作码与地址码,5.多地址指令格式例如四地址指令格式。(1)含义: ADD X Y Z WA、(X)+(Y)
8、ZB、(W)下一条指令地址(2)特点: A、直观明了; B、程序执行的流向明确; C、操作数和结果可以分散在内存各处。 D、但是指令字长度太长。,指令操作码与地址码,指令格式设计准则 1、指令字长要短,以得到时间和空间上的优势。 2、指令字长必须有足够的长度。 3、指令字长一般应是机器字符长度的整数倍以便存储系统的管理。若机器中字符码长是L位,则机器字长最好是L,2L,4L,8L等。 4、指令格式的设计还与如何选定指令中操作数地址的位数有关。例如,对同一容量(如64KB)的存储器 (1)若取存储单元为一字节长,则需要16位地址码, (2)若存储单元长度为32位,则只需14位地址码。方案(1)对
9、字符操作方便,但地址码位数多,方案(2)地址码位数少,很有利,但字符操作困难,分辩率低。(存储器分辩率:指存储器能被区分、识别与操作的精细程度),指令字长与扩展方法,一、操作码和地址码间的权衡(操作码有两种编码格式) 1、固定格式:操作码长度固定,且集中放在指令字的一个字段中。 2、可变格式:即操作码长度可变,且分散地放在指令字的不同字段中。二、扩展操作码 1、要点: (1)操作码位数随地址码个数变化采取可变长度的类型; (2)指令间指令码一定不重复; (3)根据需要灵活变通。,指令字长与扩展方法,2、比较假设一台计算机指令字长16位,操作码与地址码都为4位,如图所示。 (1)方法一:固定格式
10、,则最多可以设计16条三地址指令,指令字长与扩展方法,(2)方法二:扩展操作码,具体方法如下: A、4位OC中用0000-1110定义15条三地址指令,留编码1111作为扩展标志与下一个4位组成一个8位操作码,引出二地址指令,则: B、(a)若将AC1全部用作2地址指令的OC,能再定义16条2地址指令; (b)8位OC中用11110000-11111110定义15条二地址指令,剩下的一个编码11111111与下一个4位组成一个12位的操作码,引出一地址指令; (c)选1111000011111101共14条2地址指令,留11111110,11111111为扩展标志,再与AC2组合,以此类推。
11、C、若选B(c),则可定义31条1地址指令,留一个编码111111111111为扩展标志,与下一个4位组成16位操作码,引出16条零地址指令;3、扩展操作码的另一个演变是用操作码中的某一位或几位来说明指令的格式与长度,或是说明操作数的特征。例如:小型机PDP-11是用操作码最左边一位(最高位15位)来指明指令操作处理的数据字长度,当第15位=0,是字指令,操作数是16位长的字;当15位=1,是字节指令,操作数是8位长的字节。,指令集结构ISA,堆栈型操作数默认在处理器内置的堆栈,不需指明如Intel 80 x87浮点处理器结构累加器型其中一个操作数默认在累加器,不需指明寄存器存储器型(RS型)
12、一个操作数在寄存器,另一个在主存例如Intel 80 x86整数处理器结构寄存器寄存器型(RR型)读取存储器操作数只有LOAD指令,存储存储器操作数只有STORE指令,算术运算ALU等操作均在寄存器之间进行例如大多数RISC处理器,通用寄存器GPR结构,通用寄存器GPR(General-Purpose Register)比存储器快,是主要的应用类型寄存器寄存器结构具有简单、定长的指令编码,采用简单的代码生成模式,每条指令执行的时钟周期相近。但其程序的指令条数多,目标代码较大寄存器存储器结构可以直接访问存储器,容易对指令进行编码,生成的目标代码较小。但其操作数类型不同,需同时对存储器和寄存器进行
13、编码,指令执行的时钟周期数也不尽相同,Pentium指令格式,Pentium机的指令字长度可变:从字节到12字节,还可以带前缀非固定长度的指令格式是典型的CICS结构特征为了与它的前身80486保持兼容希望能给编译程序的编制以更多灵活的编程支持,例1 分析指令格式的特点,单字长二地址指令操作码字段OP长度为7位,可指定128条指令源寄存器和目标寄存器都是通用寄存器(可分别指定16个)。两个操作数均在寄存器中,所以是寄存器寄存器型指令这种指令结构常用于算术逻辑运算类指令,例2 分析指令格式的特点,双字长二地址指令,用于访问存储器操作码字段OP为6位,可以指定64种操作一个操作数在源寄存器(共16
14、个),另一个操作数在存储器中(由变址寄存器和位移量决定),所以是寄存器存储器型指令,4.3 指令和数据的寻址方式,某个操作数或某条指令存放在某个存储单元时,其存储单元的编号,就是该操作数或指令在存储器中的地址寻址方式:形成指令或操作数的内存地址的方式,或者说查找指令或数据的方式寻址方式的类别指令寻址方式:用于形成指令在内存中的地址数据(操作数)寻址方式:用于形成操作数在内存中的地址,一般也包括数据在寄存器的情况,指令的顺序寻址方式,指令的跳跃寻址方式(程序的控制转移),指令的相对寻址方式,程序计数器PC的内容加上偏移量形成指令的目的地址,4.3.2 操作数寻址方式,指令中操作数字段的地址码,是
15、由形式地址(偏移量)和变址、间址等组合形成操作数的寻址:把操作数的形式地址,根据间址和变址等组合变换为操作数有效地址的过程,常用数据寻址方式,隐含寻址:在指令中不明显地给出操作数的地址寄存器寻址:指令中给出的操作数地址不是内存的地址单元号,而是通用寄存器的编号。即操作数不放在内存中,而是放在通用寄存器中立即寻址:指令的地址字段指出的不是操作数的地址,而直接是操作数本身直接寻址:在指令格式的地址字段中,直接给出操作数在内存的地址寄存器间接寻址:指令中指定的寄存器中的内容不是操作数,而是操作数的地址基址(寄存器相对)寻址:基址寄存器的内容加上指令中给定的形式地址(偏移量),形成操作数的有效地址,直
16、接寻址,基址(寄存器相对)寻址,寻址方式总结,4.4 堆栈寻址方式,堆栈:一个“先进后出FILO”或“后进先出LIFO”存取的存储区域,只有一个数据出入口,即当前栈顶(不断变化)两种基本操作写入:数据压进堆栈PUSH读出:数据弹出堆栈操作POP存储器堆栈使用主存部分空间作为堆栈区域寄存器堆栈(串联堆栈)CPU内部以堆栈方式存取数据的一组寄存器,Word 1,Word 2,Word 3,Word 4,Word 5,Stack,PUSH,POP,4.5.1 指令的分类,数据传送指令实现主存与寄存器之间、寄存器与寄存器之间或立即数到寄存器和主存的数据传送算术运算指令实现加、减、乘、除等运算的指令逻辑
17、运算指令实现逻辑与、或、非、异或,以及移位等操作的指令程序控制转移指令无条件转移指令、有条件转移指令、子程序调用和返回指令等输入输出指令CPU与外设之间传送数据的指令,4.5.2 基本指令系统,4.5.3 精简指令系统,为了增强处理器的功能,强化指令系统:指令多、寻址方式复杂、格式变化,形成复杂指令集计算机CISC(Complex Instruction Set Computer)研究标明,CISC中最常用、最简单、最基本的指令仅占指令总数的20%,但在程序中出现的频率却占80%“80%和20%规律”产生了精简指令集计算机RISC(Reduced Instruction Set Compute
18、r),特点是:选取使用频率最高的简单指令,指令条数较少指令长度固定,指令格式种类少,寻址方式种类少只有取数/存数指令访问存储器,其余指令的操作都在寄存器之间进行(寄存器-寄存器Load/Store类型结构)便于采用流水线等先进技术提高性能,第4章教学要求,了解指令、指令系统、指令格式、操作码、地址码、指令助记符的概念理解寻址方式的含义,区别指令寻址和数据寻址掌握指令的顺序寻址和跳跃寻址掌握数据的隐含寻址、立即寻址、寄存器寻址、直接寻址、寄存器间接寻址、寄存器相对(基址)寻址熟悉堆栈的访问原理,理解进栈PUSH和出栈POP操作熟悉指令系统包含的基本指令类型掌握CISC和RISC的含义,掌握RIS
19、C的主要特点,第四章 小结, 本章小结,一台计算机中所有机器指令的集合称为该计算机的指令系统。指令系统是表征一台计算机性能的重要因素,它的格式与功能不仅直接影响到计算机的硬件结构,而且也影响到系统软件。 指令格式是指令字用二进制代码表示的结构形式,通常由操作码字段和地址码字段组成。操作码字段表征指令的操作特性与功能,而地址码字段指示操作数的地址。 形成操作数地址的方式,称为数据寻址方式。操作数可放在专用寄存器、通用寄存器、内存和指令中。 不同计算机有不同的指令系统。一个较完善的指令系统应当包含数据传送类指令、算术运算类指令、逻辑运算类指令、程序控制类指令、I/O类指令、字符串类指令、系统控制类指令。,