计算机系统组成及结构 - 第5章_第1页
计算机系统组成及结构 - 第5章_第2页
计算机系统组成及结构 - 第5章_第3页
计算机系统组成及结构 - 第5章_第4页
计算机系统组成及结构 - 第5章_第5页
已阅读5页,还剩82页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第第5章章 指令系统指令系统 本章学习导读:(1)指令的格式、寻址方式和功能分类。(2)RISC与CISC指令以及适于多媒体应用的MMX指令。(3)典型计算机的指令系统。 计算机的指令有微指令、机器指令和宏指令之分。计算机的指令有微指令、机器指令和宏指令之分。 微指令是微程序级的命令,属于硬件;微指令是微程序级的命令,属于硬件; 宏指令是由若干机器指令组成,属于软件;宏指令是由若干机器指令组成,属于软件; 机器指令介于二者之间,因而是硬件和软件的界面。机器指令介于二者之间,因而是硬件和软件的界面。 一台计算机能执行的机器指令全体称为该机的指令系一台计算机能执行的机器指令全体称为该机的指令系统。

2、统。 指令系统是软件编程的出发点和硬件设计的依据,它指令系统是软件编程的出发点和硬件设计的依据,它衡量机器硬件的功能,反映硬件对软件支持的程度。衡量机器硬件的功能,反映硬件对软件支持的程度。5.1 指令格式指令格式 5.1.1 指令的格式指令的格式 指令一般的格式如下:指令一般的格式如下: 操作码 OP 地址码 D 按指令包含的地址的个数可分:按指令包含的地址的个数可分: 1、三地址指令、三地址指令 OPD1D2D3执行(执行(D1)OP(D2) D3 OPD1D2执行(执行(D1)OP(D2) D2 2、二地址指令、二地址指令3单地址指令单地址指令 OPD执行(执行(D)OP (A) A 4

3、、零地址指令、零地址指令 空操作、停机等不需要地址的指令空操作、停机等不需要地址的指令5.1.2 指令长度指令长度 指令指令长度长度选取选取原则:原则: 1. 指令长度应为存储器基本字长的整数倍指令长度应为存储器基本字长的整数倍2. 指令字长应尽量短指令字长应尽量短 指令短,可减少所需存储量和加快运行速度,但不能指令短,可减少所需存储量和加快运行速度,但不能为了使指令短而影响指令系统的完备性和规整性。为了使指令短而影响指令系统的完备性和规整性。5. 2 寻址方式寻址方式 指令如何指定操作数或操作数地址称为寻址方式。指令如何指定操作数或操作数地址称为寻址方式。 确定指令系统的寻址方式时,须考虑以

4、下几点:确定指令系统的寻址方式时,须考虑以下几点: 希望指令内所含地址尽可能短;希望指令内所含地址尽可能短; 希望能访问尽可能大的存储空间;希望能访问尽可能大的存储空间; 寻址方法尽可能简单;寻址方法尽可能简单; 在不改变指令的情况下,仅改变地址的实际值,从而在不改变指令的情况下,仅改变地址的实际值,从而能方便地访问数组、串、表格等较复杂数据。能方便地访问数组、串、表格等较复杂数据。 常用的寻址方式常用的寻址方式1. 立即寻址立即寻址 指令直接给出操作数本身,称立即数寻址方式。指令直接给出操作数本身,称立即数寻址方式。 OP操作数格式如下:操作码存储器地址 存储器内容8位立即数n+1操作码n下

5、条指令n+2存储器地址存储器内容n+2n+1n立即数高8位立即数低8位n+3下条指令(a) 8位立即数(b) 16位立即数图5.1 按字节编址机器中的立即寻址指令2. 直接寻址直接寻址 指令直接给出操作数地址指令直接给出操作数地址 OP操作数地址格式如下:操作码存储器地址存储器内容n+2n+1n 操作数地址高8位 操作数地址低8位n+3下条指令图5.2 按字节编址机器中的直接寻址指令3. 间接寻址间接寻址 指令给出存放操作数地址的存储单元地址。指令给出存放操作数地址的存储单元地址。 OP 间接地址格式如下:OP操作数有效地址主存 间接地址图5.3 单级间接寻址4. 寄存器寄存器(直接直接)寻址

6、寻址 操作数在指令指定的操作数在指令指定的CPU的某个寄存器中。的某个寄存器中。OP寄存器号或OP寄存器号1寄存器号2 寄存器寻址有以下优点:寄存器寻址有以下优点: CPU寄存器数量远小于内存单元,所以寄存器号比寄存器数量远小于内存单元,所以寄存器号比内存地址短,因而寄存器寻址方式指令短;内存地址短,因而寄存器寻址方式指令短; 操作数已在操作数已在CPU中中,不用访存,指令执行速度快。不用访存,指令执行速度快。5寄存器间接寻址寄存器间接寻址 操作数地址在指令指定的操作数地址在指令指定的CPU某个寄存器中。某个寄存器中。 8086指令指令 MOV AX,BX 6寄存器变址寄存器变址 寻址寻址指令

7、指定一个指令指定一个CPU寄存器(称为变址寄存器)和寄存器(称为变址寄存器)和一个形式地址,操作数地址是二者之和。一个形式地址,操作数地址是二者之和。 data ndata 1data 2SI形式地址+图5.4 变址寻址选择数组数据OP寄存器号形式地址8086指令指令MOV AL,SI+1000H 7相对寻址相对寻址 相对寻址是把程序计数器相对寻址是把程序计数器PC的内容,加上由指令给出的内容,加上由指令给出的形式地址而形成操作数地址。的形式地址而形成操作数地址。8基址寻址基址寻址 把由指令中给出的地址把由指令中给出的地址(或称位移量或称位移量)与与CPU 中的某个中的某个基址寄存器相加而得到

8、实际的操作数地址。基址寄存器相加而得到实际的操作数地址。 变址寻址主要解决程序内部的循环问题,基址寻址则变址寻址主要解决程序内部的循环问题,基址寻址则要求基址寄存器的内容能提供整个主存范围的寻址能要求基址寄存器的内容能提供整个主存范围的寻址能力;在多道程序运行环境下,实现程序的再定位。力;在多道程序运行环境下,实现程序的再定位。 9隐含寻址方式隐含寻址方式 指令没有明显地给出操作数地址,而在操作码中隐含指令没有明显地给出操作数地址,而在操作码中隐含着操作数地址。如操作数隐含在累加器,堆栈内。着操作数地址。如操作数隐含在累加器,堆栈内。 10其它寻址方式其它寻址方式 有的计算机指令系统中还有更复

9、杂的寻址方式,如基有的计算机指令系统中还有更复杂的寻址方式,如基址变址寻址、位寻址、块寻址、串寻址等等。址变址寻址、位寻址、块寻址、串寻址等等。 在使用机器时,不仅要了解该机总体上有哪些寻址方在使用机器时,不仅要了解该机总体上有哪些寻址方式,还应了解各指令具体有哪些寻址方式。式,还应了解各指令具体有哪些寻址方式。5. 3 指令类型指令类型 设计一台计算机的指令系统的功能时,须考虑的几设计一台计算机的指令系统的功能时,须考虑的几个原则:个原则: 完备性或完整性完备性或完整性: 指令系统的功能应尽量完备,但较复杂的功能可以通指令系统的功能应尽量完备,但较复杂的功能可以通过程序实现。过程序实现。 兼

10、容性兼容性: 高档机的指令系统兼容以前的低档机的指令系统,给高档机的指令系统兼容以前的低档机的指令系统,给软件资源重复利用带来方便。软件资源重复利用带来方便。 均匀性均匀性: 数据处理指令能对多种类型的数据进行处理,包括三数据处理指令能对多种类型的数据进行处理,包括三种整数种整数(字节、字、双字字节、字、双字)和两种浮点数和两种浮点数(单精度和双精单精度和双精度浮点数度浮点数)。 可扩充性可扩充性: 操作码字段要保留一定的空间,以便需要时进行功能操作码字段要保留一定的空间,以便需要时进行功能扩充。扩充。1指令按功能分类:指令按功能分类:算术和逻辑运算指令算术和逻辑运算指令 有加(有加(ADD)

11、、减()、减(SUB)、比较()、比较(CMP)、乘()、乘(MUL)、除()、除(DIV)、与()、与(AND)、或()、或(OR)、取)、取反(反(NOT)、)、 变补(变补(NEG)、异或()、异或(XOR)、加)、加1(INC)、减)、减1(DEC) 等。等。 带进位的加(带进位的加(ADC )和带借位的减()和带借位的减(SBB )指令;)指令;十进制数的运算指令等。十进制数的运算指令等。(2) 移位指令和循环指令移位指令和循环指令 算术移位、逻辑移位、环移、半字交换等。算术移位、逻辑移位、环移、半字交换等。 算术移位:算术移位: 算术左移:操作数的各位依次向左移一位,最低位补算术左

12、移:操作数的各位依次向左移一位,最低位补零;原操作数的最高位移入零;原操作数的最高位移入C 标志位。标志位。 算术右移:操作数的各位依次向右移一位,最高位(算术右移:操作数的各位依次向右移一位,最高位(符号位)不变;原操作数的最低位移入符号位)不变;原操作数的最低位移入C 标志位。标志位。10100011操作数移位前:移位后:101000110操作数C标志C标志0(a) 算术左移移位前:移位后:11010001101000100操作数操作数C标志C标志(b) 算术右移图5.5 算术移位 逻辑移位:逻辑移位: 逻辑左移:操作同算术左移,大多数机器一般不再专逻辑左移:操作同算术左移,大多数机器一般

13、不再专门设置此指令。门设置此指令。 逻辑右移:操作数的各位依次向右移一位,最高位补逻辑右移:操作数的各位依次向右移一位,最高位补零。原操作数的最低位移入零。原操作数的最低位移入C标志位。标志位。移位前:移位后:01010001101000100操作数操作数C标志C标志图5.6 逻辑右移 环移:环移: 小环移小环移 小循环左移,最高位移入小循环左移,最高位移入C标志,同时移入最低位。标志,同时移入最低位。1) 小循环右移,最低位移入小循环右移,最低位移入C标志,同时移入最高位标志,同时移入最高位。C标志操作数(a) 小循环左移C标志操作数(b) 小循环右移图5.7 小环移(a) 大循环左移(b)

14、 大循环右移图5.8 大环移C标志操作数操作数2) 大环移大环移 大循环左移,最高位移入大循环左移,最高位移入C标志,标志,C标志移入最低位。标志移入最低位。 大循环右移,最低位移入大循环右移,最低位移入C标志,标志,C标志移入最高位。标志移入最高位。 半字交换半字交换交换前:0100100001101110交换后:0110111001001000图 5.9 半字交换(3) 传送类指令传送类指令 有:传送(有:传送(MOV)(源操作数)(源操作数目标操作数)、取目标操作数)、取数(数(LDA)(数由内存)(数由内存CPU寄存器)、存数(寄存器)、存数(STA)(数由)(数由CPU寄存器寄存器内

15、存)、交换(内存)、交换(XCHG)(源)(源操作数和目标操作数交换)等。操作数和目标操作数交换)等。(4) 串指令串指令: 对字符串进行操作的指令。如有串传送、比较、检索对字符串进行操作的指令。如有串传送、比较、检索、传送转换等指令。、传送转换等指令。(5) 顺序控制指令顺序控制指令: 用来控制程序执行的顺序。有条件转移、无条件转移用来控制程序执行的顺序。有条件转移、无条件转移(JMP)、跳步()、跳步(SKIP)、转子()、转子(CALL)、返主()、返主(RET)等指令。)等指令。 (7) 输入、输出指令输入、输出指令: 用于完成用于完成CPU与外部设备交换数据或传送控制命令及与外部设备

