计算机组成原理41 指令系统_第1页
计算机组成原理41 指令系统_第2页
计算机组成原理41 指令系统_第3页
计算机组成原理41 指令系统_第4页
计算机组成原理41 指令系统_第5页
已阅读5页,还剩90页未读 继续免费阅读

下载本文档

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

文档简介

1、第4章 指令系统和控制器部件4.1 指令系统4.2 控制器部件指令: 是指示计算机执行基本操作的命令。指令也是用户使用计算机的最小功能单位。 从计算机组成的层次结构来说,计算机的指令有微指令、机器指令和宏指令之分。 微指令:是微程序级的命令,它属于硬件;宏指令:是由苦干条机器指令组成的软件指令,它属于软件; 机器指令:则介于微指令与宏指令之间,通常简称为指令。每一条指令可完成一个独立的算术运算或逻辑运算操作。 本章所讨论的指令是机器指令。 指令系统:一台计算机支持(或称使用)的全部指令的集合构成该计算机的指令系统。由于指令与计算机的性能以及硬件结构密切相关,所以不同系列、不同型号的计算机其指令

2、系统是不一样的。4.1 指令系统指令的基本格式指令格式的优化寻址方式指令系统举例 Th-union汇编语言程序设计一、指令的格式 任何一条机器指令由一组有意义的二进制代码构成,称为一个指令字。 1、机器指令0001001000010010 用机器指令编写的程序是计算机惟一能够直接识别并执行的程序,称为机器语言程序。机器语言程序被称为目标程序(目标代码)。 机器直接执行,速度快。 缺点:与机器硬件直接相关,通用性差;编程不直观、难以记忆、使用很不方便。机器语言的特点为了克服机器语言的缺点,人们采用助记符表示机器指令的操作码,用符号代替操作数的存放地址等,这样就形成了汇编指令。 例:机器指令: 0

3、0001 汇编指令: MVRR R2,R1 用汇编指令编写的程序称为汇编源程序。一条机器指令对应一条汇编指令。用汇编指令编写程序就直观方便得多。用汇编语言编写程序及执行的过程程序员MVRR R0,R1ADD R0,R3 汇编程序11000 执行汇编语言指令机器指令代码(翻译)高级语言 汇编语言虽然较机器语言直观,但仍然烦琐难懂。于是人们研制出了高级程序设计语言。高级程序设计语言接近于人类自然语言的语法习惯,与计算机硬件无关,易被用户掌握和使用。(1) 用语言实现: Main () int a, b, sum; a=123; b=456; sum=a+b 例如:编程实现 123 加 456 求和

4、(2)用8086汇编语言实现: a dw 123 b dw 456 sum dw ? Code segment assume CS: Code, DS:Data Main:mov ax,data mov ds,ax mov ax, a add ax, bmov sum , axmov ax, 4c00hint 21hMain endpCode endsend main(3)用机器语言实现: 键入代码: -e cs:100 A1 0F 01 03 06 11 01 A3 13 01 B8 00 4C CD 21 为数据分配空间: -e ds:10F 7B 00 C8 01 00 00三种语言编写

5、程序占用字节数程序设计语言可执行程序占用字节数 高级语言( C )CSUM.EXE 4330 汇编语言 ASMSUM.COM 21 机器语言MACHINE.COM 21操作码操作数地址码任何一条机器指令由一组有意义的二进制代码构成,称为一个指令字。 其基本格式可划分成二个部分: 2. 指令的基本格式表明操作数存放的位置,以便找到操作数完成指令的功能。规定指令完成何种功能。Th-union的机器指令 汇编指令例如:00010010 ADD R1,R200010010 SUB R1,R200110000 INC R300010000 MVRD R1,00550000000001010101指令的操

