计算机组成原理_秦磊华_第五章指令系统

上传人:新** 文档编号:568462391 上传时间:2024-07-24 格式:PPT 页数:79 大小:1.67MB
返回 下载 相关 举报
计算机组成原理_秦磊华_第五章指令系统_第1页
第1页 / 共79页
计算机组成原理_秦磊华_第五章指令系统_第2页
第2页 / 共79页
计算机组成原理_秦磊华_第五章指令系统_第3页
第3页 / 共79页
计算机组成原理_秦磊华_第五章指令系统_第4页
第4页 / 共79页
计算机组成原理_秦磊华_第五章指令系统_第5页
第5页 / 共79页
点击查看更多>>
资源描述

《计算机组成原理_秦磊华_第五章指令系统》由会员分享,可在线阅读,更多相关《计算机组成原理_秦磊华_第五章指令系统(79页珍藏版)》请在金锄头文库上搜索。

1、第五章、指令系统本章主要内容o指令系统o指令格式o寻址方式o指令格式设计及优化o典型指令系统oRISC 与 CISC 2传统机器级计算机系统的层次结构5.高级语言级4.汇编语言级3.操作系统级2.一般机器级1.微程序设计级3指令系统基本概念o机器指令(指令)n计算机能直接识别、执行的某种操作命令。o指令系统(指令集)n 一台计算机中所有机器指令的集合。n机器硬件设计的依据,也是软件设计的基础。n硬件和软件间的界面,直接影响计算机系统性能4系列计算机o基本指令系统相同,基本系统结构相同的计算机。oIBM,PDP-11,VAX-11,Intel-x86, Pentiumo系列计算机主要是解决软件兼

2、容的问题。新计算机中必须包含老计算机的指令系统,保证软件向上兼容,保护用户投资。5计算机指令系统特性o完备性:指令丰富,功能齐全,使用方便。o有效性:程序占空间小,执行速度快。o规整性:n对称性、匀齐性:n指令格式和数据格式的一 致性:o兼容性:系列机软件向上兼容6 指令格式o表示一条指令的机器字,称为指令字,简称指令。o指令格式:用二进制代码表示指令的结构形式。操作码字段地址码字段7操作码(OP)与地址码(AC)o指令系统中每一条指令对应一个操作码o操作码的长度取决于指令系统的规模 nLOP=log2n o定长指令、变长指令o地址码包括被操作数,操作数,操作结果 操作码字段地址码字段8按操作

3、数个数分类OPA1A2A3 三地址指令 OPA1A2 二地址指令 OPA1 一地址指令 OP零地址指令 (A1)OP(A2) (A3) (A1)OP(A2) (A1) (AC)OP(A) AC如停机,空操作,堆栈指令9地址码地址码(1) 四地址四地址(2) 三地址三地址OP A1 A2 A3 A48 6 6 6 6A1 第一操作数地址第一操作数地址A2 第二操作数地址第二操作数地址A3 结果的地址结果的地址A4 下一条指令地址下一条指令地址若若 PC 代替代替 A4(A1) OP (A2) A38 8 8 8 OP A1 A2 A3(A1) OP (A2) A34 次访存次访存4 次访存次访存