16、交换数据或传送控制命令及状态信息。状态信息。(6) CPU控制指令:控制指令: 有停机、开中断、关中断以及改变执行特权、进入特有停机、开中断、关中断以及改变执行特权、进入特殊处理程序等指令。大多数只能用于操作系统等系统殊处理程序等指令。大多数只能用于操作系统等系统软件。软件。2. 按操作数个数分有:按操作数个数分有:(1) 双操作数指令:如:双操作数指令:如:ADD、SUB、AND等等(2) 单操作数指令:如:单操作数指令:如:NEG、NOT、INC、DEC等等(3) 无操作数指令:如:空操作(无操作数指令:如:空操作(NOP)、停机,开中)、停机,开中断、关中断等。断、关中断等。3. 按操作

17、数寻址方式分有按操作数寻址方式分有: R-R型:两个操作数都在型:两个操作数都在CPU的寄存器中。的寄存器中。 R-S型:两个操作数中一个在型:两个操作数中一个在CPU寄存器中,另一寄存器中,另一个在内存中。个在内存中。 (3) S-S型:两个操作数都在内存中型:两个操作数都在内存中 。5. 4 堆栈和堆栈存取方式堆栈和堆栈存取方式 堆栈是一种特定的数据结构堆栈是一种特定的数据结构,其特点是后进先出其特点是后进先出(LIFO)或先进后出或先进后出(FILO)。 1. 用移位寄存器用移位寄存器实现堆栈实现堆栈 栈顶空栈: 栈底 栈顶存入b:ba 栈底 栈顶取出b:a 栈底 图5.10栈顶固定方式

