




已阅读5页,还剩47页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第五章指令系统 计算机组成原理电子教案陆遥 5 1指令系统概述5 2指令格式及其设计5 2 1指令的基本格式5 2 2指令的操作数类型和操作类型5 2 3寻址方式5 2 4指令操作码的设计5 2 5指令地址码的设计5 2 6指令格式举例5 3精简指令系统计算机5 3 1从CISC到RISC5 3 2RISC的主要特点 一条机器指令 简称指令 就是给计算机下达的一个基本操作命令 一台计算机中所有指令的集合 称为这台计算机的指令系统 硬件设计人员采用各种手段实现指令系统 而软件设计人员则使用指令系统中的指令来编制各种各样的系统软件和应用软件 达到使用计算机的目的 计算机指令系统的发展 是与计算机硬件技术的发展 应用领域的扩大和应用要求的提高密切相关的 5 1指令系统概述 为了使计算机系统在功能增强 性能提高的同时 还能实现软件的兼容 向后兼容 推出了系列计算机 所谓系列计算机 是指基本指令系统相同 基本系统结构相同的一系列计算机 从指令系统的发展过程来看 从第一台电子计算机诞生 到上世纪70年代末的30多年里 指令系统是沿着不断增大 不断复杂化的单一方向发展的 之后 出现了指令系统发展的一个新的方向 精简指令系统方向 采用精简指令系统的计算机 称为精简指令系统计算机 RISC 相对而言 采用复杂指令系统的计算机则称为复杂指令系统计算机 CISC 5 2指令格式及其设计 5 2 1指令的基本格式指令由操作码和地址码两部分组成 其基本格式如下 操作码本质上就是指令的编号 用于标识不同的指令 操作码由控制器中的指令译码器进行识别 根据识别的结果 由控制电路发出指令执行所需的各种操作控制信号 控制相关部件完成指令的操作功能 地址码用于指出指令的操作数据所存放的位置 包括原始数据的存放位置和处理结果的存放位置 地址码可以是存储单元地址 可以是寄存器编号 也可以是I O端口地址 由于各种存储装置的容量不同 所以 地址码的位数也不同 一条指令的操作往往需要涉及多个数据 因此 指令中的地址码可能会有多个 按指令中地址码个数的不同 可把指令格式分为三地址指令 二地址指令 一地址指令和零地址指令四类 一条指令的长度是指这条指令的二进制编码的位数 它是这条指令的操作码以及全部地址码的位数之和 由于现在的计算机存储器多以字节编址 为了方便指令的存取 指令的长度都取字节长度的整数倍 根据指令长度与机器字长的关系 通常把长度等于机器字长的指令称为单字长指令 把长度等于两倍机器字长的指令称为双字长指令 而把长度等于机器字长一半的指令称为半字长指令 等等 5 2 2指令的操作数类型和操作类型1 操作数类型指令所能处理的一切信息 都可以看作是指令的操作数 按操作数的性质来分类 操作数可分为 地址 数值 字符和逻辑数据四类 按数据格式来分类 操作数又可分为定点格式和浮点格式两类 对不同类型的数据 其操作方式是不一样的 需要设计不同的指令来完成不同的操作 因此 操作数类型对指令系统的设计有很大的影响 2 操作类型对各种计算机而言 其指令的操作种类都大同小异 一般都包含以下一些基本的操作类型 数据传送类操作 算术类操作 逻辑类操作 控制转移类操作 输入输出类操作 系统控制类操作 处理器控制类操作 5 2 3寻址方式产生指令地址的方式称为指令寻址方式 产生操作数地址的方式称为数据寻址方式 如果程序是顺序执行 则依靠PC的自动加1 就能不断产生所需执行的各条指令的地址 如果程序需要改变执行的顺序 则要通过控制转移类指令来实现 这些指令可以 条件转移指令是在转移条件成立时 将转移目标处的指令地址装入PC 使控制器下次所取的指令为转移目标指令 数据的寻址方式比较多 也比较复杂 根据某种寻址方式产生的操作数地址 称为操作数的有效地址EA 1 直接寻址这是一种产生存储器操作数地址的寻址方式 它将操作数在存储器中的存放地址直接作为地址码 置于指令的地址码部分 指令执行时 直接按此地址即可进行操作数的访问 直接寻址的优点是 提供存储器操作数地址的速度最快 实现一个存储器操作数的访问只需一次访存 缺点是 地址码较长 会大大增加指令的长度 2 间接寻址该寻址方式用于产生存储器操作数的地址 指令中给出的地址码被称为间接地址 间接寻址的过程如下图所示 间接寻址方式的最大缺点 就是要对存储器进行两次访问 才能完成一个操作数的读 写 3 寄存器寻址如果操作数存于寄存器中 则采用该寻址方式 在指令的地址码部分给出相应的寄存器编号 亦即寄存器地址 即可对该寄存器中的操作数进行访问 由于寄存器的存取速度很快 所以 寄存器寻址方式能以很快的速度完成操作数的访问 此外 寄存器的数量少 其编号的位数也少 能够有效地减少指令中地址码的长度 4 寄存器间接寻址该寻址方式将存储器操作数的地址置于一个寄存器中 并在指令的地址码部分给出该寄存器的编号 下图所示 为寄存器间接寻址方式的过程 寄存器间接寻址从寄存器中取得存储器操作数地址 速度快 以较短的寄存器号换取较长的存储器地址 有利于缩短指令中地址码长度 如果使用加1或减1指令对寄存器中的操作数地址进行修改 可以方便地通过循环控制 对在存储器中连续存放的一组数据依次进行处理 5 变址寻址该寻址方式用于访问存储器操作数 变址寻址需要用到一种变址寄存器 变址寄存器中存放用于改变存储器地址的正偏移量 即地址增量 而基础的存储器地址在指令的地址码字段中给出 变址寻址也适合于对在存储器中连续存放的一组数据依次进行处理 变址寻址的主要缺点 是需要设置专门的地址加法器来计算操作数的地址 6 基址寻址该寻址方式用于访问存储器操作数 基址寻址所用的寄存器称为基址寄存器 用于存放存储器某个区域的首地址 指令中另外设置一个地址码字段 用来表示一个无符号偏移量 基址寻址与变址寻址在对寄存器内容和地址码字段的解释上相反 因此 它们的使用场合是不同的 7 相对寻址相对寻址与基址寻址类似 但寄存器改为使用程序计数器PC 且不用在指令中表示出来 相对寻址是以下条指令的地址为基础地址 再加上一个偏移量来产生操作数地址的 相对寻址中的偏移量是一个带符号的数 用补码表示 因此 相对寻址可以在基础地址前后一定范围内寻址 这种寻址方式特别适用于转移指令 用以产生转移目标指令的地址 也适用于浮动程序的设计 变址寻址 基址寻址和相对寻址有着相似的地址产生过程 通常被统称为偏移寻址方式 8 隐含寻址如果指令中某个操作数的地址码是默认的 则不必在指令中表示出来 该操作数的寻址方式就称为隐含寻址方式 采用隐含寻址可以在指令中减少一个地址码 有利于缩短指令的长度 但隐含寻址也降低了指令使用的灵活性 9 堆栈寻址进栈和出栈指令直接利用栈顶指针获取操作数的地址 不需在指令中表示这个地址 所以 堆栈寻址也是一种隐含寻址 10 立即寻址立即寻址方式将操作数直接放在指令的地址码字段 当控制器从存储器读入这条指令时 该操作数也同时被读取进来 这种操作数称为立即数 立即数只能作为源操作数 不能作目标操作数 5 2 4指令操作码的设计对操作码的设计 主要有两方面的要求 一是节省程序的存储空间 即提高空间效率 二是降低硬件译码的复杂程度 加快指令的处理速度 即提高时间效率 操作码的设计方法有三种 固定长度操作码 Huffman编码法和扩展编码法 1 固定长度操作码这是一种最简单的操作码设计方法 它将指令系统中所有指令的操作码都设计成相同的长度 其操作码长度 位数 k与指令数量n之间的关系是 固定长度操作码非常规整 便于硬件译码 译码器只需识别一种长度的编码 是RISC系统普遍采用的操作码设计方法 但是 这种编码方法的操作码平均长度大 空间效率差 2 Huffman编码法Huffman编码法根据一个指令系统中各种指令使用概率的不同 为指令设计不同长度的操作码 其中 使用概率越高的指令 其操作码越短 反之则越长 Huffman编码法是实际可用的操作码设计方法中 操作码平均长度最短 即空间效率最高 的编码方法 设指令系统有n n 1 种指令 第i i 1 2 n 种指令的使用概率为pi 操作码长度为li 则按Huffman编码法所得到的操作码的平均长度为 例5 1 设某模型机共有7种不同的指令I1 I7 其使用概率依次为0 45 0 30 0 15 0 05 0 03 0 01 0 01 用Huffman编码法为这7种指令设计操作码 计算操作码的平均长度 并与固定长度操作码作比较 解 Huffman编码法的基础是Huffman树 也称最优二叉树 Huffman树的各终端结点分别对应着需要编码的各条指令 且使用概率越高的指令 距离树根结点就越近 由此可得操作码的平均长度为如采用固定长度操作码 操作码长度k至少取3位 平均长度也是3位 与Huffman编码法相比 其操作码的冗余量为Huffman编码法的主要问题 就是操作码长度变化太多 极不规整 不利于硬件的译码 此外 极不规整的操作码也很难与地址码配合 形成有规则长度的指令编码 由于上述原因 Huffman编码法一般不用于实际的指令操作码设计 3 扩展编码法扩展编码法也以Huffman编码法的思想为基础 按指令使用概率的不同 设计不同长度的操作码 但是 扩展编码法减少了操作码长度的变化 并限制了可用的几种长度值 使操作码变得较为规整 以降低硬件译码的难度 扩展编码法有等长扩展编码法和不等长扩展编码法两种实现方法 等长扩展编码是指编码的长度按固定的增量扩展 如4 8 12扩展法 不等长扩展编码则指操作码的长度增量不相等 如4 6 10扩展法 硬件译码时是按短码优先原则进行的 所以 不能使所设计的较短操作码成为较长操作码的前缀 下表所列 是对例5 1中的7条指令 分别按1 2 3 5不等长扩展编码法和2 4等长扩展编码法所设计的操作码 其中 采用1 2 3 5不等长扩展编码法的操作码平均长度为 采用2 4等长扩展编码法的操作码平均长度为为了避免出现前缀问题 不能将短编码用尽 必须保留若干个编码用于长编码的扩展 例5 2 设某机的指令系统有72条指令 试采用4 8等长扩展编码法为其设计操作码 解 首先 根据指令使用概率的高低 将指令分成两组 使用概率较高的一组采用4位操作码 另一组则用8位操作码 但是 每组究竟包含多少条指令 要结合所采用的编码法来确定 总的原则是使操作码的平均长度尽可能短 4位编码最多只有16种 而且 为了扩展编码 还必须保留若干个编码用于扩展 因此 4位的操作码必须少于16种 也就是说 8位操作码的数量要多于56种 由于扩展增量为4位 所以 每保留一个4位编码 就能扩展16个8位编码 根据8位操作码的数量 至少需要保留4个4位操作码 才能满足扩展编码的需要 共可扩展16 4 64个8位操作码 因此 4位操作码只能设计12种 而8位操作码共需设计60种 例5 3 设某机的指令系统有72条指令 试采用4 8 12等长扩展编码法为其设计操作码 解 设计方案有很多 总的设计原则始终是使操作码的平均长度尽可能短 下表中列出了几种设计方案 5 2 5指令地址码的设计地址码的设计主要涉及到地址码个数的选择和寻址方式的设计 一条指令中设置几个地址码 首先与指令的操作类型有关 其次与寻址方式有关 寻址方式设计是指令格式设计的重要内容 必须在指令中明确表示每个操作数的寻址方式 一种做法是 在指令操作码中包含操作数的寻址方式信息 另一种做法 是在指令的地址码部分表示操作数的寻址方式 具体做法是 在地址码部分为每个操作数设置一个寻址方式字段 用以指出所采用的寻址方式 对不同的寻址方式 其操作数地址的产生方法不同 操作数地址的组成成份也不同 一个操作数地址码的典型组成成份有 有些计算机把上述地址码的成份做成组合式的 不同的寻址方式将组合不同的成份来产生操作数的地址 不需要的成份则不出现在地址码中 也有些计算机采用固定格式的地址码 对当前寻址方式不使用的成分看作无效即可 例5 4 某机字长为32位 有32个通用寄存器 可兼作变址寄存器和基址寄存器 指令系统包含160条指令 采用固定长度操作码 试设计其单字长一地址指令格式 要求具有直接寻址 间接寻址 寄存器寻址 寄存器间接寻址 变址寻址 基址寻址等6种寻址方式 解 由于是单字长指令 所以指令长度为32位 指令数为160条 可知操作码OPC为8位 有32 25 个通用寄存器 所以寄存器号R需5位 通用寄存器可兼作变址寄存器和基址寄存器 所以不必设置变址寄存器号和基址寄存器号 统一使用寄存器号R即可 寻址方式有6种 寻址方式M需3位 剩余16位作为偏移量D 指令格式如下 例5 5 某机字长为32位 有16个通用寄存器 可兼作变址寄存器和基址寄存器 指令系统包含130条指令 采用固定长度操作码 试设计其单字长二地址指令格式 要求源操作数具有寄存器寻址和寄存器间接寻址两种寻址方式 目标操作数具有直接寻址 间接寻址 寄存器寻址 寄存器间接寻址 变址寻址 基址寻址等6种寻址方式 解 由于是单字长指令 所以指令长度为32位 指令数为130条 可知操作码OPC为8位 有16 24 个通用寄存器 所以寄存器号R需4位 源操作数有2种寻址方式 其寻址方式Ms为1位 还需要一个寄存器Rs 目标操作数寻址方式有6种 其寻址方式Md需3位 还要一个寄存器Rd 剩余12位作为偏移量D 指令格式如下 5 2 6指令格式举例指令的长度有固定长度和可变长度两种 固定长度的指令一般只在某些RISC系统中使用 而多数计算机系统的指令是可变长度的 下图所示 为IBM370系列计算机的5种主要指令格式 IBM370系列计算机的字长为32位 有16个通用寄存器 可兼作变址寄存器和基址寄存器使用 指令长度有16位 32位和48位等几种 所有指令的操作码长度固定为8位 属于固定长度操作码的可变长度指令结构 指令的寻址方式信息包含在操作码中 除RS型格式为三地址指令格式外 其余均为二地址指令格式 其中 R表示寄存器 X表示变址寄存器 B表示基址寄存器 D表示偏移量 I表示立即数 L表示数据块长度 字节数 小型计算机PDP 11的字长为16位 有8个16位通用寄存器 可兼作变址寄存器使用 其中 R7作为程序计数器 R6作为堆栈指针 PDP 11使用了13种不同的指令格式 其指令长度和操作码长度都是可变的 寻址方式有8种 寻址方式字段为3位 设置在地址码部分 指令格式中 源 和 目标 各为6位 其中包含3位寻址方式信息和一个3位的寄存器编号 表示操作数可以采用寄存器间接寻址方式和变址寻址方式等 R是一个通用寄存器编号 表示操作数采用寄存器寻址方式 FP是浮点寄存器编号 可以指定4个浮点寄存器之一 位移 是转移指令的相对位移量 带符号 CC是条件码字段 Pentium指令格式中 除了操作码是必不可少的 地址码的所有成份都做成组合式的 都是可选的 MOD RM字节指出操作数是在寄存器中还是在存储器中 Reg Opc用于给出一个寄存器号 对寄存器寻址方式 或者作为操作码的3个附加位 R M可以用来给出一个寄存器号 对寄存器寻址方式 或者与Mod组合 形成多种存储器操作数的寻址方式 Mod用于单独或与R M组合 形成各种寻址方式 MOD RM字节的某些编码 需要包含SIB字节来完整描述寻址方式 比例因子S是一个倍数值 其取值为1 2 4或8 用于放大变址寄存器的内容 变址寄存器I用于指出一个变址寄存器号 基址寄存器B用于指出一个基址寄存器号 Pentium的指令格式中 只有一套完整的寻址方式信息 因此 一条指令中 只能有一个操作数采用存储器寻址方式 另一个操作数 如果有的话 只能通过操作码来说明寻址方式 且只能采用寄存器寻址方式或立即寻址方式 例5 6 某模型机字长为16位 共有64种操作 操作码长度固定 且具有以下特点 采用一地址或二地址指令格式 有寄存器寻址 直接寻址和相对寻址 偏移量为 128 127 三种寻址方式 有16个通用寄存器 算术运算和逻辑运算的操作数均在寄存器中 结果也在寄存器中 取数 存数指令在通用寄存器和存储器之间传送数据 存储器容量为1MB 按字节编址 要求设计算术逻辑运算指令 取数 存数指令和相对转移指令的格式 并简述理由 解 首先 计算以下重要参数 采用固定长度操作码设计64 26 种操作 操作码长度为6位 有3种寻址方式 寻址方式字段采用2位 有16 24 个通用寄存器 寄存器编号为4位 相对偏移量为 128 127 采用8位补码表示 存储器容量为1MB 220字节 存储器操作数的有效地址为20位 算术逻辑运算指令采用二地址指令格式 操作数均在寄存器中 所以采用寄存器寻址方式 在地址码部分给出源和目标寄存器编号 指令长度取单字长即可 指令格式如下 其中 OPC为操作码 M为寻址方式字段 Rs和Rd分别为源和目标寄存器编号 取数 存数指令为二地址寄存器 存储器型指令 寄存器操作数采用寄存器寻址方式 给出寄存器编号 存储器操作数采用直接寻址方式 需要一个20位的直接地址 指令长度为双字长 其格式如下 其中 OPC为操作码 M为寻址方式字段 R为寄存器编号 取数时为目标寄存器 存数时为源寄存器 A为20位直接地址 取数时为源操作数地址 存数时为目标操作数地址 相对转移指令采用相对寻址方式产生转移目标指令的地址 相对寻址所需的程序计数器PC是默认的 不用在指令中显式表示 指令的地址码部分只需给出一个用补码表示的8位偏移量即可 指令长度取单字长 格式如下 其中 OPC为操作码 M为寻址方式字段 D为偏移量 用补码表示 5 3精简指令系统计算机 5 3 1从CISC到RISC前面介绍的IBM370系列计算机 PDP 11小型计算机和Pentium系列微型计算机 都是复杂指令系统计算机 CISC 它们的共同特点是 指令系统庞大 指令数量多 有很多功能复杂的指令 指令格式变化多 操作码长度和指令长度通常都是可变的 寻址方式种类繁多 操作数通常可采用多种寻址方式 其中包含很多访问存储器的寻址方式 指令对存储器的访问频繁 指令系统复杂化在带来一些益处的同时 也使得计算机系统结构越来越复杂 给计算机系统带来了研制周期长 投入大 错误隐患多 调试困难等问题 而且 大量复杂的指令功能难以直接用硬连线的方式实现 而不得不采用微程序的方式 从而形成了系统性能的瓶颈 1975年 IBM公司率先组织力
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 质量全流程管理办法
- 行政文件归档管理办法
- 东营临时用工管理办法
- 葛洲坝投标管理办法
- 产品奖励资金管理办法
- 西藏职工培训管理办法
- 产品批次发货管理办法
- 中国志愿服务管理办法
- 规范招标竞价管理办法
- 2025年二手房屋买卖合同(含中介服务)
- GB/T 36572-2018电力监控系统网络安全防护导则
- 甲状腺危象教学课件
- GB/T 11275-2007表面活性剂含水量的测定
- GA/T 970-2011危险化学品泄漏事故处置行动要则
- 外科学-第三章-水、电解质代谢紊乱和酸碱平衡失调课件
- PICC置管后常见并发症的处理教育课件
- 督查督办培训课件
- 北师大版义务教育小学数学教材知识体系整理
- 2023全国大学生数学建模竞赛D题
- PCB常见不良品图片及改善措施汇总
- 开学第一课铸牢中华民族共同体意识课件
评论
0/150
提交评论