4、寻址范围寻址范围 26 = 64寻址范围寻址范围 28 = 256若若 A3 用用 A1 或或 A2 代替代替设指令字长为设指令字长为 32 位位操作码固定为操作码固定为 8 位位10(3) 二地址二地址OP A1 A28 12 12(A1) OP (A2) A1(A1) OP (A2) A2或或4 次访存次访存若若ACC 代替代替 A1(或(或A2)若结果存于若结果存于 ACC (4) 一地址一地址(5) 零地址零地址OP A18 24无地址码无地址码(ACC) OP (A1) ACC2 次访存次访存寻址范围寻址范围 212 = 4 K寻址范围寻址范围 224 = 16 M 3次访存次访存1

5、1小结小结 当用一些硬件资源代替指令字中的地址码字段后当用一些硬件资源代替指令字中的地址码字段后 当指令的地址字段为寄存器时当指令的地址字段为寄存器时 可扩大指令操作数的寻址范围可扩大指令操作数的寻址范围 可缩短指令字长可缩短指令字长 可减少访存次数可减少访存次数 三地址三地址 OP R1, R2, R3 二地址二地址 OP R1, R2 一地址一地址 OP R1 指令执行阶段不访存指令执行阶段不访存 可缩短指令字长可缩短指令字长12指令字长指令字长指令字长决定于指令字长决定于操作码的长度操作码的长度指令字长指令字长 = 存储字长存储字长2. 指令字长指令字长 可变可变操作数地址的长度操作数地

6、址的长度操作数地址的个数操作数地址的个数1. 指令字长指令字长 固定固定按字节的倍数变化按字节的倍数变化指令中包含二进制代码的位数13指令字长o与机器字的长度有关: 单字长,双字长,半字长。o采用多字长指令的目的n解决寻址较大存储空间的问题n取指令要多次访内,影响速度,占用存储空间较大。o等长指令: 结构简单,控制线路简单。o变长指令: 结构灵活,充分利用指令长度,控制复杂14寻址方式o寻找指令或操作数有效地址的方式n指令寻址o顺序寻址o跳跃寻址n操作数寻址15顺序寻址o程序的指令序列在主存顺序存放。程序执行时从第一条指令开始,逐条取出并逐条执行,这种程序的顺序执行过程,称为顺序寻址方式。o为

7、了达到顺序寻址的目的,CPU中必须有一个程序计数器(PC)对指令的顺序号进行计数。PC中开始时存放程序的首地址,每执行一条指令,PC 加1,以指出下条指令的地址,直到程序结束。oPC存放下一条指令的地址16顺序寻址过程100Inc AXadd ax,bxPCPC +1+1100100 101101 内存内存10117跳跃寻址o当程序中出现分支或循环时,就会改变程序的执行顺序。此时对指令寻址就要采取跳跃寻址方式。o所谓跳跃,就是指下条指令的地址不是通过程序计数器PC当前值获得的,而是由指令本身给出。o跳跃的处理方式是重新修改PC的内容。然后进入取指令阶段。18跳跃寻址过程IR100JMP 103

8、MOV AX,BXPCPC内存内存100100 101 101 102102 103 103 +1+1JMP 103指令寄存器指令寄存器IRIRMOV AX,BX10319操作数的寻址方式o形成操作数有效地址的方法。 n单地址指令地址码的构成: X , I ,Dn实际有效地址为E, 实际操作数Sn S= (E) OPXID操作码操作码变址位变址位形式地址形式地址间址位间址位20寻址方式分类o立即寻址o直接寻址o间接寻址o寄存器寻址、o寄存器间接寻址o相对寻址o变址寻址o复合寻址21数据寻址数据寻址 形式地址形式地址 指令字中的地址指令字中的地址 有效地址有效地址 操作数的真实地址操作数的真实地

9、址 约定约定 指令字长指令字长 = 机器字长机器字长1. 立即寻址立即寻址 指令执行阶段不访存指令执行阶段不访存 A 的位数限制了立即数的范围的位数限制了立即数的范围形式地址形式地址 A操作码操作码寻址特征寻址特征OP # A立即寻址特征立即寻址特征立即数立即数 可正可负可正可负 补码补码形式地址形式地址 A 就是操作数就是操作数222. 直接寻址直接寻址EA = A操作数操作数主存主存寻址特征寻址特征LDAAAACC 执行阶段访问一次存储器执行阶段访问一次存储器 A 的位数决定了该指令操作数的寻址范围的位数决定了该指令操作数的寻址范围 操作数的地址不易修改(必须修改操作数的地址不易修改(必须

10、修改A)有效地址由形式地址直接给出有效地址由形式地址直接给出233. 隐含寻址隐含寻址操作数地址隐含在操作码中操作数地址隐含在操作码中ADDA操作数操作数主存主存寻址特征寻址特征AACC暂存暂存ALU另一个操作数另一个操作数隐含在隐含在 ACC 中中如如 8086MUL 指令指令被乘数隐含在被乘数隐含在 AX(16位)或位)或 AL(8位)中位)中MOVS 指令指令源操作数的地址隐含在源操作数的地址隐含在 SI 中中目的操作数的地址隐含在目的操作数的地址隐含在 DI 中中 指令字中少了一个地址字段,可缩短指令字长指令字中少了一个地址字段,可缩短指令字长244. 间接寻址间接寻址EA =(A)