18、堆栈及其存取 栈顶存入a:a 栈底 用若干移位寄存器用若干移位寄存器构成,又叫栈顶固构成,又叫栈顶固定方式堆栈。定方式堆栈。 2. 内存中开辟堆栈区内存中开辟堆栈区 这种堆栈,存储器单元固定,而栈顶位置动态变化。这种堆栈,存储器单元固定,而栈顶位置动态变化。在在CPU中专门设置堆栈指针中专门设置堆栈指针SP,指示栈顶位置,存取,指示栈顶位置,存取只能在栈顶进行。只能在栈顶进行。1)自底向上生成堆栈:自底向上生成堆栈: 建栈时堆栈指针建栈时堆栈指针SP指向栈底下面一个单元(栈底是堆指向栈底下面一个单元(栈底是堆栈中地址最大的单元);栈中地址最大的单元); 入栈操作(入栈操作(PUSH)步骤:)步

19、骤:i)SP-1SP ii)存入数据存入数据(SP) 出栈操作(出栈操作(POP)步骤:)步骤: i)(SP)内容读出)内容读出 ii) SP+1SP 1FFD 1FFE 1FFF 2000栈底堆栈指针SP2000(a) 建栈 1FFD 1FFE 1FFF 2000栈底a堆栈指针SP1FFF(b) a入栈 1FFD 1FFE 1FFF 2000栈底a堆栈指针SP1FFF(d) b出栈图5.11 自底向上生成堆栈 1FFD 1FFE 1FFF 2000栈底ba堆栈指针SP1FFE(c) b入栈2)自顶向下生成堆栈:自顶向下生成堆栈: 这种堆栈建栈时堆栈指针这种堆栈建栈时堆栈指针SP指向栈底上面一