6、作码字段指令的操 作数字段 0 0 5 5 1)操作码定长操作码变长操作码 在指令系统中,每一条指令都有唯一确定的操作码。 分二种形式: a. 定长操作码形式在指令字中,操作码字段的位数和位置是固定的。早期的计算机一般采用定长操作码的设计,控制简单,且对操作码的译码实现容易。 IBM 360/370 操作码是八位的: 该指令系统最多可有多少条指令? Th-union操作码是八位的: 该指令系统最多可有256条指令。 例如:256RR型 OPC R1 R2 8 4 4 RS型 OPC Rn Rm B D 8 4 4 4 12RX型 OPC R1 X2 B2 D2 8 4 4 4 12SI型 OP

7、C I2 B1 D2 8 4 4 12SS型 OPC L B1 D1 B2 D2 8 8 4 12 4 12IBM 360/370 计算机的指令格式Ri:通用寄存器Xi:变址寄存器Bi:基址寄存器Di:位移量I: 立即数L: 数据的长度定长操作码的特点 优点:有利于简化硬件设计,提高指令译码的速度和指令执行的速度。 缺点:限制了指令系统的扩充、 不利于缩短指令的长度,存在有很大程度的信息冗余 。 b. 变长操作码形式指令系统中,各指令的操作码字段位数不等长。例:PDP-11小型机的指令系统 其指令长度为16位,操作码字段的长度有、10、13、16等不同的情况。 Mod Ri Mod Rj OP

8、 四位 六位 六位 Ri Mod Rj OP(7) Mod Rj OP(10) Rj OP(13) OP(16)为增加操作码长度,采用 操作码逐段扩展技术 变长操作码的特点 优点:可方便扩充指令系统有利于缩短指令操作码的平均长度。 缺点:指令译码的控制复杂,硬件电路复杂。 2) 地址码的设计和安排按照指令中地址码字段给出的地址的个数的不同,无地址指令(零地址指令)一地址指令(单地址指令)双地址指令多地址指令有四种情况:Th-union的机器指令 汇编指令00010010 ADD R1,R210001001 SUB R8,R900110000 INC R300010000 MOV R1,0055

9、H0000000001010101a. 无地址指令(零地址指令)有二种情况: 指令不需要任何操作数。 例:NOP、HALT 操作数为隐含的,或操作数地址是默认的。 例:PUSHF、POPF 操作码格式: b. 一地址指令(单地址指令)操作码地 址 码只有一个地址码,用于单操作数指令。 例:INC、SHL、JMP、CALL或者双操作数指令,但其中一个操作数的地址为默认值。 例:MUL、DIV格式: c. 双地址指令 地址码2 地址码1 操作码 地址码既是源操作数的地址,也是目的操作数的地址。 双操作数在运算类、传送类指令中使用较多。 ADD DR, SR 格式: d. 多地址指令 地址码3 地址

10、码2 地址码1 操作码 地址码4地址码3地址码2 地址码1操作码 特点:操作完成后源操作数的内容不被破坏,用户编程方便。严重的缺点是指令字较长。格式:格式: 3) 指令字长度 机器指令的二进制序列的位数。 定长指令变长操作码 变长指令定长操作码例:某机指令系统,指令字为16位固定长,要求有地址指令、地址指令、地址指令和地址指令,每个地址码位。应如何设计? a. 定长指令变长操作码 该种形式是将操作码的设计与地址码的设计作为一个整体考虑,以形成高效合理的指令编码。设计方案为: 三地址指令采用位操作码 0000 1110 双地址指令采用位操作码 11110000 11111110 一地址指令采用1

11、2位操作码 111111110000 111111111110 无地址指令采用16位操作码 1111111111110000 11111111111111110000 XXXX XXXX XXXX4位操作码(3地址指令15条)1110 XXXX XXXX XXXX8位操作码(2地址指令15条)1111 0000 XXXX XXXX1111 1110 XXXX XXXX(1地址指令15条)1111 1111 0000 XXXX1111 1111 1110 XXXX12位操作码(0地址指令16条)1111 1111 1111 00001111 1111 1111 111116位操作码练习:设某机为

