




已阅读5页,还剩47页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2007 7 2 计算机组成与结构 1 第5章指令系统 计算机组成原理 2007 7 2 计算机组成与结构 2 第5章指令系统 计算机系统主要由硬件 Hardware 和软件 Software 两部分组成 所谓硬件就是指构成计算机的电子 机械 光学的元件或装置 它们是看得见 摸得着得实体 软件则是为便于用户使用计算机而编写的各种程序 它实际上是由一系列机器指令组成 一台计算机中全部指令的集合称为这台计算机的指令系统 它是软 硬件设计的分界面 计算机性能与它所设置的指令系统有很大的关系 指令系统反映了计算机的主要属性 而指令系统的设置又与机器的硬件结构密切相关 指令是计算机执行某种操作的命令 而指令系统是一台计算机中所有机器指令的集合 通常性能较好的计算机都设置有功能齐全 通用性强 指令丰富的指令系统 而指令功能的实现需要复杂的硬件结构来支持 2007 7 2 计算机组成与结构 3 本章要点 指令格式操作数的存储方式寻址方式和范围指令系统设计指令系统的发展 2007 7 2 计算机组成与结构 4 5 1指令系统概述 计算机能解题是由于机器本身存在一种语言 它既能理解人得意图 又能被机器自身识别 机器语言是由一条条语句构成的 每一条语句又能准确表达某种语义 例如它可以命令机器做某种操作 指出参与操作的数或其它信息在什么地方等等 计算机就是连续执行每一条机器指令而实现全自动工作的 人们习惯把每一条机器语言的语句叫机器指令 而又将全部机器指令的集合叫做机器的指令系统 因此机器的指令系统集中反映了机器的功能 是计算机系统中软件与硬件的分界面 如图5 1所示 就目前来看 无论多么复杂 功能多么强大的软件 凡是能够在机器上直接运行的目标程序都是由一系列机器指令组成的 2007 7 2 计算机组成与结构 5 2007 7 2 计算机组成与结构 6 对于软件设计人员而言 则需使用这些指令编制各种各样的系统软件和应用软件 用这些软件来填补硬件的指令与人们习惯的使用方式之间的语义差距 因此 可以说 指令系统是软件设计人员与硬件设计人员之间的一个主要分界面 也是他们之间互相沟通的一座桥梁 一方面是程序员所能看到的机器的主要属性 另一方面表明计算机具有哪些最基本的硬件功能 也就是说指令系统既为软件设计者提供最低层的程序设计语言 也为硬件设计者提供了最基本的设计依据 在计算机系统的设计过程中 指令系统的设计是非常关键的 不但直接关系着对程序设计的支持程度 也关系着该计算机的硬件结构 必须由软件设计人员和硬件设计人员共同来完成 2007 7 2 计算机组成与结构 7 5 2指令格式 计算机的指令格式与机器的字长 存储器的容量及指令的功能都有很大的关系 从便于程序设计 增加基本操作并行性 提高指令功能的角度来看 指令中应包含多种信息 但在有些指令中 由于部分信息可能无用 这将浪费指令所占的存储空间 增加了访存次数 从而影响速度 因此 如何合理 科学地设计指令格式 使指令既能给出足够的信息 又使其长度尽可能地与机器字长相匹配 以节省存储空间 缩短取指时间 提高机器的性能 这是指令格式设计中的一个重要问题 2007 7 2 计算机组成与结构 8 计算机是通过执行指令来处理各种数据的 为了指出数据的来源 操作结果的去向及所执行的操作 一条指令必须包含下列信息 1 操作码 它具体说明了操作的性质及功能 一台计算机可能有几十条至几百条指令 每一条指令都有一个相应的操作码 计算机通过识别该操作码来完成不同的操作 2 操作数的地址 CPU通过该地址就可以取得所需的操作数 3 操作结构的存储地址 把对操作数的处理所产生的结果保存到该地址中 一边再次使用 2007 7 2 计算机组成与结构 9 4 执行程序时 大多数指令按顺序依次从主存中取出执行 只有在遇到转移指令时 程序的执行顺序才会改变 为了压缩指令的长度 可以用一个程序计数器 ProgramCounter PC 存放指令地址 每执行一条指令 PC的指令地址就自动加1 设该指令只占用一个主存单元 指出将要执行的下一条指令地址 当遇到执行转移指令时 则用转移地址修改PC的内容 由于使用了PC 指令中就不必明显地给出下一条将要执行指令的地址 2007 7 2 计算机组成与结构 10 从上述分析可知 一条指令实际上包括两种信息即操作码和地址码 操作码 OperationCode OP 用来表示该指令所需要完成的操作 其长度取决于指令系统中的指令条数 地址码用来描述该指令的操作对象 它或者直接给出操作数 或者指出操作数的存储器地址或寄存器地址 即寄存器名 其中操作码字段指明了指令的操作性质及功能 地址码则给出了操作数或操作数的地址 一条指令就是机器语言的一个语句 它是一组有意义的二进制代码 指令的基本格式如下 2007 7 2 计算机组成与结构 11 5 2 1操作码 操作码部分指出了计算机要执行什么性质的操作 如进行加法 减法 取数 存数等 不同的指令 其操作码不同 用不同的编码来表示 每一个编码表示一条指令 计算机要为每条指令分配一个确定的操作码 例如 操作码0001可以规定为表示加法操作 操作码0010可以规定为表示加法操作等等 每个操作码代表的功能均由CPU上相应的电路来实现 因此机器就能执行操作码所要表示的操作 操作码的长度n 即操作码的位数 决定了指令系统中完成不同操作的指令条数 如某机器的操作码长度为n 则不同指令的条数最多为2n n越大 则指令条数越多 功能越强 指令系统的规模也就越大 2007 7 2 计算机组成与结构 12 目前在指令操作码设计上主要采用以下两种编码方式1 固定长度操作码操作码的长度是固定的 且集中放在指令字的一个字段中 指令的其余部分全部用于地址码 例如IBM370机和VAX 11系列机 操作码的长度均为8位 可表示256种不同的操作 2 可变长度操作码 2007 7 2 计算机组成与结构 13 5 2 2地址码地址码用于指定操作数和存放运算结果的地址 通常称为操作数 操作数可以是一个直接的数或者是一个数据所在的地址 它以空格与操作码分开 根据指令功能的不同 操作数可以有一 二 三个或没有操作数之间以逗号分开 1 零地址指令格式 2 一地址指令格式 2007 7 2 计算机组成与结构 14 3 二地址指令格式 它有两个地址码D1和D2 分别指明参与操作数在内存中或运算器中通用寄存器的地址 其中地址D1兼作存放操作结果的地址 功能 D1 OP D2 D14 三地址指令格式 2007 7 2 计算机组成与结构 15 思考 假如在以后的应用中需要对指令系统进行扩充 那么设计操作码时应采用固定长度还是可变长度 为什么 2007 7 2 计算机组成与结构 16 5 3操作数的存储及其寻址方式 1 操作数的类型机器指令可完成对操作数的操作 通常 操作数有4种类型 1 数值数值类型可以是整数和浮点数 整数可以是无符号和有符号整数 数据长度可以是字节 字或者双字数据 浮点数可以是单精度数据和双精度数据 2 字符字符类型是一种非数值类型 通常用ASCII码 7个二进制位 表示 数据长度为一个字节长 未使用的最高位填0 2007 7 2 计算机组成与结构 17 3 地址地址是指存储器地址 根据计算机存储管理的分段或分页管理方法 地址由段 页地址和段 页内偏移量组成 而段 页地址则由专门的寄存器存放 指令中只需表示偏移量即可 该偏移量是一个无符号单字整数 4 逻辑数据逻辑数据的值只有0和1 用一个二进制位表示即可 逻辑数据和数值数据在形式上无任何差异 都是一串0 1代码 靠机器指令的操作码来决定数据的类型 数据长度与整数的数据长度一致 所有机器指令支持的数据类型 都称之为数据表示 它需要硬件支持来进行识别和运算 2007 7 2 计算机组成与结构 18 2 操作数的类型在指令中的表示操作数类型无论是数值类型还是字符类型 都是一串二进制序列 为表示数据的类型 通常需要增加一些二进制位标识类型 类型的标识有两种时机 存储时标识或处理时标识 对在存储时标识而言 标识需要在存储器中增加标识空间 因数据可以是字节 字 双字形式出现的 因此必须在每个字节中标识 而以字 双字形式出现的概率较大 每个字节标识会造成存储器极大的空间浪费 而且控制比较复杂 对处理时标识而言 需要在指令中增加标识空间 无论数据长度如何 仅需一次标识 因此 在指令中标识数据类型是理所当然的选择 2007 7 2 计算机组成与结构 19 5 3 2操作数存储方式 从指令角度讲 指令的操作数可以存储在指令 寄存器 堆栈和存储器中 而操作数的位数可以是字节 字 双字等 对指令而言 可以存放数据的长度是固定的 操作码已经确定了数据的类型 对寄存器而言 可以存放数据的长度是固定的 一般与机器字长一致 当操作数长度小于寄存器长度时 操作数总是存放在寄存器的低端 处理部件通过操作码中数据类型标识从寄存器中取相应长度的数据去处理 2007 7 2 计算机组成与结构 20 对存储器而言 一次访问存储单元的取得位数一般与计算机机器字长是相同的 目的是使CPU能够一次访问到操作数的全部 现代计算机的存储器大多是以字节为单位编址的 即每个存储单元地址对应一个字节的数据空间 存储器硬件特性决定了一次访问存储器所能取得的数据肯定是在连续的地址中 因此当操作数长度大于一个字节时 操作数就必须存放在制定地址开始的相邻的多个字节 操作数长度对应字节数 的存储器空间中 按照操作数的高字节和低字节在存储器中的存储次序 可分为大端和小端两种数据存储方式 将最低字节存储在指定存储器空间中最小地址位置的存储方法称为小端方式 将最低字节存储在指定存储器空间中最大地址位置的存储方法称为大端方式 2007 7 2 计算机组成与结构 21 数据存储采用大端存储方式的处理机有IBM360 370 Motorola68000 MIPS SPARC HPPA等 数据存储采用小端存储方式的处理机有Intel80 x86 Pentium DECVAX DECAlpha等 PowerPC是一个既支持大端方式 又支持小端方式的双端序机器 数据存储方式的管理由系统寄存器中的特定标志位决定 操作系统或软件工作人员可以通过改变系统寄存器的这个特定标志位来设定数据存储是大端还是小端方式 注意 大端 小端存储方式是指数据的字节间的存储次序 而字节内的数据无大端 小端之分 永远是bit7为字节内数据的最高位 bit0为字节内数据的最低位 2007 7 2 计算机组成与结构 22 5 3 3数据的寻址方式 在程序执行过程中 操作数可能在运算部件的某个寄存器中或存储器中 也可能就在指令中 组成程序的指令代码 一般是在存储器中的 所谓寻址方式 或编址方式 指的是确定本条指令的数据地址及下一条要执行的指令地址的方法 它与计算机硬件结构紧密相关 而且对指令格式和功能有很大影响 从程序员角度来看 寻址方式与汇编程序设计的关系极为密切 与高级语言的编译程序设计也同样密切 不同的计算机有不同的寻址方式 但其基本原理是相同的 有的计算机寻址种类较少 因此在指令的操作码中表示出寻址方式 而有的计算机采用多种寻址方式 此时在指令中专设一个字段表示一个操作数的来源或去向 在这里仅介绍几种被广泛采用的基本寻址方式 在一些计算机中 某些寻址方式还可以组合使用 从而形成复杂的寻址方式 2007 7 2 计算机组成与结构 23 1 立即寻址操作数本身放在指令字内 形式地址A不是操作数的地址 而是操作数本身 如图5 2所示 2007 7 2 计算机组成与结构 24 2 寄存器寻址计算机的中央处理器一般设置有一定数量的通用寄存器 用以存放操作数 操作数的地址或中间结果 假如指令地址码部分给出某一通用寄存器地址 而且所需的操作数就在这一寄存器中 则称为寄存器寻址 通用寄存器的数量一般在几个至几十个之间 比存储单元少很多 因此地址码短 而且从寄存器中存取数据比从存储器中存取快得多 所以这种方法可以缩短指令长度 节省存储空间 提高指令的执行速度 在计算机中得到广泛应用 例如 MOVAX CXMOVDS AX 2007 7 2 计算机组成与结构 25 3 直接寻址指令中的形式地址A就是操作数的真实地址EA 这种寻址方式称为直接寻址方式 又称为绝对寻址方式 如图5 3所示 这种寻址方式简单 直观 硬件实现时不需要进行计算 随着存储空间的不断扩大 所需的地址码也越来越长 指令长度也相应增加 这种寻址方式适合访问固定存储单元的操作 它的缺点就是形式地址A的位数限制了寻址范围 同时必须修改指令中的A值来改变操作数的地址 2007 7 2 计算机组成与结构 26 例如 MOVAL 0080H MOVAX 1000H 2007 7 2 计算机组成与结构 27 4 间接寻址在寻址时 有时根据指令的地址码所取出的内容既不是操作数 也不是下一条要执行的指令 而是操作数的地址或指令的地址 这种方式称为间接寻址或间址 根据地址码指的是寄存器地址还是存储器地址 间接寻址又可分为寄存器间接寻址和存储器间接寻址两种方式 间接寻址有一次间址和多次间址两种情况 大多数计算机只允许一次间址 对于存储器一次间址的情况 需访问两次存储器才能取得数据 第一次从存储器读出操作数地址 第二次从该地址中读取操作数 图5 4 a 和图5 4 b 分别为寄存器间址和存储器间址的操作数寻址方式 2007 7 2 计算机组成与结构 28 例如 MOVAX BX 2007 7 2 计算机组成与结构 29 5 基址寻址在计算机中设置一个专用的基址寄存器 或由指令制定一个通用寄存器为基址寄存器 操作数的地址由基址寄存器的内容和指令的地址码A相加得到 如图5 5所示 在这种情况下 地址码A通常被称为位移量 disp 也可用其它方法获得位移量 例如 MOVAX Y BX 2007 7 2 计算机组成与结构 30 基址寄存器主要用于为程序或数据分配存储区 对多道程序或浮动程序很有用 实现从浮动程序的逻辑地址 编写程序时所使用的地址 到存储器的物理地址 程序在存储器中的实际地址 有时称为有效地址 的转换 另外 当存储器的容量较大 由指令的地址码部分直接给出的地址不能直接访问到存储器的所有单元时 通常把整个存储空间分成若干个段 段的首地址存放于基址寄存器或段寄存器中 段内位移量由指令给出 存储器的实际地址就等于基址寄存器的内容 即段首地址 与段内位移量之和 这样通过修改基址寄存器的内容就可以访问存储器的任一单元 2007 7 2 计算机组成与结构 31 综上所述 基址寻址主要用以解决程序在存储器中的定位和扩大寻址空间等问题 通常基址寄存器中的值只能由系统程序设定 由特权指令执行 而不能被一般用户指令所修改 因此确保了系统的安全性 2007 7 2 计算机组成与结构 32 6 变址寻址变址寻址的过程如图5 6所示 指令地址码部分给出的地址A和指定的变址寄存器X的内容通过加法器相加 所得的和作为地址从存储器中读出所需的操作数 这是几乎所有计算机都采用的一种寻址方式 当计算机中还有基址寄存器时 那么在计算有效地址时还要加上基址寄存器的内容 2007 7 2 计算机组成与结构 33 例如 MOVAX SI 2007 7 2 计算机组成与结构 34 假如用户用高级语言编程 根本不用考虑寻址方式 因为这是编译程序的事 但若用汇编语言编程 则应对它有确切的了解 才能编出正确而又高效的程序 此时应认真阅读指令系统的说明书 因为不同计算机采用的寻址方式是不同的 即使是同一种寻址方式 在不同的计算机中也有不同的表达方式或含义 思考 设计指令系统时 数据的寻址方式越多越好吗 为什么 2007 7 2 计算机组成与结构 35 5 4指令系统功能设计5 4 1常见指令类型1 数据传送指令 1 寄存器与寄存器之间的数据传送 2 寄存器与存储器之间的数据传送 通常称之为取数 存数指令 3 CPU与外部设备之间的数据传送 通常称之为输入 输出指令 2007 7 2 计算机组成与结构 36 2 算术逻辑运算指令3 移位操作指令4 浮点运算指令5 二进制运算指令6 字符串处理指令7 转移类指令8 堆栈及堆栈操作指令9 输入 输出 I O 指令10 特权指令11 其他指令 2007 7 2 计算机组成与结构 37 5 4 2指令系统设计思想指令系统的设计是微处理器设计中最重要的一步 设计良好的ISA InstructionSystemArchitecture 即指令系统结构 会产生能够满足各种需要的强大的微处理器 本小节主要分析设计一套指令系统结构时应该考虑的一些问题 设计ISA的目的就是要决定ISA完成时想要实现什么 特别是要回答出ISA应该是什么 它的处理器应该能做什么 2007 7 2 计算机组成与结构 38 指令系统结构设计还会遇到一些问题 如 处理器必须向下兼容其他的微处理器吗 微处理器将处理何种类型和规模的数据 需要中断吗 需要条件指令吗 思考 对与系列微处理器来说 要求指令系统具有向下兼容性 请结合应用实际分析这一特性的优缺点 2007 7 2 计算机组成与结构 39 5 4 3指令系统举例1 Pentium指令系统 2007 7 2 计算机组成与结构 40 2 PowerPC指令系统 2007 7 2 计算机组成与结构 41 从本节的Pentium和PowerPC指令系统介绍可以看到 无论是CISC风格还是RISC风格的指令系统 指令系统包含的指令其实现的操作都是常用的和必须的操作 它们支持的寻址方式 指令格式均符合其风格特征 在具体的指令格式设计中 每种指令系统都会根据其应用需求和指令系统风格特性 增加一些比较适合该指令系统的寻址方式 指令格式 以取得更好的性能 2007 7 2 计算机组成与结构 42 3 IBM360指令系统IBM360属系列机 所谓系列机是指其基本指令系统相同 基本体系结构相同的一系列计算机 IBM370对IBM360是完全向上兼容的 所以IBM370可看作IBM360的扩展或延伸或改进 IBM360是32位机器 按字节寻址 并可支持多种数据类型 如字节 半字 字 双字 双精度实数 压缩十进制数 字符串等等 在CPU中有16个32位通用寄存器 用户可选定一个寄存器作为基址寄存器BR或变址寄存器IX 4个双精度 64位 浮点寄存器 指令字长有16位 32位 48位三种 如图5 9所示 2007 7 2 计算机组成与结构 43 思考 请结合指令系统举例 分析你所知道的计算机的指令系统 g1 2007 7 2 计算机组成与结构 44 5 5指令系统的发展在20世纪70年代后期 许多公司 科研机构都开始了对CISC的研究 期望找到一种更好的方法来改善CISC的缺点 研究的结果就产生了RISC风格的计算机系统 这种计算机系统是CISC的另一个极端 其特点前面已讲过 在此不再赘述 研究者认为 这样的系统一方面性能不比CISC差 另一方面更适合VLSI的实现 适合流水和并行处理技术的应用 2007 7 2 计算机组成与结构 45 从第一台RISC风格的计算机问世开始 CISC和RISC之间的争论就开始了 这种争论持续了好多年后才平息 一方面是RISC随着速度和芯片密度的不断提高 RISC系统日趋复杂 而CISC也逐步采用了部分RISC技术 如指令流水线 分级Cache 增加通用寄存器等 另一方面 通过量化的测试 能够对两者的性能有个客观的评价 2007 7 2 计算机组成与结构 46 5 6实例解析例5 1某16位机器所使用的指令格式和寻址方式如图5 10所示 该机有两个20位基址寄存器 4个16位变址寄存器 16个16位通用寄存器 指令汇编格式中的S 源 D 目标 都是通用寄存器 M是主存的一个单元 三种指令的操作码分别是MOV OP A H STA OP 1B H LDA OP 3C H MOV是传送指令 STA为写数指令 LDA为读数指令 2007 7 2 计算机组成与结构 47 图5 10指令格式 2007 7 2 计算机组成与结构 48 本章小结本章主要讲述了计算机指令系统的基本概念 指令的格式 指令的操作数 操作数的存储以及操作数的寻址方式等 指令系统是表征计算机性能的重要因素 它的格式与功能不仅直接影响到机器的硬件结构 而且也影响到系统软件 是计算机用户所使用的各种软件与计算机硬件系统之间的接口 无论多么复杂 功能多么强大的软件 凡是能够在机器上直接运行的目标程序都是由一系列机器指令组成的 一台计算机的指令系统设计的好坏与否 不但直接关系着对程序设计的支持程度 也关系着该计算机的硬件结构 是计算机设计中一个需要十分关注的问题 2007 7 2 计算机组成与结构 49 一 选择题1 在指令的地址字段中 直接指出操作数本身的寻址方式 称为 A 隐含地址B 立即寻址C 寄存器寻址D 直接寻址2 寄存器间接寻址方式中 操作数处在 A 通用寄存器B 主存单元C 程序计数器D 堆栈3 对一个区域内的成批数据采用循环逐个进行处理时 常用的指令寻址方式是 A 变址寻址方式B 相对寻址方式C 基址寻址方式D 间接寻址方式4 下列指令中 属于逻辑左移指令的是 A SHLB SALC SHRD SAR5 二地址指令中 操作数的物理位置不可安排在 A 主存单元和指令中B 两个主存单元C 一个主存单元和一个寄存器D 两个寄存器 习题五 2007 7 2 计算机组成与结构 50 6 为了缩短指令中某个地址段的位数 有效的方法是采用 A 立即寻址B 变址寻址C 间接寻址
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《谏太宗十疏书》课件
- 语文教学研修汇报
- 亲戚关系单词课件
- 《诗经·何草不黄》课件
- 亲子健康调理课件
- 亮丽的城市风光课件
- 事故安全培训感受体会课件
- 事业单位财务
- 气体行业的年度工作总结
- 汽车外饰工程师年终总结
- 小学生词性课件
- 佳能闪光灯信号发射器ST-E2中文说明书
- 上海市周浦中学2025年化学高一下期末统考试题含解析
- 易地移民搬迁政策课件
- 无人机产业股权合作收益分配与技术研发协议
- 2025至2030中国环卫行业市场发展现状及竞争格局与投资机会报告
- 反邪教责任管理制度
- 林业产业链延伸与价值提升的实施途径
- 产品打样管理制度
- 儿童注意力课件
- 2025至2030LED显示屏行业发展趋势分析与未来投资战略咨询研究报告
评论
0/150
提交评论