20、个单元(指向栈底上面一个单元(栈底是堆栈中地址最小的单元),栈底是堆栈中地址最小的单元), 入栈操作(入栈操作(PUSH)步骤:)步骤: i) SP+1SP ii)存入数据存入数据(SP) 出栈操作(出栈操作(POP)步骤:)步骤: i)(SP)内容读出)内容读出 ii) SP-1SP 指针变化方向不同。指针变化方向不同。5. 5 指令系统举例指令系统举例 5.5.1 IBM 370系列机指令格式系列机指令格式 RRE、S、SSE型指令的操作码为型指令的操作码为16位,其余指令的位,其余指令的操作码均为操作码均为8位。位。 操作码的第操作码的第0位和第位和第1位组成四种不同的编码位组成四种不同

21、的编码 00表示表示RR型指令,型指令,01表示表示RX型指令,型指令,10表示表示RRE型型、RS型、型、S型及型及SI型指令,型指令,11表示表示SS型和型和SSE型指令型指令 RR和和RRE型指令都是寄存器型指令都是寄存器-寄存器型指令寄存器型指令 RX和和RS型指令都是寄存器型指令都是寄存器-存储器型指令,第一个操存储器型指令,第一个操作数和结果放在作数和结果放在R1中,另一个操作数在主存中。中,另一个操作数在主存中。 采用变址寻址方式,有效地址采用变址寻址方式,有效地址=(X2)+(B2)+D2,B2为基址寄存器,为基址寄存器,D2为位移量,为位移量,x为变址寄存器号。为变址寄存器号

22、。 RS型是三地址指令:型是三地址指令:R1存放结果,存放结果,R2放一个源操作放一个源操作数,另一个源操作数在主存中;数,另一个源操作数在主存中; 有效地址有效地址=(B2)+D2。 SI型是立即数指令型是立即数指令 S型是单操作数指令型是单操作数指令 SS和和SSE型指令是可变字长指令,用于字符串的运型指令是可变字长指令,用于字符串的运算和处理,算和处理,L为串之长度。为串之长度。 SSE指令与指令与SS指令之差别是指令之差别是 SS指令中的指令中的L字段字段(8-15位位)扩展成操作码。扩展成操作码。5.5.2 PDP-11指令格式指令格式 PDP-11是一个具有是一个具有8个寄存器(个

23、寄存器(R0-R7)、)、16位字长位字长的小型计算机。其中,的小型计算机。其中,R0-R5为通用寄存器,为通用寄存器,R7是程是程序计数器序计数器PC,R6是栈指针是栈指针SP。存储器按字节编址。存储器按字节编址。 双操作数指令:操作码双操作数指令:操作码4位,每个地址码位,每个地址码6位,地址位,地址码由码由3位寄存器号和位寄存器号和3位寻址方式字段构成。位寻址方式字段构成。 单操作数指令:操作码单操作数指令:操作码10位,地址码位,地址码6位。位。 转移指令:转移地址转移指令:转移地址(相对转移相对转移)由由8位位移量指出;位位移量指出; 条件码操作指令:低条件码操作指令:低5位为条件标

24、志。位为条件标志。例例1 某计算机字长某计算机字长16bit,主存容量,主存容量64K。指令系统共有。指令系统共有58条指令,有直接、间接、相对和变址四种寻址条指令,有直接、间接、相对和变址四种寻址方式,指令为单字长单地址指令。请设计该指令方式,指令为单字长单地址指令。请设计该指令系统的指令格式。系统的指令格式。 解:解: 单地址指令格式为单地址指令格式为OPMD 计算机字长为计算机字长为16bit,指令为单字长,所以指令字长为,指令为单字长,所以指令字长为16bit;因;因26=6458,所以操作码为,所以操作码为6bit。16-6-2=8,剩,剩余余8位作形式地址。位作形式地址。OPMD6