12、定长指令字结构,指令长度12位,每个地址码占位,试提出一种方案,使该系统包含条三地址指令,条二地址指令,180 条单地址指令。另:能否构成三地址指令条,单地址指令 255条,零地址指令64条呢?指令字的长度与机器字长没有固定的关系。 b. 变长指令定长操作码例:IBM360/370 指令的操作码是位的, 指令字为16位、32位、48位。 TH-union 指令的操作码是8位的, 指令字为16位. Th-union的指令格式 单字指令仅用一个指令字。 双字指令要用两个指令字, 此时第二个指令字的内容可能是立即数、一个绝对地址或一个变址位移量。 I/O 端口地址 条件转移指令的偏移量 直接数 /

13、内存地址 / 指令中变址偏移量 操 作 码目的寄存器源寄存器 8位 4位 4位 Th-union的机器指令 汇编指令00010010 ADD R1,R200010010 SUB R1,R200110000 INC R300010000 MVRD R1,00550000000001010101 设某机型需设计 100条指令。试确定以下两种操作码设计方案的操作码长度。1)采用定长操作码格式。2)采用扩展操作码法。(设10的指令使用频度为90)思考: 二、寻址方式寻址方式:指的是确定本条指令的数据地址及下一条要执行的指令地址的方法。 不同的计算机系统,使用数目和功能不同的寻址方式,其实现的复杂程度和

14、运行性能也各不相同。1、指令寻址顺序( PC ) + 1 PC跳跃由转移指令指出LDA 1000ADD 1001DEC 1200JMP 7LDA 2000SUB 2001INCSTA 2500LDA 1100.0123456789PC+1指令地址寻址方式指令地址指令顺序寻址1顺序寻址2顺序寻址3跳跃寻址7顺序寻址82、数据寻址 约定 指令字长 = 存储字长 = 机器字长形式地址 A操作码寻址特征 通常需要在指令中为每一个操作数专设一个地址字段,用来表示数据的来源或去向的地址。 在指令中给出的操作数的地址被称为形式地址,使用形式地址信息并按一定的规则计算出来的一个数值才是数据(或指令)的实际地址

15、。 运算器中寄存器的编号或专用寄存器名称(编号) 输入/输出指令中I/O 设备的输入输出端口地址 内存储器的一个存储单元(或一I/O设备)的地址 在指令的操作数地址字段,可能要指出: 在计算机的指令系统中,会有多种基本寻址方式和某些复合寻址方式,简介如下:1)直接寻址 在指令的地址码字段直接给出所需的操作数(或指令)在存储器中的地址。 存储器地址为操作数在存储器中的地址。或转移指令等用到的指令地址。内存储器 操作数 操作码 存储器地址例:MOV R1,08000 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0操作码 0001 不用 特点是什么?简单直观,执行速度快。编程不灵活,访问

16、空间有限。2)寄存器寻址 操作码 寄存器编号例如: 0000110010001001 SUB R8,R9 0111010000110000 INC R3 指令地址码字段给出某一通用寄存器的编号(地址),且所需的操作数就在这个寄存器中,这就是寄存器寻址方式。 执行阶段不访存,只访问寄存器,执行速度快。 寄存器个数有限,可缩短指令字长。3)间接寻址方式 若寄存器中存放的是操作数在内存中所在单元的地址,这就是寄存器间接寻址方式。a.通过寄存器的间接寻址方式 Reg No寄存器间接寻址示意图 01010000 0000 0000 0111 R50 0 0 7 H 操作数000700060008FFFF

