计算机指令和中断








计算机指令和中断


计算机指令


指令的流水线处理


中断原理


1. 计算机指令

考点分析:计算机指令的组成和执行过程,指令的寻址方式以及操作数的寻址方式,特权指令,CISC和RISC的特点和区别

1.1 计算机指令的组成

一条指令是由操作码和操作数两部分组成,操作码决定要完成的操作,操作数指参加运算的数据及其所在的单元地址

1.2 计算机指令执行过程

指令的执行过程分为取指令、分析指令和执行指令3个子过程


  • 取指令:将程序计数器PC中的指令地址取出,送入地址总线,CPU依据指令地址去内存中取出指令内容存入指令寄存器IR
  • 分析指令:取指令后由指令译码器进行分析,判断需要执行什么操作
  • 执行指令:最后取出指令执行所需的源操作数,执行操作

1.3 指令寻址方式

  • 顺序寻址方式:指令地址在主存中顺序排列,指令一条条顺序执行
  • 跳跃寻址方式:下一条指令的地址不是由程序计数器给出,而由本条指令给出

1.4 指令操作数的寻址方式

  • 立即寻址方式:指令的地址码字段指出的不是地址,而是操作数本身
  • 直接寻址方式:指令的地址字段中直接支出操作数在主存中的地址
  • 间接寻址方式:指令的地址字段所指向的存储单元中存储的不是操作数本身,而是操作数的地址
  • 寄存器寻址方式:指令中的地址码是寄存器的编号,不是操作数地址或本身
  • 基址寻址方式:将基址寄存器的内容加上指令中的形式地址而形成操作数有效地址
  • 变址寻址方式:将变址寄存器的内容加上指令中的形式地址而形成操作数有效地址
  • 相对寻址方式:相对于当前的指令地址而言的寻址方式

1.5 特权指令

特权指令是指具有特殊权限的指令。特权指令集是计算机指令集的一个子集,其通常与系统资源的操纵和控制有关。

计算机处于系统态运行时,可执行特权指令;而处于用户态运行时,则不能执行特权指令

1.6 指令系统CISC与RISC

CISC是复杂指令系统,兼容性强,指令繁多、长度可变,由微程序实现

RISC是精简指令系统,指令少,使用频率接近,主要依靠硬件实现

计算机指令和中断_计算机指令

2. 指令的流水线处理

考点分析:流水线分段原理,流水线冒险,流水线参数计算

2.1 流水线原理

将指令分成不同段,每段由不同的部分去处理,因此可以产生叠加的效果,所有的部件去处理指令的不同段。

若把指令的执行过程进一步细分为取指令、指令译码、取操作数和执行4个子过程,则得到如下图所示的流水处理的时空图

计算机指令和中断_计算机指令_02

2.2 流水线冒险

由于各种原因导致指令流水线执行时阻塞并延期,一般由以下三种冒险


  • 数据冒险:指一条指令需要使用之前指令的计算结果,但是之前结果还没有返回产生的冲突现象
  • 结构冒险:同一个指令周期内,不同功能争抢同一个硬件部分而发生的冲突现象
  • 控制冒险:流水线遇到分支指令或者其他可能引起PC指针进行改变的指令引起的冲突现象

2.3 流水线参数计算

  • 流水线周期:指令分成不同执行段,其中执行时间最长的段为流水线周期
  • 流水线总执行时间:1条指令总执行时间 + (总指令条数 - 1)*流水线周期
  • 流水线吞吐率:流水线在单位时间内所完成的任务数或输出的结果数


P = 指令条数 / 流水线总执行时间


  • 流水线加速比:指使用流水线后的效率提升度,即比不使用流水线快多少倍

3. 中断原理

考点分析:中断源、中断向量等概念、中断原理流程图


  • 中断:指CPU正常运行时,由于程序的预先安排或内外部事件,引起CPU中断正在运行的程序,转到发生中断事件程序中
  • 中断源:引起程序中断的事件
  • 中断向量:中断源的识别标志,中断服务程序的入口地址
  • 中断向量表:按照中断类型号从小到大的顺序存储对应的中断向量,总共存储256个
  • 中断响应:CPU在执行当前指令的最后一个时钟周期去查询有无中断请求信号
  • 关中断:保护和恢复现场时需要关闭中断,避免堆栈错误
  • 保护断点:保存程序当前执行的位置
  • 保护现场:保存程序当前断点执行所需的寄存器及相关数据
  • 中断服务程序:识别中断源,获取到中断向量,就能进入中断服务程序,开始处理中断
  • 中断返回:返回中断前的断点,继续执行原来的程序
    计算机指令和中断_计算机指令_03