25、 2 8 设计指令格式为设计指令格式为00 直接寻址直接寻址 E=D(0255)01 间接寻址间接寻址 E=(D) (216=64K) 变址寻址变址寻址 E=RX+D (RX 变址寄存器)变址寄存器)10 11 相对寻址相对寻址 E=PC+D(PC 程序计数器)程序计数器) 一条指令包含下列信息:一条指令包含下列信息: 操作码,操作数的地址,操作结果的存放地址,下一操作码,操作数的地址,操作结果的存放地址,下一条指令的地址(顺序、转移和调子程序条指令的地址(顺序、转移和调子程序)。例例2 某存储器堆栈,栈底地址某存储器堆栈,栈底地址 Bottom=3000H,栈中,栈中已压入两个数据已压入两个

26、数据a和和b,SP为堆栈指针。为堆栈指针。(1)画出此时堆栈示意图。)画出此时堆栈示意图。(2)现将数据)现将数据 c,d 和和 e 按顺序压入堆栈,且用累加按顺序压入堆栈,且用累加器器AC 进行数据交换,写出数据入栈步骤,画出数进行数据交换,写出数据入栈步骤,画出数据入栈后的堆栈情况。据入栈后的堆栈情况。(3)写出数据)写出数据 e 出栈的操作步骤。出栈的操作步骤。解:(解:(1)堆栈情况如下图所示)堆栈情况如下图所示(2)数据入栈操作)数据入栈操作AC c;SP SP-1;(SP) ACAC d;SP SP-1;(SP) ACAC e;SP SP-1;(SP) AC(3)数据)数据 e 的

27、出栈操作的出栈操作AC (SP)SP SP+15.5.3Pentium指令系统指令系统 指令格式指令格式 Pentium采用可变长指令格式,最短的指令只有一采用可变长指令格式,最短的指令只有一个字节,最长的指令可有十几个字节。个字节,最长的指令可有十几个字节。 指令前缀段前缀操作数长度地址长度 0或10或1 0或1 0或1前缀类型:字节数: 指令组成:指令组成: 前缀:位于指令操作码前,各类前缀的字节数如下前缀:位于指令操作码前,各类前缀的字节数如下: : 前缀不是每条指令必须有的。如有的话,各种前缀也前缀不是每条指令必须有的。如有的话,各种前缀也都是可选的。都是可选的。 指令:指令各部分的长

28、度和含义如下:指令:指令各部分的长度和含义如下:操作码寻址方式 SIB 位移直接数据1或20或10或11、2、4立即数指令段: 字节数:ModSSR/MReg/OPBaseIndex7651234670234501图5.14 Pentium指令格式 操作码:操作码: 指定指令的操作,还指明数据是字节还是全字长;指指定指令的操作,还指明数据是字节还是全字长;指明明REG字段指定的寄存器是源还是目标字段指定的寄存器是源还是目标 。 寻址方式字节:寻址方式字节: 由由MOD和和R/M联合指定联合指定8种寄存器寻址和种寄存器寻址和24种变址寻种变址寻址方式,址方式,reg/OP指定某个寄存器为操作数或

29、作为操作指定某个寄存器为操作数或作为操作码的扩展用。码的扩展用。 SIB: SS指定比例系数(变址寻址方式时用);指定比例系数(变址寻址方式时用);Index指定指定变址寄存器;变址寄存器;Base指定基址寄存器。指定基址寄存器。操作码寻址方式 SIB 位移直接数据1或20或10或11、2、4立即数指令段: 字节数:ModSSR/MReg/OPBaseIndex7651234670234501图5.14 Pentium指令格式2. 寻址方式寻址方式 (1) Pentium物理地址的形成物理地址的形成 Pentium的逻辑地址包括段和偏移量,段号经过段表的逻辑地址包括段和偏移量,段号经过段表直接

30、得到该段的首地址,和有效地址相加形成一维的直接得到该段的首地址,和有效地址相加形成一维的线性地址。线性地址。 逻辑地址段偏移.目录页号位移 线性地址.物理地址页目录表页表段表 图5.15 Pentium物理地址的形成(2) Pentium的寻址方式的寻址方式 表5.1 Pentium的寻址方式 寻址方式 说明立即寻址指令直接给出操作数指定的寄存器R的内容为操作数寄存器寻址位移LA=(SR)+A基址寻址LA=(SR)+(B)基址加位移LA=(SR)+(B)+A比例变址加位移LA=(SR)+(I)S + ALA=(SR)+(B)+(I)+ALA=(SR)+(B)+(I)S + ALA=(PC)+A