11、有效地址由形式地址间接提供有效地址由形式地址间接提供OPA寻址特征寻址特征AEA主存主存EAA1EA A1主存主存 EA10 执行指令阶段执行指令阶段 2 次访存次访存 可扩大寻址范围可扩大寻址范围 便于编制程序便于编制程序OPA寻址特征寻址特征A一次间址一次间址多次间址多次间址操作数操作数操作数操作数多次访存多次访存25 子程序子程序主程序主程序8081201202调用子程序调用子程序调用子程序调用子程序间接寻址编程举例间接寻址编程举例(A) = 81(A) = 202 间址特征间址特征JMP A 265. 寄存器寻址寄存器寻址EA = Ri 执行阶段不访存,只访问寄存器,执行速度快执行阶段

12、不访存,只访问寄存器,执行速度快OPRi寻址特征寻址特征 寄存器个数有限,可缩短指令字长寄存器个数有限,可缩短指令字长操作数操作数R0RiRn寄存器寄存器有效地址即为寄存器编号有效地址即为寄存器编号27EA = ( Ri )6. 寄存器间接寻址寄存器间接寻址 有效地址在寄存器中,有效地址在寄存器中, 操作数在存储器中,执行阶段访存操作数在存储器中,执行阶段访存操作数操作数主存主存OPRi寻址特征寻址特征 便于编制循环程序便于编制循环程序地址地址R0RiRn寄存器寄存器有效地址在寄存器中有效地址在寄存器中287. 基址寻址基址寻址(1) 采用专用寄存器作基址寄存器采用专用寄存器作基址寄存器EA

13、= ( BR ) + ABR 为基址寄存器为基址寄存器OPA操作数操作数主存主存寻址特征寻址特征ALUBR 可扩大寻址范围可扩大寻址范围 有利于多道程序有利于多道程序 BR 内容由操作系统或管理程序确定内容由操作系统或管理程序确定 在程序的执行过程中在程序的执行过程中 BR 内容不变,形式地址内容不变,形式地址 A 可变可变29(2) 采用通用寄存器作基址寄存器采用通用寄存器作基址寄存器操作数操作数主存主存寻址特征寻址特征ALUOPR0AR0 作基址寄存器作基址寄存器 由用户指定哪个通用寄存器作为基址寄存器由用户指定哪个通用寄存器作为基址寄存器通用寄存器通用寄存器R0Rn-1R1 基址寄存器的

14、内容由操作系统确定基址寄存器的内容由操作系统确定 在程序的执行过程中在程序的执行过程中 R0 内容不变,形式地址内容不变,形式地址 A 可变可变308. 变址寻址变址寻址EA = ( IX ) +AOPA操作数操作数主存主存寻址特征寻址特征ALUIX 可扩大寻址范围可扩大寻址范围 便于处理数组问题便于处理数组问题 IX 的内容由用户给定的内容由用户给定 IX 为变址寄存器(专用)为变址寄存器(专用) 在程序的执行过程中在程序的执行过程中 IX 内容可变,形式地址内容可变,形式地址 A 不变不变通用寄存器也可以作为变址寄存器通用寄存器也可以作为变址寄存器31例例 设数据块首地址为设数据块首地址为

15、 D,求求 N 个数的平均值个数的平均值直接寻址直接寻址变址寻址变址寻址LDA DADD D + 1ADD D + 2ADD D + ( N -1 )DIV # NSTA ANSLDA # 0LDX # 0INXCPX # NBNE MDIV # NSTA ANS共共 N + 2 条指令条指令共共 8 条指令条指令ADD X, DMX 为变址寄存器为变址寄存器D 为形式地址为形式地址(X) 和和 #N 比较比较(X) +1 X结果不为零则转结果不为零则转329. 相对寻址相对寻址 EA = ( PC ) + AA 是相对于当前指令的位移量(可正可负,补码)是相对于当前指令的位移量(可正可负,补