17、0000(1)寄存器寻址与寄存器间接寻址的不同点 操作数所在位置不同 指令执行的速度不同思考题(2)设计寄存器间接寻址的必要性 可有效缩短指令的长度 可方便程序处理的需要b.通过存储器的间接寻址方式 指令的地址码字段给出的内容既不是操作数,也不是操作数的地址,而是操作数(或指令)地址的地址,这被称为存储器间接寻址方式。操作数Addr1特点: 比直接寻址灵活,并且可用指令中的短地址访问大的内存空间;取操作数需二次访问主存,降低了指令执行的速度。 Addr4)基址寻址方式 在计算机中设置一个专用的基址寄存器,操作数(或指令)的地址通过基址寄存器的内容和指令中的地址码相加得到。基址寄存器加法器操作数

18、存储器 disp例:disp = 18H,BS = 5700H 则操作数地址 = 5718H 主要用于为程序或数据分配存储区,对多道程序或浮动程序很有用,解决了程序在存储器中的定位和扩大寻址空间等问题。5)变址寻址方式 操作数的地址由指定的变址寄存器(由Reg指定)的内容和指令中的地址码(Disp)相加得到。通用寄存器加法器存储器 操作数 Reg Disp例:Disp=18H,Reg=5,R5)=5700H 则操作数地址 = 5718H 便于对数组元素进行处理,此方式是计算机中常用的一种寻址方式。6)块(串)寻址方式 为了对数组运算提供更好的支持,采用该种寻址方式的指令中,要对整个数组实现某种

19、运算,只需给出数组的首地址和末地址,这条指令执行一次,可对数组的全部元素完成某种运算操作。 此方式是现代计算机中广泛采用的一种寻址方式。7)隐含寻址方式 对于双操作数指令,如果事先约定参与运算的一个操作数固定存放在某个寄存器或某个存储单元中。指令中不直接给出某个操作数的地址,被称为隐含寻址方式。ADDA操作数主存寻址特征AACC暂存ALU另一个操作数隐含在 ACC 中如 8086MUL 指令被乘数隐含在 AX(16位)或 AL(8位)中MOVS 指令源操作数的地址隐含在 SI 中目的操作数的地址隐含在 DI 中 指令字中少了一个地址字段,可缩短指令字长。8)立即寻址方式 所需的一个操作数在指令

20、的地址码部分直接给出。特点:在取指令的同时取出了操作数,不必访问主存,提高了指令的执行速度;灵活性差。 Num 操作数(或指令)的地址由程序计数器PC的内容(即当前执行指令的地址)和指令的地址码相加得到。例如:disp = 48H(PC) = 5600H则实际地址 = disp + (PC) = 5648H 主要用于转移指令,对缩短指令长度很有用。位移量可正可负,通常用补码表示。9)相对寻址方式 主存空间2000PCJMP+30现行指令JMP NEXTADD AX,BX200120012031PC在指令中不指定,是隐含的,所以可以缩短指令长度。 例题:设相对转移指令占两个字节,第一个字节是操作

21、码,其地址是 2000H,第二个字节是相对位移量,那么:(PC)=2002H(1)若第二个字节的内容为06H,则转移到的地址为_ 。 2008H 2009H 1FFCH FFBH(2)若转移到的地址为1FFDH,则第二个字节的内容为_。 05H FBH FDH FFH 堆栈是内存储器中一块按“后进先出”原则进行读写的存储区,并通过一个专用的寄存器(堆栈指针SP)给出堆栈的栈顶地址,完成数据的读写操作,故不必在指令中用操作数地址字段给堆栈地址。通常在读写操作的前后伴随有计算机自动(不是用户通过指令)修改SP内容的动作,以确保按正确的“后进先出”原则读写堆栈区。 四、堆栈结构及寻址 如何在指令中表

22、示寻址方式呢?1.用操作码区分2.在指令中划分专用的字段来说明问题:下图所指的寻址方式的名称是什么? 操作码操作数 操作码 寄存器 操作数 R 立即寻址寄存器寻址 操作码 存储器 指令 操作数 A 问题:下图所指的寻址方式的名称是什么?存储器直接寻址 操作码 操作数 A 存储器 寄存器 R 存储器 操作码 操作数 A A 问题:下图所指的寻址方式的名称是什么?存储器间接寻址寄存器间接寻址 操作码 操作数 PC 存储器 A 问题:下图所指的寻址方式是什么?相对寻址 寻址方式 有效地址EA的计算公式 寻址范围 立即寻址 直接寻址 间接寻址 变址寻址 相对寻址 解:因为OP字段长5位,所以指令能定义