31、基址加变址加位移基址加比例变址加位移相对寻址注:LA:线性地址 (X):X的内容 SR:段寄存器B:基址寄存器 I:变址寄存器 S:比例系数 PC:程序计数器A:指令中给定地址段的位移量R:寄存器5.5.4 Power PC指令系统指令系统 PowerPC为为RISC计算机,其指令格式和寻址方式要计算机,其指令格式和寻址方式要比一般比一般CISC机简单、规整。机简单、规整。 1指令格式指令格式 Power PC采用单一的采用单一的32位指令长度,格式规整;所位指令长度,格式规整;所有指令的最高有指令的最高6位都是操作码,有的指令将其它一些位都是操作码,有的指令将其它一些位位(X0)作为操作码扩

32、展。作为操作码扩展。 转移指令转移指令 链接指示(链接指示(L),表示是否将紧接着该指令的指令地址),表示是否将紧接着该指令的指令地址送入链接寄存器(返回地址)。送入链接寄存器(返回地址)。 A标志位,指明地址是绝对地址还是相对于标志位,指明地址是绝对地址还是相对于PC的地址。的地址。 CR 位字段指明转移条件要对条件寄存器(标志寄存器位字段指明转移条件要对条件寄存器(标志寄存器)中哪一位进行测试。)中哪一位进行测试。 选项字段选项字段(5位位)指定如下几个转移方法:指定如下几个转移方法: 总是转移。总是转移。 如果计数如果计数0,且测试的条件为真则转移。,且测试的条件为真则转移。 如果计数如

33、果计数0,且测试的条件为假则转移。,且测试的条件为假则转移。 如果计数如果计数0,且测试的条件为真则转移。,且测试的条件为真则转移。 如果计数如果计数0,且测试的条件为假则转移。,且测试的条件为假则转移。 如果计数如果计数0,转移。,转移。 如果测试的条件为真,则转移。如果测试的条件为真,则转移。 如果测试的条件为假,则转移。如果测试的条件为假,则转移。 取数取数/存数指令存数指令 条件寄存器指令条件寄存器指令 R标志位,用来表示是否将运算结果的有关标志写入标志位,用来表示是否将运算结果的有关标志写入到条件寄存器中去,这在条件转移预测时很有用。到条件寄存器中去,这在条件转移预测时很有用。 2.

34、 寻址方式寻址方式 (1) 取数取数/存数指令的寻址方式存数指令的寻址方式 间接寻址间接寻址 有效地址有效地址EA=(BR)+D,BR为基址寄存器;为基址寄存器; D为为16位位(有正负有正负)的位移量。的位移量。 间接变址寻址间接变址寻址 有效地址有效地址EA=(BR)+(IR),IR为变址寄存器,任一通为变址寄存器,任一通用寄存器也均可作为变址寄存器。用寄存器也均可作为变址寄存器。基址寄存器(BR) 变址寄存器(IR)逻辑地址 至地址转换机构 (b) 变址间接寻址基址寄存器(BR) 有符号位移 D逻辑地址 至地址转换机构 (a) 间接寻址 图5.16 Power PC访存指令寻址方式 (2

35、) 转移指令的寻址方式转移指令的寻址方式 绝对地址:绝对地址: 无条件转移和条件转移:指令分别给出无条件转移和条件转移:指令分别给出24位和位和16位地位地址,均扩展为址,均扩展为32位后形成转移地址。位后形成转移地址。 扩展的方法:最低端补两个零,高端进行符号扩展。扩展的方法:最低端补两个零,高端进行符号扩展。 相对寻址:相对寻址: 无条件转移,指令给出无条件转移,指令给出24位地址,将它按前述方法扩位地址,将它按前述方法扩展后和展后和PC相加即为下条指令地址;相加即为下条指令地址; 条件转移,指令给出条件转移,指令给出14位地址,按前述方法扩展后和位地址,按前述方法扩展后和PC相加作为下条

36、指令地址。相加作为下条指令地址。3. 算术指令的寻址方式算术指令的寻址方式 整数算术指令采用寄存器寻址或立即寻址,立即数是整数算术指令采用寄存器寻址或立即寻址,立即数是16位有符号数。浮点算术指令只可采用寄存器寻址。位有符号数。浮点算术指令只可采用寄存器寻址。 间接寻址:间接寻址: 下条指令的有效地址存放于链接寄存器或计数寄存器下条指令的有效地址存放于链接寄存器或计数寄存器中。若采用计数寄存器,此时计数寄存器不能再作计中。若采用计数寄存器,此时计数寄存器不能再作计数器用。数器用。5. 6 CISC与与RISC指令指令 1背景背景 计算机的硬件成本不断下降,软件成本不断上升;计算机的硬件成本不断

37、下降,软件成本不断上升; 指令系统增加了越来越多功能强大的复杂命令,以便指令系统增加了越来越多功能强大的复杂命令,以便使机器指令的功能接近高级语言语句的功能;使机器指令的功能接近高级语言语句的功能; 目前许多计算机的指令系统可包含几百条指令,十多目前许多计算机的指令系统可包含几百条指令,十多种寻址方式,这对简化汇编语言设计,提高高级语言种寻址方式,这对简化汇编语言设计,提高高级语言的执行效率是有利的。的执行效率是有利的。 “复杂指令集计算机复杂指令集计算机”,简称,简称CISC(Complex Instruction Set Computer)的提出。的提出。 指令系统越来越复杂的出发点:指令