16、码) A 的位数决定操作数的寻址范围的位数决定操作数的寻址范围 程序浮动程序浮动 广泛用于转移指令广泛用于转移指令操作数操作数寻址特征寻址特征ALUOPA相对距离相对距离 A1000PC 主存主存1000AOP33 (1) 相对寻址举例相对寻址举例M 随程序所在存储空间的位置不同而不同随程序所在存储空间的位置不同而不同EA = ( M+3 ) 3 = M 3*LDA # 0LDX # 0ADD X, DINXCPX # NBNE MDIV # NSTA ANSMM+1M+2M+3而指令而指令 BNE 与与 指令指令 ADD X, D 相对位移量不变相对位移量不变 3* 指令指令 BNE操作数的

17、有效地址为操作数的有效地址为 3* 相对寻址特征相对寻址特征*34(2) 按字节寻址的相对寻址举例按字节寻址的相对寻址举例OP位移量位移量2000 H2008 H8JMP * + 8OP06 H2000 H2008 H8设设 当前指令地址当前指令地址 PC = 2000H转移后的目的地址为转移后的目的地址为 2008H因为因为 取出取出 JMP * + 8 后后 PC = 2002H二字节指令二字节指令故故 JMP * + 8 指令指令 的第二字节为的第二字节为 2008H - 2002H = 06H3510 堆栈寻址方式堆栈-一组能存取数据的暂时存储单元。寄存器堆栈一组专门的寄存器,一个R保

18、存一个数据。数据的传送在栈顶和通用寄存器之间进行。 快速:在CPU内部实现串行:进栈和出栈涉及到栈内所有其它数据的移动;破坏性读出:读数据的同时也离开了堆栈;栈容量有限:取决于CPU内堆栈专用寄存器的数量;栈顶不动,数据移动。36堆栈寻址方式AXAXAXBXBXBXAXAXCXCXCXBXBXAXAX PUSH AXPUSH AX PUSH BXPUSH BX PUSH CXPUSH CXCXBXBXAXAX POP CXPOP CX堆栈顶37存储器堆栈用一部分主存空间作堆栈称为存储器堆栈。堆栈的数目、长度可随意指定 SP-堆栈指示器(栈指针), CPU中一个专门寄存器,SP内容是栈顶单元地址

19、。改变SP内容即可移动栈顶的位置。堆栈操作期间,堆栈中数据不动,栈顶移动非破坏性读出38进栈进栈-累加器中的数送堆栈保存.(AC) 堆栈MSP 堆栈指针(sp) 1 spaPUSH aPUSH aPUSH bPUSH bPUSH cPUSH c100999897SPabbACAC39出栈p出栈-将堆栈中的数取出送累加器p堆栈指针(sp) 1 sp (堆栈MSP) AC100999897SPabbACACa40复合寻址(Composite Addressing)o将间址,相对,变址,基值等寻址方式组合.o变址间址 先变址,后间址. E=(R)+D)30005000操作数OPX D10031004

20、1段寻址oIntel 8086/8088微机中,ALU16位运算,但其寻址范围可到1M,即地址有20位。o实质是基值寻址。4位16位逻辑地址16位段寄存器20位物理地址ALU42指令系统类型指令系统类型1. 数据传送数据传送源源目的目的寄存器寄存器寄存器寄存器寄存器寄存器寄存器寄存器存储器存储器存储器存储器存储器存储器存储器存储器置置“1”,清,清“0”2. 算术逻辑操作算术逻辑操作加、减、乘、除、增加、减、乘、除、增 1、减、减 1、求补、浮点运算、十进制运算、求补、浮点运算、十进制运算与、或、非、异或、位操作、位测试、位清除、位求反与、或、非、异或、位操作、位测试、位清除、位求反如如 80

