




已阅读5页,还剩38页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第五章 指令系统(1),概念: 指令:要求计算机执行某种操作的命令 一台计算机,其所有机器指令的集合构成机器的指令系统 CISCComplex Instruction Set Computer,复杂指令系统计算机 RISC-Reduced Instruction Set Computer,精简指令系统计算机 RISC计算机提出的依据 RISC计算机的主要特点: 指令系统简单,均为单字长指令,只采用直接寻址和变址寻址等几种简单的寻址方式; 除取数和存数指令外,其它指令的操作均在寄存器之间进行,因此指令执行速度快; 指令系统中只包含使用频度高的简单指令,对于转移类指令均采用延时转移方式。,第五章 指令系统(2),一、指令格式: 机器指令由操作码和地址码构成,格式如下:,1、操作码 表明本条指令要求计算机完成的操作 早期的计算机采用等长操作码,译码方便,但冗余大 现代计算机多采用不等长操作码,对缩短操作码的平均长度有好处 2、地址码 给出参加本次运算的操作数和运算结果所在的地址 根据地址码的个数,指令可分为三地址指令、二地址指令、单地址指令、零地址指令等四种格式,第五章 指令系统(3),说明: 三地址指令包含三个地址,其基本操作是 : (D1) OP (D2) D3 二地址指令包含两个地址,其基本操作是:(D1) OP (D2) D1或D2 单地址指令中只包含一个地址,可有两种情况: (1) 本指令为双操作数指令,但约定一个操作数固定存放在累加器(AC)中,其基本操作是: (AC) OP (D) AC (2) 本指令为单操作数指令,例如将某个地址D中的内容加1或减1等。,第五章 指令系统(4),零地址指令主要完成某些控制功能,若HLT,NOP,CLA等 在上述指令格式中, D1、 D2、 D3可以是存储器中的存储单元地址,也可以是CPU中的通用寄存器或直接参加运算的立即数。,怎么减少指令的长度?,第五章 指令系统(5),二、指令格式的优化 指令格式的优化是在不改变指令功能、不减少指令数量的前提下,如何尽可能缩短指令字的长度。 指令由操作码和地址码构成,缩短地址码的长度可从两个方面入手: 减少地址码的个数,尽可能不用三地址指令,对于常用指令,尽可能用单地址; 参加运算的操作数暂存在CPU的内部寄存器中,使每个地址码的长度有效缩短。这正是许多机器指令系统中不允许两个操作数均在存储器中的原因。 地址码的优化比较简单、直观。 指令格式的优化主要指的是操作码的优化,其目的是缩短操作码的平均长度。,第五章 指令系统(6),1、哈夫曼(Huffman)压缩的概念 基本思想 如何压缩具有一定冗余量代码的长度。 以BCD码的代码压缩为例 “0099”共100个十进制数,在计算机中可用BCD码(XXXX,XXXX)来表示而8位二进制数有256种不同的编码,可见,BCD码具有很多的冗余码点。是否可以压缩其码长,以减少冗余码点呢? 采用Huffman压缩法,将8位二进制数分别用a,b,c,d,e,f,g,h来表示,它所能表示的十进制数如下所示:,a b c d e f g h 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 1 1 0 0 1 1 0 1 0 0 0 1 0 0 0 1 0 1 0 1 0 1 0 1 1 0 0 1 1 0 0 1 1 1 0 1 1 1 1 0 0 0 1 0 0 0 1 0 0 1 1 0 0 1,从表中可以看出,BCD码中,各位二进制数的出现概率是不同的。在a,b,c,d中,a=0的概率为80,而a=1的概率为20;同样在e,f,g,h中,e=0的概率为80%,e=1的概率为20。则: a,e=0,0的概率为80%80%=64% a,e=0,1的概率为80%20%=16% a,e=1,0的概率为20%80%=16% a,e=1,1的概率为20%20%=4%,第五章 指令系统(7),若将出现概率高的组合用较少的二进制位表示,将出现概率低的组合用较多的二进制位来表示,则上例的四种组合可表示成: a,e=0,0用“0”表示 a,e=0,1用“11”表示 a,e=1,0用“100”表示 a,e=1,1用“101”表示 从表面上看,表示这四种状态的二进制尾数变长了,然而从概率的角度来计算其平均长度则缩短了,其平均长度为: Pi.Li1642163163141.56(位)2(位) 结论: 在概率密度分布不均匀的代码系统中,若对出现概率高的事件用较短的代码来表示,而对出现概率低的事件则用较长的代码来表示,那么代码的平均长度可有效缩短,这就是Huffman压缩法的基本结论。,第五章 指令系统(8),2、指令操作码的压缩 任何计算机系统中,各条指令的使用频度是不同的。因此利用Huffman压缩法,完全有可能压缩操作码的平均长度。 假定某台计算机的机器指令系统只包含7条指令,各条指令的使用频度如下表。若采用等长操作码,则操作码需要3位长。,根据信息论的一个最基本的公式,可计算信息源所包含的平均信息量,即“信息熵(Entropy)”:,n H Pilog2Pi i=1,由于指令操作码是二进制代码,所以操作码所包含的平均信息量为:,n n H Pilog2Pi Pilog2(1/Pi) i=1 i=1,第五章 指令系统(9),在上述指令系统中,操作码的平均信息量为: H0.45log2(100/45)+0.30log2(100/30)+0.15log2(100/15)+0.05log2(100/5) +0.03log2(100/3)+0.01log2(100/1)+0.01log2(100/1)=1.95 说明上述7条指令的操作码并不需要3位长,只需1.95位就够了,因此等长的3位操作码所具有的信息冗余量达到: (31.95)/3=35% 这说明完全有可能对操作码进行压缩,使其平均长度尽可能接近1.95位。 采用Huffman压缩法对操作码进行压缩的方法: 首先将最小的尽可能接近的两个概率合并为一个概率和; 然后继续与别的相近的概率合并为新的概率和; 合并过程一直进行到概率和等于“1”为止; 经上述过程,即可得到平均长度最短的操作码编码方案。 具体的压缩过程可以不完全相同,两种可选的压缩方案如下:,方案A:,P(I1)=0.45,P(I2)=0.30,P(I3)=0.15,P(I4)=0.05,P(I5)=0.03,P(I6)=0.01,P(I7)=0.01,0.02,0.05,0.10,0.25,0.55,1.00,0,1,0,0,0,0,0,1,1,1,1,1,方案B:,P(I1)=0.45,P(I2)=0.30,P(I3)=0.15,P(I4)=0.05,P(I5)=0.03,P(I6)=0.01,P(I7)=0.01,0.02,0.10,0.25,0.55,1.00,0,0,0,0,0,1,1,1,1,1,0.08,0,1,第五章 指令系统(13),两种方案的操作码的平均长度为: 方案A: LPi.Li0.4510.3020.1530.0540.0350.0160.0161.97(位) 方案B: L0.4510.3020.153(0.050.030.010.01)52(位) 说明上述2种方案都压缩了操作码的平均长度,且非常接近理论值1.95。 方案A的信息冗余量为: (1.97-1.95)/1.97=1.02%35% 方案B的信息冗余量为: (2-1.95)/2=2.5%35% 单纯从信息的冗余量来看,方案A由于方案B,但方案B的操作码长度的种类少于方案A,因此从操作码的译码角度来说,方案B由于方案A。 完全采用Huffman压缩法来压缩操作码的长度,会使得操作码长度种类很多,给操作码的译码带来不便。实际应用中,可采用简单的折衷方案。,第五章 指令系统(14),这种方案的操作码的平均长度为: L(0.450.300.15)2(0.050.030.010.01)42.2(位) 这种方案虽然使操作码的平均长度稍有增长,但给操作码译码带来方便,通常称作“扩展操作码法” 。,第五章 指令系统(15),3、扩展操作码法 扩展操作码法是一种比较简单的操作码优化方式。常用的有等长扩展和不等长扩展两种方法。 等长扩展法 每次扩展同样位数的操作码,如4812位扩展,369位扩展等 不等长扩展法 每次扩展不同位数的操作码,如4610位扩展,4810位扩展等 具体机器中采用那种方法,取决于指令系统中所包含的各类指令的数量。 举例: 某机字长16位的指令系统中,使用频度最高的指令少于15条,使用频度低的指令只有15条,使用频度最低的指令也不多,则可以采用4812位等长扩展实现15/15/16条指令的扩展方案。,第五章 指令系统(16),0 0 0 0 0 0 0 1 1 1 1 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1,第五章 指令系统(17),0 0 0 0 0 0 0 1 0 1 1 1 1 0 0 0 0 0 1 0 0 0 0 1 1 1 1 1 1 0 1 1 1 1 1 1 0 0 0 0 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1 1 1 1 1 1,若该指令系统中使用频度高的指令不超过8条,则可采用4610的不等长扩展法,实现8/31/16条的扩展方案:,第五章 指令系统(18),4、指令字的长度 由操作码和地址码构成的一条指令称作一个“指令字”; 早期的计算机多采用等长指令字、指令字长与机器字长相同; 现代计算机多采用不等长指令字,相对于机器字长,可有半字长、单字长、双字长甚至多字长的指令字; 采用可变长的指令字长已成为现代计算机的主要倾向,原因在于可变字长指令对指令格式的优化、指令功能的增强以及增加指令系统设计的灵活性都有好处。,第五章 指令系统(19),三、寻址方式 寻址方式是指根据指令中的地址码寻找操作数的实际地址的方式,也可称作“编址方式”或“变址方式”; 寻址方式有寄存器寻址,存储器寻址和立即数寻址三大类; 1、直接寻址方式 指令中直接给出操作数在存储器中的地址称作直接寻址方式,是最简单、最直观、最常用的寻址方式; 指令中直接给出的地址码称作“形式地址”,通常用D来表示,而将操作数在存储器中的实际地址称作“有效地址”,通常用E来表示。 以单地址指令为例,采用直接寻址方式的机器指令的格式如下:,操作码,地址码,第五章 指令系统(20),指令中的寻址特征位用来表示参加本条指令运算的操作数采用哪一种寻址方式,其所需的位数取决于全机共采用的寻址方式的种类; 采用直接寻址的操作数的有效地址等于指令中的形式地址,即ED; 例:某32位计算机采用直接寻址方式,其某条指令格式及寻址过程如下:,定义为直接寻址方式,形式地址,操作数,主存储器,第五章 指令系统(21),2、寄存器寻址方式 参加运算的操作数在CPU内部的通用寄存器中; 采用寄存器寻址方式的指令中需要给出寄存器号。 例:某32位计算机内部共有16个通用寄存器(R0R15),采用寄存器寻址方式的某条指令格式寻址过程如下:,定义为寄存器 寻址方式,寄存器号,操作数,通用寄存器组,R0,R1,R2,由于CPU内部的通用寄存器数量有限,因此此种方式使地址码长度明显缩短,且执行速度快。 ERi,第五章 指令系统(22),3、间接寻址方式 (1)通过寄存器间接寻址; 将操作数的有效地址存放在CPU内部的某个通用寄存器中.,定义为间接 寻址方式,寄存器号,2055,通用寄存器组,R0,R1,R2,E(Ri),操作数,主存储器,第五章 指令系统(23),(2)通过存储器的间接寻址; 将操作数的有效地址存放在主存储器的某个地址中.,定义为间接 寻址方式,形式地址,E(D) 有的计算机还有多次间接寻址方式,做法是一次间接寻址后取得的操作数的最高位设标志位,若标志位为 0,则为操作数,否则为操作数所在地址。,2480,主存储器,操作数,第五章 指令系统(24),4、基址寻址方式 通常在CPU内部设置或几个基址寄存器。,定义为基址 寻址方式,形式地址,E(基址R)D,主存储器,操作数,2000,2050,基址寄存器,第五章 指令系统(25),5、变址寻址方式 通常在CPU内部设置一个或多个变址寄存器。,定义为变址 寻址方式,形式地址,E(变址R)D,主存储器,操作数,50,2050,变址寄存器,第五章 指令系统(26),说明: 基址寻址方式与变址寻址方式的寻址过程相同,但其使用目的不同: 基址寻址方式,通常将数组的起始地址实现置入基址寄存器中,利用不同的形式地址可取得数组中的每个元素。一般情况下,基址寄存器的内容保持不变; 变址寻址方式,常常是将数组的起始地址作为指令的形式地址D,将变址寄存器的初值置0,执行同一条指令,每次使变址寄存器的内容加1,即可顺序访问数组中的每一个元素。为简化操作,许多计算机系统设有自动增量或自动减量变址方式。 6、块寻址方式 对数据块进行操作 串运算指令,第五章 指令系统(27),7、隐含寻址方式 事先约定参加某指令运算的一个操作数固定存放在某个寄存器或某个存储器单元中,则指令中可不给出该操作数的地址 一个操作数为隐含寻址,另一个操作数为直接寻址的加法指令的格式如下:,寻址特征位,形式地址,主存储器,2211,55AA,D,累加器AC,加法运算,55AA,2211,77BB,第五章 指令系统(28),8、立即寻址方式 参加运算的操作数在指令中直接给出。 操作数随指令同时取出。 一个操作数为寄存器寻址,另一个操作数为立即数寻址的加法指令格式如下:,第五章 指令系统(29),9、相对寻址方式 用于参加运算的操作数离本指令所在地址较近的场合 采用相对寻址“加1”指令的格式如下:,E(PC)+D,综合练习,一、某计算机字长32位,数据在计算机中以补码形式存储,可采用定点和浮点两种表示方法,浮点表示时,阶码占12位,尾数占20位,各包含一位符号位。求: (1)带符号定点小数的表示范围; (2)带符号定点整数的最小值; (3)浮点表示时的最小负数; (4)浮点表示的正数范围; (5)浮点表示时,最大的规格化负数。 二、已知 X=+0.111101012-011,Y=-0.101001112-001 用变形补码求 XY?,XY?,并判断是否产生溢出? 三、已知:X补X0.X1 X2. Xn 求证:-X补 X0.X1X2. Xn+2-n 四、某机字长16位,CPU系统总线中包含16条地址线(A15A0)、8条数据线(D7D0)和1条控制线(WE),I/O端口与主存储器统一编址,256个I/O端口占用低端的256个地址。存储器按字节编址,目前使用的存储器总容量为16KB,拟采用4K4(位)的RAM芯片构成,要求其地址范围为1000H4FFFH。 (1)需要多少RAM芯片 (2)画出CPU与存储器和I/O端口的连接图,综合练习,256个I/O端口可用下图表示:,A7,A6,A0,D7,D6,D0,CS,WE,I/O 端口,综 合 练 习 解 题 要 点,一、某计算机字长32位,数据在计算机中以补码形式存储,可采用定点和浮点两种表示方法,浮点表示时,阶码占12位,尾数占20位,各包含一位符号位。求: (1)带符号定点小数的表示范围; (2)带符号定点整数的最小值; (3)浮点表示时的最小负数; (4)浮点表示的正数范围; (5)浮点表示时,最大的规格化负数。 解: (1) 补码形式 1.00000.1111 即-1+(12-31) (2) 补码形式 10000 即-2+31 (3) 补码形式 01111,1.0000 211 -1 即12 (4) 补码形式 100000,0.000101111,0.1111 -2+11 2+11 -1 即 2-192 (1-2-19)2 (5) 补码形式 1000,1.1000 -211 即2-12,综 合 练 习 解 题 要 点,二、已知 X=+0.111101012-011,Y=-0.101001112-001 用变形补码求 XY?,XY?,并判断是否产生溢出? 解: (1)对阶 X+0.00111101 2-001 (2)尾数运算 X补11 111,00.00111101 Y补11 111,11.01011001 -Y补11 111,00.10100111 X+Y补11 111,11.10010110 X-Y补11 111,00.11100100 (3)结果规格化 X+Y补11 111,11.1001011011 110,11.00101100 X-Y补11 111,00.11100100 X+Y=-0.110101002-010 X-Y=0.111001002-001 均无溢出。,综 合 练 习 解 题 要 点,三、已知:X补X0.X1 X2. Xn 求证:-X补 X0.X1X2. Xn+2-n,证明: 设:X00 X补0. X1X2. Xn X0. X1X2. Xn -X-0. X1X2. Xn -X原1. X1X2. Xn -X补1. X1X2. Xn +2-n 设:X01 X补1. X1X2. Xn X-(0. X1X2. Xn +2-n) -X0. X1X2. Xn +2-n -X补0. X1X2. Xn +2-n,综 合 练 习 解 题 要 点,四、某机字长16位,CPU系统总线中包含16条地址线(A15A0)、8条数据线(D7D0)和1条控制线(WE),I/O端口与主存储器统一编址,256个I/O端口占用低端的256个地址。存储器按字节编址,目前使用的存储器总容量为16KB,拟采用4K4(位)的RAM芯片构成,要求其地址范围为1000H4FFFH。 (1)需要多少RAM芯片 (2)画出CPU与存储器和I/O端口的连接图 解:要点: (1)8片 (2)地址线: A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 . . . . 0 1 0 0 1 1 1 1 1 1 1 1 1 1 1 1 片内寻址12条地址线A11A0,译码用A14A12,可采用38译码器,译码器输出端Y1,Y2,Y3,Y4分别接四组存储器芯片。 Y0与A11A8 相与后接I/O端口的片选端。 A15接译码器使能端。,第五章 指令系统(30),四、堆栈结构及其寻址方式 堆栈是一种重要的数据结构; 堆栈操作只在栈顶进行; 堆栈的特点是“后进先出”; 堆栈分硬堆栈和软堆栈。 硬堆栈是由在CPU内部设置的专用寄存器组构成; 软堆栈是指在主存储器中划出的专门用作堆栈的一片区域,即堆栈区。 1、硬堆栈,栈顶,栈低,假定某系统中设置8个寄存器(R0R7)构成硬堆栈,如左图所示。其栈顶总是指向R0,而栈底固定指向R7。,当有数据需要入栈时,总是先将堆栈中原有信息下移一个寄存器,将数据压入栈顶寄存器R0中。当要从堆栈中弹出数据时,总是先将栈顶寄存器R0中的数据弹出,后将堆栈中其它数据上移一个寄存器,以保证栈顶寄存器R0中存放的总是最后进入堆栈的信息。,第五章 指令系统(31),硬堆栈的缺点是容量小; 硬堆栈的优点是速度快。 2、软堆栈 从主存储器中划出一片区域,构成堆栈区;,在左图中,从1000H14FFH单元构成一个堆栈区,其栈底始终指向1500H,而栈顶是浮动的。当堆栈置空时,栈顶指向栈底。 随着数据的入栈,栈顶不断向小地址方向移动,因此必须专门设置一个堆栈指示器SP(Stack Pointer),又称栈顶指针,SP总是指向当前的栈顶。 数据入栈时,先修改SP(SP1 SP),然后数据入栈。 数据出栈时,总是先数据出栈,后修改堆栈指针SP(SP1 SP),以保证SP总是指向当前的栈顶。,第五章 指令系统(32),上例中的堆栈是“向下增长”的软堆栈,还有一种“向上增长”的软堆栈; 软堆栈容量可以很大,唯一的限制是存储器的容量; 硬堆栈的缺点是速度较慢; 可以构成软硬结合的堆栈。 五、指令系统
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年酚类项目建议书
- 2025年工商用制冷、空调设备项目合作计划书
- 2025年木材加工及制品项目发展计划
- 培训机构兼职讲师合同服务与支持协议
- 工业废水零排放处理设施运营合同
- 未成年人抚养费年度审计与监管协议
- 智能制造领域数字经济创业企业有限合伙合作协议
- 2025年高纯铟及氧化铟项目合作计划书
- 网络文学作品改编成互动剧本独家开发协议
- 软件产品功能保证补充合同
- 河南省确山县三里河治理工程
- 水利工程合同工程完工验收工程建设管理工作报告
- photoshop实训指导书
- 多级泵检修及维护(1)
- 涵洞孔径计算
- 测量未知电阻的方法
- 中国民主同盟入盟申请表
- SAP项目用户操作手册CO月结
- 观感质量检查表
- 企业信息登记表
- 孙志刚事件1doc
评论
0/150
提交评论