38、系统越来越复杂的出发点: 使目标程序得到优化:把原来要用一段程序才能完使目标程序得到优化:把原来要用一段程序才能完成的功能,只用一条指令来实现。成的功能,只用一条指令来实现。 给高级语言提供更好的支持:改进指令系统,设置给高级语言提供更好的支持:改进指令系统,设置一些在语义上接近高级语言语句的指令,就可以减轻一些在语义上接近高级语言语句的指令,就可以减轻编译的负担,提高编译效率。编译的负担,提高编译效率。 提供对操作系统的支持:操作系统日益发展,其功提供对操作系统的支持:操作系统日益发展,其功能也日趋复杂,这就要求指令系统提供越来越复杂能也日趋复杂,这就要求指令系统提供越来越复杂的功能。的功能

39、。 庞大的指令系统中,只有算术逻辑运算、数据传送、转庞大的指令系统中,只有算术逻辑运算、数据传送、转移、子程序调用等几十条基本指令才是常使用的,在程移、子程序调用等几十条基本指令才是常使用的,在程序中出现的概率占到序中出现的概率占到80%以上;以上; 复杂的指令系统带来的问题复杂的指令系统带来的问题 计算机的结构也越来越复杂,不仅增加了计算机的研制计算机的结构也越来越复杂,不仅增加了计算机的研制周期和成本,而且难以保证其正确性,有时还可能降低周期和成本,而且难以保证其正确性,有时还可能降低系统的性能。系统的性能。 需要大量硬件支持的复杂指令的利用率却很低,造成了需要大量硬件支持的复杂指令的利用

40、率却很低,造成了硬件资源的大量浪费。硬件资源的大量浪费。 各种高级语言的语义之间有很大差别。不可能设计出各种高级语言的语义之间有很大差别。不可能设计出一种能对所有高级语言都能提供很好支持的指令系统一种能对所有高级语言都能提供很好支持的指令系统。 精简指令集计算机精简指令集计算机RISC(Reduced Instruction Set Computer)的提出。)的提出。 指令系统越复杂,包含的指令越多,编译时生成目标指令系统越复杂,包含的指令越多,编译时生成目标程序的方法也越多,对最终优化编译造成困难。程序的方法也越多,对最终优化编译造成困难。2精简指令系统计算机特点精简指令系统计算机特点 通

41、过简化指令使计算机的结构更加简单合理,从而提通过简化指令使计算机的结构更加简单合理,从而提高机器的性能。高机器的性能。 指令数目较少,一般都选用使用频度最高的一些简指令数目较少,一般都选用使用频度最高的一些简单指令;单指令; 指令长度固定,指令格式种类少,寻址方式种类少;指令长度固定,指令格式种类少,寻址方式种类少; 大多数指令可在一个机器周期内完成;大多数指令可在一个机器周期内完成; 通用寄存器数量多,只有存数通用寄存器数量多,只有存数/取数指令访问存储器取数指令访问存储器,而其余指令均在寄存器之间进行操作。,而其余指令均在寄存器之间进行操作。 采用采用RISC技术技术 指令系统可以采用速度

42、较快的硬连线逻辑来实现,且指令系统可以采用速度较快的硬连线逻辑来实现,且更适合于采用指令流水技术,可使指令的执行速度进更适合于采用指令流水技术,可使指令的执行速度进一步提高。一步提高。 指令数量少,固然使编译工作量加大,但由于指令系指令数量少,固然使编译工作量加大,但由于指令系统中的指令都是精选的,编译时间少,反过来对编译统中的指令都是精选的,编译时间少,反过来对编译程序的优化又是有利的。程序的优化又是有利的。 CISC和和RISC技术都在发展,两者都各有自己的优点技术都在发展,两者都各有自己的优点和缺点。但是和缺点。但是RISC技术作为一种新的设计思想,无疑技术作为一种新的设计思想,无疑对计

43、算机的发展产生重大影响。对计算机的发展产生重大影响。3CISC与与RISC之争论之争论 70年代中期,年代中期,IBM公司、斯坦福大学、加州大学伯克公司、斯坦福大学、加州大学伯克利分校等机构分别先后开始对利分校等机构分别先后开始对CISC技术进行研究,其技术进行研究,其成果分别用于成果分别用于IBM、SUN、MIPS等公司的产品中;等公司的产品中; 八十年代中期,八十年代中期,RISC技术蓬勃发展,先后出现了技术蓬勃发展,先后出现了PowerPC、MIPSR4400、MC88000、Super Spare、Intel0860等高性能等高性能RISC芯片以及相应的计算机;芯片以及相应的计算机;