21、86MOVESTORELOADMOVEPUSHPOP例如例如MOVEMOVEADD SUB MUL DIV INC DEC CMP NEG AAA AAS AAM AAD AND OR NOT XOR TEST433. 移位操作移位操作算术移位算术移位4. 转移转移(1) 无条件转移无条件转移 JMP(2) 条件转移条件转移结果为零转结果为零转 (Z = 1) JZ结果溢出转结果溢出转 (O = 1)JO结果有进位转(结果有进位转(C = 1)JC跳过一条指令跳过一条指令 SKP循环移位(带进位和不带进位)循环移位(带进位和不带进位)如如300305306307SKP DZ D = 0 则跳则

22、跳逻辑移位逻辑移位完成触发器完成触发器44(3) 调用和返回调用和返回CALL SUB1.CALL SUB2.CALL SUB2RETURNRETURN主程序主程序地址地址200021002101子程序子程序SUB1240025002501256025612700主存空间分配主存空间分配程序执行流程程序执行流程子程序子程序SUB2.45IN AX, nOUT DX, ALOUT n, AXOUT DX, AX(4) 陷阱(陷阱(Trap)与陷阱指令与陷阱指令意外事故的中断意外事故的中断 设置供用户使用的陷阱指令设置供用户使用的陷阱指令如如 8086 INT TYPE 软中断软中断提供给用户使用

23、的陷阱指令,完成系统调用提供给用户使用的陷阱指令,完成系统调用5. 输入输出输入输出 一般不提供给用户直接使用一般不提供给用户直接使用 在出现事故时,由在出现事故时,由 CPU 自动产生并执行(隐指令)自动产生并执行(隐指令)IN AL, DXIN AX, DX入入 端口地址端口地址 CPU 的寄存器的寄存器出出 CPU 的寄存器的寄存器 端口地址端口地址如如如如IN AL, nOUT n, AL468088/8086典型指令o数据传送类n取数 MOV AX,TEMPn存数 MOV TEMP,AXn传送 MOV AX,CXo算术运算类n定点, nADD,ADC,INC,SUB,DEC MUL,

24、DIV等n浮点, ,求反,求补 NEG,比较o逻辑运算类nNOT,AND,OR,XOR,TEST478088/8086典型指令o程序控制类n无条件转移 JMP 条件转移 C,Z,N,P,Vn转子程序 JSR 子程序返回 RET 中断返回 IRETo输入/输出类nIN AX,n OUT n, AXo字符串处理 字符串传送、转换、比较、查找o特权指令: 系统资源的分配和管理o其他类n标志操作:CLC(clear carry flag)nCLI (clear interrupt elable flag)nHLT,WAIT,ESC,LOCK48指令格式设计及优化 指令系统是程序设计人员所能看到的计算机

25、的主要属性,它在很大程度上决定了整个计算机系统的基本功能。设计一套好的指令格式,不仅程序设计人员使用起来很方便,硬件实现起来也比较容易,而且能够节省大量的程序存储空间。49指令格式设计o指令编码格式的设计(定长指令格式、变长指令格式、混合编码指令格式)o操作码的设计(操作码采用定长还是变长结构,变长还要研究其实现方法)o地址码的设计(提供有效的操作数,还要满足指令系统的有效性和规整性要求)o寻址方式的设计50指令格式的优化 指令格式的优化是指如何用最短的二进制位数表示指令的操作码信息和地址码信息,使指令的平均字长最短,同时便于译码。另外还不应该降低指令的执行速度。 方法:(1)操作码优化 (2

26、)地址码优化51操作码的优化表示操作码的优化表示操作码的表示方法:操作码的表示方法:操作码的表示方法:操作码的表示方法:1)固定长度操作码。固定长度操作码。2)Huffman编码法。编码法。3)扩展编码扩展编码法。法。4)地址码扩展的操作码优化地址码扩展的操作码优化一、一、一、一、固定长度操作码固定长度操作码采用等长操作码。采用等长操作码。 若指令系统共有若指令系统共有N种不同功能的指令,则指令系统中的种不同功能的指令,则指令系统中的所有指令的操作码长度固定为所有指令的操作码长度固定为log2N位。位。特点:特点:特点:特点:1)1)长度规整,有利于硬件设计,减少指令译码时间。长度规整,有利于