23、25=32种指令。 例:某机字长为16位,存储器按字编址,访内存指令格式如下: 15 11 10 8 7 0OPMA其中OP是操作码,M定义寻址方式,A为形式地址。设PC和Rx分别为程序计数器和变址寄存器,字长16位。 (1)该指令能定义多少种指令? (2)表中各种寻址方式的寻址范围为多少? (3)写出表中各种寻址方式的有效地址EA的计算公式。EA=(PC) 1个字,即指令自身EA=A 256个字EA=(A) 64K字EA=(Rx)+A 64K字EA=(PC)+A 256个字(PC附近)练习题: 某机字长16位,内存容量为64K字,指令格式为单字长单地址,其有64条指令,问: 1)若只采用直接

24、寻址方式,指令能访问多少内存单元? 2)为了扩充指令的寻址范围,可采用直接/间接寻址方式,若只增加一位直接/间接标志,指令可寻址范围为多少?指令直接寻址的范围为多少? 一个完善的指令系统应满足如下四方面的要求: 完备性 有效性规整性兼容性 五、指令系统举例完备性是指用汇编语言编写各种程序时,指令系统直接提供的指令足够使用,而不必用软件来实现。完备性要求指令系统丰富、功能齐全、使用方便。 有效性是指利用该指令系统所编写的程序能够高效率地运行。高效率主要表现在程序占据存储空间小、执行速度快。 规整性包括指令系统的对称性、匀齐性、指令格式和数据格式的一致性。1.对称性是指在指令系统中所有的寄存器和存

25、储器单元都可同等对待,所有的指令都可使用各种寻址方式;2.匀齐性是指一种操作性质的指令可以支持各种数据类型;3.指令格式和数据格式的一致性是指指令长度和数据长度有一定的关系,以方便处理和存取。 兼容性 要能做到“向上兼容”,即低档机上运行的软件可以在高档机上运行。 要能做到“向后兼容”,即先生产机器上运行的软件可以在后生产的机器上运行。 指令系统举例 Intel8086指令系统 指令分类 指令名称 指令助记符 指令功能传送类指令传送指令 MOV Ri/M , Ri RR , RM 堆栈指令 PUSH Ri Ri入栈 输入输出指令 IN AL/AH ,端口号 端口累加器 算术与逻辑运算类指令加法

26、指令 ADD Ri , Ri R+R R 加1指令 INC Ri /M R+1R 逻辑与指令 AND Ri, Rj 指令分类 指令名称 指令助记符 指令功能 程序控制类指令无条件转移指令 JMP A APC 条件转移指令 JRNZ A Z=1 时APC 循环指令 LOOP 指令分类 指令名称 指令助记符 指令功能Pentium指令格式字节:1或2 0或1 0或1 0,1 ,2或4 0,1,2或4 OP MOD/RM SIB Disp ImmMod Reg/Op R/M SS Index Base 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 指令格式复杂;寻址方式多样;通用寄

27、存器较少;编译系统复杂;典型CISC 指令集.指令流水实现复杂;MIPS指令格式指令格式简单;寻址方式较少;通用寄存器较多;编译系统简单高效;典型RISC 指令集.容易实现流水操作; 六、指令系统的发展当前的计算机指令系统,从其构成的复杂和完备程度,或者说设计中追求的不同的目标,区分为:复杂指令系统 CISC精简指令系统 RISC精确并行指令计算技术 EPICCISC 复杂指令集计算机(Complex Instruction Set Computer)指令系统复杂庞大,指令数目一般多达500条以上。寻址方式多。指令格式多,功能强。指令字长不固定。各种指令的使用频度相差很大。各种指令的执行时间相