44、RISC也随着速度、芯片密度的不断提高,使也随着速度、芯片密度的不断提高,使RISC系系统日趋复杂;统日趋复杂; CISC机采用了部分机采用了部分RISC先进技术先进技术(强调指令流水线、强调指令流水线、分级分级Cache 和多设通用寄存器和多设通用寄存器),其性能更加提高。,其性能更加提高。5.7 MMX技术技术 MMX(Microprocessor Media Extension)是是Intel公司为公司为提高提高PC机处理多媒体和通信能力而推出的新一代处理机处理多媒体和通信能力而推出的新一代处理器技术,增加器技术,增加8个个64位寄存器和位寄存器和57条新指令来实现。条新指令来实现。 M

45、MX的由来与特点的由来与特点 多媒体应用中的图形、图像、视频、音频的操作多媒体应用中的图形、图像、视频、音频的操作中存在大量共同特征的操作:中存在大量共同特征的操作: 短整数类型的并行操作短整数类型的并行操作(如如8位图形象素和位图形象素和16位音频信号位音频信号); 频繁的乘法累加频繁的乘法累加(如如FIR滤波,矩阵运算滤波,矩阵运算); 短数据的高度循环运算短数据的高度循环运算(如快速傅里叶变换如快速傅里叶变换FFT、离散、离散余弦变换余弦变换DCT); 计算密集型算法计算密集型算法(如三维图形、视频压缩如三维图形、视频压缩); 高度并行操作高度并行操作(如图像处理如图像处理)。 MMX技

46、术与以前的技术与以前的Intel CPU(简称简称IA-Intel Architecture)结构相比,增加的功能。结构相比,增加的功能。 引进了新的数据类型和通用寄存器引进了新的数据类型和通用寄存器 MMX技术的主要数据类型为定点紧缩技术的主要数据类型为定点紧缩(Packed)整数整数,它定义了,它定义了4种新的种新的64位数据类型。位数据类型。63 56 55 4831 24 23 16 15 8 7 063 4863 0紧缩字节紧缩字4字紧缩双字图5.17 MMX技术引入的数据类型47323116150 47 406332 3103239(2) 采用采用SIMD(Single Instr

47、uction Multi Data技术技术单条指令同时并行地处理多个数据元素,提高运算速单条指令同时并行地处理多个数据元素,提高运算速度。例如,一条指令可以完成图形度。例如,一条指令可以完成图形/图像中图像中8个象素个象素(每每象素象素8位位)的并行操作。的并行操作。(3) 饱和饱和(Situration)运算运算 环绕运算或称非饱和运算,上溢或下溢的结果被截取环绕运算或称非饱和运算,上溢或下溢的结果被截取,返回低有效位值,返回低有效位值,F3H+1DH=10H。 饱和运算:上溢与下溢结果被截取至各类数据值域的饱和运算:上溢与下溢结果被截取至各类数据值域的最大值或最小值。如,最大值或最小值。如

48、,F3H+1DH=FFH 。 表表5.3 MMX饱和运算范围饱和运算范围 a亮值为亮值为F3H,b点亮度值为点亮度值为1DH,采用非饱和运算模,采用非饱和运算模式,其线性插值的结果为式,其线性插值的结果为10H/2=08H。该结果的亮度。该结果的亮度值比值比b点还低。点还低。 引入饱和运算后,引入饱和运算后,a与与b占亮度插值应为:占亮度插值应为: FHFFHDHHF72213(4) 兼容性兼容性 MMX技术与现有的技术与现有的IA(Intel Architecture)处理器和处理器和OS保持向下兼容,保持向下兼容,IA MMX状态建立在状态建立在IA浮点状态之上浮点状态之上,无需增加新的状

49、态。,无需增加新的状态。 2. MMX指令系统指令系统 早期早期MMX结构中引入了结构中引入了57条新的指令,条新的指令,P4 MMX指指令增为令增为144条,条,SIMD得到了强化,得到了强化,MMX寄存器也扩寄存器也扩充为充为128位。位。 57条指令分成条指令分成7大类:算术运算指令、逻辑运算指令大类:算术运算指令、逻辑运算指令、比较指令、转换指令、移位指令、数据传送指令、比较指令、转换指令、移位指令、数据传送指令、置空置空MMX状态指令。状态指令。(1) 指令句法指令句法数据类型:紧缩字节、紧缩字、紧缩双字、数据类型:紧缩字节、紧缩字、紧缩双字、64位字;位字;有符号数与无符号数;环绕和饱和运算。有符号数与无符号数;环绕和饱和运算。一个时钟周期内可处理完一个时钟周期内可处理完16字节的数据。字节的数据。句法:句法: 词头:词头:P(Packed)表示紧缩型指令表示紧缩型指令 指令:指令

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论