27、硬件设计,减少指令译码时间。长度规整,有利于硬件设计,减少指令译码时间。长度规整,有利于硬件设计,减少指令译码时间。2)2)信息冗余。信息冗余。信息冗余。信息冗余。52例:例:假设一台模型计算机共有假设一台模型计算机共有7种不同的操作码,已知各种不同的操作码,已知各种操作码在程序中出现的概率如下表,利用固定长度编码种操作码在程序中出现的概率如下表,利用固定长度编码法进行操作码编码法进行操作码编码。指令指令I1概率概率0.45I20.30I30.15I40.05I50.03I60.01I70.01解:解:由于由于N=7 因此,指令操作码固定长度为因此,指令操作码固定长度为log2N=log27=

28、353指令序号指令序号概率概率编码编码操作码长度操作码长度I10.450003位位I20.300013位位I30.150103位位I40.050113位位I50.031003位位I60.011013位位I70.011103位位编码结果:编码结果:编码结果:编码结果:54二、二、二、二、Huffman编码法(编码法(最小概率合并法最小概率合并法)Huffman压压缩缩概概念念(最最佳佳编编码码定定理理):当用n个长度不等的代码分别代表n种发生概率不等的事件时,按照短代码给高概率事件、把长代码给低概率事件的原则分配,可使平均码长达到最低。 Huffman编码方法编码方法 这种编码方法由两个过程组成

29、。频频度度合合并并:将全部n个事件(在此即为n条指令)的频度值排序,选取其中最小的2个频度合并,然后将剩下的n-1个频度再次排序,再合并最小的2个频度,如此重复,直至剩下1个频度为止。记录所有的合并关系,形成一棵二叉树 Huffman树,所有原始频度值充当树叶,而最后剩下的总频度1为树根;码码元元分分配配:从树根开始,对每个中间结点的左右2个分支边各赋予一位代码“0”和“1”(“0”在哪一侧不限)。读出从根结点到任一片树叶的路径上依次出现的代码位就排成了这个事件(即指令)的完整编码。由于频度高的事件较晚被合并,它的编码位数也就较少,符合Huffman压缩原则。55 上面所说的频度值频度值就是各

30、事件实际出现次数的百分比,它是理论出现概率的近似值。 例:例:假设一台模型计算机共有7种不同的操作码,已知各种操作码在程序中出现的概率如下表,利用Huffman编码法进行操作码编码。指令指令I1概率概率0.45I20.30I30.15I40.05I50.03I60.01I70.0156Huffman树生成步骤:树生成步骤:q把所有指令按照操作码在程序中出现的概率,自左向右从排列好。q选取两个概率最小的结点合并成一个概率值是二者之和的新结点,并把这个新结点与其它还没有合并的结点一起形成新结点集合。q在新结点集合中选取两个概率最小的结点进行合并,如此继续进行下去,直至全部结点合并完毕。q最后得到的

31、根结点的概率值为1。q每个结点都有两个分支,分别用一位代码“0” 和“1”表示。注意:注意: 对于同一个频度分布,应用哈夫曼算法可能生成不同的哈夫曼树,因此,得到的哈夫曼编码并不唯一,但平均码长唯一。570.450.300.150.050.030.010.011.000.550.250.100.050.02010101010101I1 I2 I3 I4 I5 I6 I7Huffman编码树生成过程编码树生成过程58指令序号指令序号概率概率Huffman编码法编码法操作码长度操作码长度I10.4501位位I20.30102位位I30.151103位位I40.0511104位位I50.031111

32、05位位I60.011111106位位I70.011111116位位编码结果:编码结果:编码结果:编码结果:59编码方法性能指标编码方法性能指标信息量:信息量:信息量:信息量:根据信息论的基本知识,在n种可能发生的事件集合中,报告第i种事件发生的消息中包含的信息量为: 其中Pi是第i种事件发生的先验概率,a是编码基值。信息量的单位是表示位数(最少所需位数)。 这个定义式表明事件的发生概率越低,关于它的消息中的信息量越大。熵熵熵熵(entropyentropy) 平平平平均均均均信信信信息息息息量量量量:一个消息源对n种事件发布的消息的信息量平均值,记为:60平均码长:平均码长:平均码长:平均码

33、长:各事件编码长度的数学期望。信息冗余量:信息冗余量:信息冗余量:信息冗余量:表明消息编码中“无用成分”所占的百分比。 从减少存储与传输量的角度看,编码方法的平均码长越短越好。但是平均码长不可能无限制缩短,它的下限就是熵(即R=0时)。如果短于熵就一定会丢失有用信息(即混淆不同指令),这是不允许的。61例:例:假设一台模型计算机共有7种不同的操作码,如果采用固定长操作码需要3位。已知各种操作码在程序中出现的概率如下表,计算采用Huffman编码法的操作码平均长度,并计算固定长操作码和Huffman操作码的信息冗余量。解:解: Huffman编码结果如:指令序号指令序号概率概率Huffman编码

34、法编码法操作码长度操作码长度I10.4501位位I20.30102位位I30.151103位位I40.0511104位位I50.03111105位位I60.011111106位位I70.011111116位位62采用Huffman编码法的操作码平均长度:0.4510.3020.1530.0540.0350.0160.0161.97(位)最优Huffman编码法的操作码平均长度计算公式:所以,采用最优Huffman编码法的操作码平均长度为:0.451.1520.301.7370.152.7370.054.3220.035.0590.016.6440.016.6441.95(位)采用固定长度编码信

35、息冗余量:63采用Huffman编码法信息冗余量:与3位定长操作码的冗余量35相比要小得多。HuffmanHuffman操作码的主要缺点:操作码的主要缺点:操作码的主要缺点:操作码的主要缺点:1)操作码长度很不规整,硬件译码困难2)与地址码共同组成固定长的指令比较困难64(3)基于扩展编码的操作码优化扩展编码的最终目的是使操作码在冗余量尽量小的基础上,努力使操作码规整。分等长扩展法和不等长扩展法。不等长扩展法每次扩展位数不同,等长扩展法每次扩展位数相同,如4-8-12法,每次加长4位。但这并不能说明具体编码方法65例:例:假设一台模型计算机共有假设一台模型计算机共有7种不同的操作码。已知各种操

