已阅读5页,还剩38页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第五章指令系统 1 概念 指令 要求计算机执行某种操作的命令一台计算机 其所有机器指令的集合构成机器的指令系统CISC ComplexInstructionSetComputer 复杂指令系统计算机RISC ReducedInstructionSetComputer 精简指令系统计算机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码的代码压缩为例 00 99 共100个十进制数 在计算机中可用BCD码 XXXX XXXX 来表示而8位二进制数有256种不同的编码 可见 BCD码具有很多的冗余码点 是否可以压缩其码长 以减少冗余码点呢 采用Huffman压缩法 将8位二进制数分别用a b c d e f g h来表示 它所能表示的十进制数如下所示 abcdefgh00000000000100010010001000110011010001000101010101100110011101111000100010011001 从表中可以看出 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 Li 1 64 2 16 3 16 3 14 1 56 位 2 位 结论 在概率密度分布不均匀的代码系统中 若对出现概率高的事件用较短的代码来表示 而对出现概率低的事件则用较长的代码来表示 那么代码的平均长度可有效缩短 这就是Huffman压缩法的基本结论 第五章指令系统 8 2 指令操作码的压缩任何计算机系统中 各条指令的使用频度是不同的 因此利用Huffman压缩法 完全有可能压缩操作码的平均长度 假定某台计算机的机器指令系统只包含7条指令 各条指令的使用频度如下表 若采用等长操作码 则操作码需要3位长 根据信息论的一个最基本的公式 可计算信息源所包含的平均信息量 即 信息熵 Entropy nH Pilog2Pii 1 由于指令操作码是二进制代码 所以操作码所包含的平均信息量为 nnH Pilog2Pi Pilog2 1 Pi i 1i 1 第五章指令系统 9 在上述指令系统中 操作码的平均信息量为 H 0 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位操作码所具有的信息冗余量达到 3 1 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 L Pi Li 0 45 1 0 30 2 0 15 3 0 05 4 0 03 5 0 01 6 0 01 6 1 97 位 方案B L 0 45 1 0 30 2 0 15 3 0 05 0 03 0 01 0 01 5 2 位 说明上述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 45 0 30 0 15 2 0 05 0 03 0 01 0 01 4 2 2 位 这种方案虽然使操作码的平均长度稍有增长 但给操作码译码带来方便 通常称作 扩展操作码法 第五章指令系统 15 3 扩展操作码法扩展操作码法是一种比较简单的操作码优化方式 常用的有等长扩展和不等长扩展两种方法 等长扩展法每次扩展同样位数的操作码 如4 8 12位扩展 3 6 9位扩展等不等长扩展法每次扩展不同位数的操作码 如4 6 10位扩展 4 8 10位扩展等具体机器中采用那种方法 取决于指令系统中所包含的各类指令的数量 举例 某机字长16位的指令系统中 使用频度最高的指令少于15条 使用频度低的指令只有15条 使用频度最低的指令也不多 则可以采用4 8 12位等长扩展实现15 15 16条指令的扩展方案 第五章指令系统 16 00000001 11101111000011110001 11111110111111110000111111110001 111111111111 第五章指令系统 17 00000001 0111100000100001 11111011111100001111111001 1111111111 若该指令系统中使用频度高的指令不超过8条 则可采用4 6 10的不等长扩展法 实现8 31 16条的扩展方案 第五章指令系统 18 4 指令字的长度由操作码和地址码构成的一条指令称作一个 指令字 早期的计算机多采用等长指令字 指令字长与机器字长相同 现代计算机多采用不等长指令字 相对于机器字长 可有半字长 单字长 双字长甚至多字长的指令字 采用可变长的指令字长已成为现代计算机的主要倾向 原因在于可变字长指令对指令格式的优化 指令功能的增强以及增加指令系统设计的灵活性都有好处 第五章指令系统 19 三 寻址方式寻址方式是指根据指令中的地址码寻找操作数的实际地址的方式 也可称作 编址方式 或 变址方式 寻址方式有寄存器寻址 存储器寻址和立即数寻址三大类 1 直接寻址方式指令中直接给出操作数在存储器中的地址称作直接寻址方式 是最简单 最直观 最常用的寻址方式 指令中直接给出的地址码称作 形式地址 通常用D来表示 而将操作数在存储器中的实际地址称作 有效地址 通常用E来表示 以单地址指令为例 采用直接寻址方式的机器指令的格式如下 操作码 地址码 第五章指令系统 20 指令中的寻址特征位用来表示参加本条指令运算的操作数采用哪一种寻址方式 其所需的位数取决于全机共采用的寻址方式的种类 采用直接寻址的操作数的有效地址等于指令中的形式地址 即E D 例 某32位计算机采用直接寻址方式 其某条指令格式及寻址过程如下 定义为直接寻址方式 形式地址 操作数 主存储器 第五章指令系统 21 2 寄存器寻址方式参加运算的操作数在CPU内部的通用寄存器中 采用寄存器寻址方式的指令中需要给出寄存器号 例 某32位计算机内部共有16个通用寄存器 R0 R15 采用寄存器寻址方式的某条指令格式寻址过程如下 定义为寄存器寻址方式 寄存器号 操作数 通用寄存器组 R0 R1 R2 由于CPU内部的通用寄存器数量有限 因此此种方式使地址码长度明显缩短 且执行速度快 E Ri 第五章指令系统 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 11110101 2 011 Y 0 10100111 2 001用变形补码求X Y X Y 并判断是否产生溢出 三 已知 X 补 X0 X1X2 Xn求证 X 补 X0 X1X2 Xn 2 n四 某机字长16位 CPU系统总线中包含16条地址线 A15 A0 8条数据线 D7 D0 和1条控制线 WE I O端口与主存储器统一编址 256个I O端口占用低端的256个地址 存储器按字节编址 目前使用的存储器总容量为16KB 拟采用4K 4 位 的RAM芯片构成 要求其地址范围为1000H 4FFFH 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 000 0 0 111 1即 1 1 2 31 2 补码形式1000 0即 2 31 3 补码形式0111 1 1 000 0211 1即 1 2 4 补码形式10000 0 0 000 1 0111 1 0 111 1 2 112 11 1即2 19 2 1 2 19 2 5 补码形式100 0 1 100 0 211即 2 1 2 综合练习解题要点 二 已知X 0 11110101 2 011 Y 0 10100111 2 001用变形补码求X Y X Y 并判断是否产生溢出 解 1 对阶X 0 00111101 2 001 2 尾数运算 X 补 11111 00 00111101 Y 补 11111 11 01011001 Y 补 11111 00 10100111 X Y 补 11111 11 10010110 X Y 补 11111 00 11100100 3 结果规格化 X Y 补 11111 11 10010110 11110 11 00101100 X Y 补 11111 00 11100100X Y 0 11010100 2 010X Y 0 11100100 2 001均无溢出 综合练习解题要点 三 已知 X 补 X0 X1X2 Xn求证 X 补 X0 X1X2 Xn 2 n 证明 设 X0 0 X 补 0 X1X2 XnX 0 X1X2 Xn X 0 X1X2 Xn X 原 1 X1X2 Xn X 补 1 X1X2 Xn 2 n设 X0 1 X 补 1 X1X2 XnX 0 X1X2 Xn 2 n X 0 X1X2 Xn 2 n X 补 0 X1X2 Xn 2 n 综合练习解题要点 四 某机字长16位 CPU系统总线中包含16条地址线 A15 A0 8条数据线 D7 D0 和1条控制线 WE I O端口与主存储器统一编址 256个I O端口占用低端的256个地址 存储器按字节编址 目前使用的存储器总容量为16KB 拟采用4K 4 位 的RAM芯片构成 要求其地址范围为1000H 4FFFH 1 需要多少RAM芯片 2 画出CPU与存储器和I O端口的连接图解 要点 1 8片 2 地址线 A15A14A13A12A11A10A9A8A7A6A5A4A3A2A1A00001000000000000 0100111111111111片内寻址12条地址线A11 A0 译码用A14 A12 可采用3 8译码器 译码器输出端Y1 Y2 Y3 Y4分别接四组存储器芯片 Y0与A11 A8相与后接I O端口的片选端 A15接译码器使能端 第五章指令系统 30 四 堆栈结构及其寻址方式堆栈是一种重要的数据结构 堆栈操作只在栈顶进行 堆栈的特点是 后进先出 堆栈分硬堆栈和软堆栈 硬堆栈是由在CPU内部设置的专用寄存器组构成 软堆栈是指在主存储器中划出的专门用作堆栈的一片区域 即堆栈区 1 硬堆栈 栈顶 栈低 假定某系统中设置8个寄存器 R0 R7 构成硬堆栈 如左图所示 其栈顶总是指向R0 而栈底固定指向R7 当有数据需要入栈时 总是先将堆栈中原有信息下移一个寄存器 将数据压入栈顶寄存器R0中 当要从堆栈中弹出数据时 总是先将栈顶寄存器R0中的数据弹出 后将堆栈中其它数据上移一个寄存器 以保证栈顶寄存器R0中存放的总是最后进入堆栈的信息 第五章指令系统 31 硬堆栈的缺点是容量小 硬堆栈的优点是速度快 2 软堆栈从主存储器中划出一片区域 构成堆栈区 在左图中 从1000H 14FFH单元构成一个堆栈区 其栈底始终指向1500H 而栈顶是浮动的 当堆栈置空时 栈顶指向栈底 随着数据的入栈 栈顶不断向小地址方向移动 因此必须专门设置一个堆栈指示器SP StackPointer 又称栈顶指针 SP总是指向当前的栈顶 数据入栈时 先修改SP SP 1 SP 然后数据入栈 数据出栈时 总是先数据出栈 后修改堆栈指针SP SP 1 SP 以保证SP总是指向当前的栈顶 第五章指令系统 32 上例中的堆栈是 向下增长 的软堆栈 还有一种 向上增长 的软堆栈 软堆栈容量可以很大 唯一的限制是存储器的容量
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 胃溃疡合并出血护理指南
- 中小学教辅材料管理专项整治工作方案
- 2025汽车维护考试题及答案
- (完整版)外墙岩棉板保温施工方案
- 2025版妊娠糖尿病常见症状及护理指南探讨
- 2025版强直性脊柱炎常见症状及护理指南培训
- 2025版偏头痛常见症状及护理调理建议
- 餐饮激励奋战一线员工
- 经管类跨专业综合实训总结
- UI设计小图标设计规范与应用
- 中学X校园体育艺术科技节活动方案
- GB/T 25413-2010农田地膜残留量限值及测定
- GB/T 13315-1991锻钢冷轧工作辊超声波探伤方法
- 高等化工传递过程原理(研究生)全册配套完整课件3
- 尿素装置工艺流程介绍课件
- 美容院员工劳动合同书
- DB11-T 2006-2022 既有建筑加固改造工程勘察技术标准
- 囊袋皱缩综合征课件
- 儿童体格生长指标测量演示教学课件
- 软件运维服务合同
- ]非常规油气资源地球物理勘探技术发展现状及趋势-汪忠德
评论
0/150
提交评论