28、差很大。大多数采用微程序控制器。指令系统内容丰富对用户来说程序设计方便程序短小功能强大编译简单提高机器性能只能以提高处理器频率庞大的指令系统导致硬件结构更加复杂由于多采用微程序控制,使微程序更加庞大由于指令长短不一,不易使用先进的流水技术执行速度和性价比难以提高。精简指令集计算机是70年代提出的一种新的设计思想。80年代出现了第片RISC微处理器芯片。目前,大多处理机都采用了RISC体系结构RISC精简指令集计算机(Reduced Instruction Set Computer)1. 选取使用频率最高的一些简单指令,以及很有用但不复杂的指令。2. 指令长度固定,指令格式种类少,寻址方式种类少

29、。3. 只有取数/存数指令访问存储器,其余指令的操作都在寄存器之间进行。4. CPU中通用寄存器数量相当多。5. 采用组合逻辑控制器,不用或少用微程序控制。6. 采用指令流水调度,以减少程序执行时间。 RISC指令系统要求使用大量的通用寄存器,提高了处理器的速度,同时也增加了任务切换时的开销。 RISC简化了控制器的设计,但同时需要靠编译器的优化来提高性能,这对编译器的设计提出了很高的要求。 RISC不够标准,指令代码难以理解,与传统的CISC不兼容等都给RISC的设计、使用带来不少问题。 因此RISC开始引入CISC的一些优点以提高性能。与此同时,CISC也开始吸取RISC的优点,如:Pen

30、tium 就溶入了RISC技术。随着时间的推移,技术进步,要实现高性能计算机已不是传统上的CISC或RISC所能胜任的。INTEL 64位CPU主要设计目标就是克服当今CPU系统构架的瓶颈,开发一个全新的系统构架,最大程度地开发指令级并行操作。因此INTEL 提出了创新的设计理念精确并行指令计算(EPIC) 按照这种思想设计的64位CPU,INTEL称之为IA-64结构。EPIC精确并行指令计算技术硬件功能软件化:复杂的并行指令打包交给软件处理,硬件只需按序高速并行处理指令和数据。128位指令束:IA-64将指令打包处理,指令束128位长,含有3个41位指令和1个5位模板。编译程序:对编译程序

31、提出了更高要求,IA-64将指令流的优化交给了编译程序。分支判定技术:可以同时指令两条分支,分支中每条指令都有标志位。(64个分支预测寄存器)数据推测装载技术:IA-64结构允许编译器来管理控制指令的推测和使用数据的推测,从而大大降低了某些操作的执行时间。INTEL 指令系统的发展.技术 ( Multi Media eXtension ) MMX指令集针对多媒体信息处理中的特点,新增了57条多媒体指令。条数学运算指令、条数据比较指令、条压缩数据还原指令、条逻辑运算指令、条移位指令、条数据转换指令、条FP/MMX状态转换指令,和若干分支指令MMX的一个关键技术是单指令多数据技术 SIMD,即能够

32、利用一条多媒体指令同时处理多对数据,以提高处理器的性能。 例如处理声音数据的左右声道、图象数据的RGB色彩混合等。MMX采用了64位“压缩整型数据”,可将64位数据置于单个寄存器中,使处理器能够同时处理8个字节的数据,从而达到使用一条指令处理多个数据的目的。SIMD, Single Instruction Multiple Data单指令多数据新型数据结构63 56 48 40 32 24 16 8 0 字节字节字节字节字节字节字节字节8个的8位字63 48 32 16 0 1个压缩的字1个压缩的字1个压缩的字1个压缩的字4个的16位字63 32 0 1个压缩的双字数据1个压缩的双字数据2个的32位字63 0 1个压缩的4字数据1个的64位字这种数据结构具有连续的内存地址技术

温馨提示

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

评论

0/150

提交评论