36、作种不同的操作码。已知各种操作码在程序中出现的概率如下表,如果采用码在程序中出现的概率如下表,如果采用1-2-3-5和和2-4扩展编扩展编码法,计算操作码平均长度和信息冗余量。码法,计算操作码平均长度和信息冗余量。指令指令I1概率概率0.45I20.30I30.15I40.05I50.03I60.01I70.01解:解:采用采用1-2-3-5扩展编码法操作码平均长度:扩展编码法操作码平均长度:H=0.4510.3020.153(0.050.030.010.01)5=2.00信息冗余量:信息冗余量:采用采用2-4扩展编码法操作码平均长度:扩展编码法操作码平均长度:H=(0.45+0.30+0.1

37、5)2+(0.05+0.03+0.01+0.01)4=2.20信息冗余量:信息冗余量:66序号概率1-2-3-5扩展编码I10.450I20.3010I30.15110I40.0511100I50.0311101I60.0111110I70.01111112-4等长扩展编码0001101100110111101111平均长度2.02.2信息冗余量2.5%11.4%7 7条指令的操作码扩展编码法条指令的操作码扩展编码法67(4) 基于地址码扩展的操作码优化基于地址码扩展的操作码优化操作码的位数随地址数的减少而增加操作码的位数随地址数的减少而增加OP A1 A2 A3000000011110A1A

38、1A1A2A2A2A3A3A3A2A2A2A3A3A3111111111111000000011110111111111111111111111111111111111111000000011111111111111111111111111111A3A3A30000000111104 位操作码位操作码8 位操作码位操作码12 位操作码位操作码16 位操作码位操作码最多最多15条三地址指令条三地址指令最多最多15条二地址指令条二地址指令最多最多15条一地址指令条一地址指令16条零地址指令条零地址指令68(4) 扩展操作码技术扩展操作码技术操作码的位数随地址数的减少而增加操作码的位数随地址数的减少

39、而增加OP A1 A2 A3000000011110A1A1A1A2A2A2A3A3A3A2A2A2A3A3A3111111111111000000011110111111111111111111111111111111111111000000011111111111111111111111111111A3A3A30000000111104 位操作码位操作码8 位操作码位操作码12 位操作码位操作码16 位操作码位操作码三地址指令操作码三地址指令操作码每减少一种可多构成每减少一种可多构成24 种二地址指令种二地址指令二地址指令操作码二地址指令操作码每减少一种可多构成每减少一种可多构成24 种一

40、地址指令种一地址指令69地址码优化方法:u 用一个较短的地址码表示一个比较大的逻辑空间,这样既能满足寻址的要求,又不增加指令的长度。u 采用诸如基址、变址、相对寻址、寄存器寻址、寄存器间接寻址等多种寻址方式,以缩短需要在指令中表示的地址码长度,但不减少地址码寻址空间的大小70指令系统发展方向oCISC-复杂指令系统计算机 nComplex Instruction System Computern指令数量多,指令功能,复杂的计算机。o RISC-精简指令系统计算机nReduced Instruction System Computern指令数量少,指令功能单一的计算机。71CISC 的主要特征的

41、主要特征 系统指令系统指令 复杂庞大复杂庞大,各种指令使用频度相差大,各种指令使用频度相差大 指令指令 长度不固定长度不固定、指令格式种类多指令格式种类多、寻址方式多寻址方式多 访存访存 指令指令 不受限制不受限制 大大多数指令需要多数指令需要 多个时钟周期多个时钟周期 执行完毕执行完毕 采用采用 微程序微程序 控制器控制器 CPU 中中设有有 专用寄存器专用寄存器 72精减指令系统(RISC)o选取使用频率最高的一些简单指令,指令条数少;o寻址方式简单o指令长度固定,指令格式简单oCPU设置大量寄存器o只有存/取数指令才能访问存储器,o其余指令的操作都在寄存器之间进行.o每一个机器周期完成一

42、条机器指令。 73CISC与RISC的比较 特 征CISCRISCIBM370/168VAX11/780Intel80486SPARCMIPSR4000开发年份19731978198919871991指令数量/条2083032356994指令长度/B262511144寻址方式4221122通用寄存器数/个161684052032控制存储器大小/Kb420480246Cache大小/KB646483212874典型RISC机指令系统机器型号指令数寻址方式指令格式通用寄存器数RISC-I312278RISC-II3922138MIPS553416SPARC7543120-136MIPSR30009

43、13332i86065343275例1. 字长16位,主存64K,指令单字长单地址,80条指令。寻址方式有直接、间接、相对、变址。请设计指令格式。 解: 80条 log80=7 采用7位操作码 寻址方式4种 采用2位 PC为16位 变址寄存器16位 相对寻址 E=(PC)+D 变址寻址 E=(R)+DOPD 15 9 8 7 6 020050011002001005008001002002100OPXD=100PC=1000R变变=2000 寻址方式寻址方式X操作数操作数立即立即0100直接直接1200间接间接2500相对相对3100变址变址4200变址间址变址间址5500有效地址有效地址ES=DE=D=100E=(D)=200E=PC+D=1100E=(R)+D=2100E=(R)+D)=2002设某机的指令格式、有关寄存器和主存内容如下,设某机的指令格式、有关寄存器和主存内容如下,X为寻址方式,为寻址方式,D为形式地址,请在下表中填入有效地址为形式地址,请在下表中填入有效地址E及操作数的值及操作数的值?本章重点内容o指令系统基本概念o指令基本格式o指令系统寻址方式78作业o5.3o5.5o5.6o5.779

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 文学/艺术/历史 > 人文/社科

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