• 硬电路连接需要 的复杂度,虽然快但是复杂
  • 可以用总线改进
  • 也可以用软件的方式进行拓展

采用程序设计的方法,编制每个指令对应的微程序

每一个微程序由若干微指令组成,一个微指令有 n 个微命令

有微程序的 PC,有额外的转移控制信号。在顺序执行的时候,pc 自增,转移执行的时候,根据转移控制信号来控制 PC 的移动

  • 水平型微指令:相似的微指令放在一条微指令中,比较复杂
  • 垂直型微指令:一条微指令只控制一两个微命令,简单,但是编码要长

是产生的微指令,可以不译码,也可以译码转化成更一般的控制信号


  • 来自于 CPU 内部的,可以终止当前运行的命令的,称为异常
  • 来自于 CPU 外部的,不能终止当前指令,而要等到当前命令运行完之后改变之后的运行逻辑的,“请求中断”的信号,称为中断

异常的处理是没有放在状态单元之间发生的,所以异常的处理更复杂,要求处理速度经可能的快

内部的异常按处理方式分类:

  1. 故障:执行指令引起的异常事件。可恢复的、不可恢复的
  2. 自陷:预先安排的事件,如单步追踪
  3. 终止:硬故障事件,调出中断服务程序重启系统

检测到异常的时候,进行以下处理:

  1. 关闭中断:使处理器处于禁止中断的状态
  2. 保护现场:程序状态字 PSW、放在 PSWR、堆栈上

识别:硬件识别方式(8086)和软件识别(MIPS)

  • 软件识别:有一个统一的中断处理程序,按顺序查询;查看原因寄存器
  • 硬件:用专门的硬件查询电路按优先级顺序识别异常,得到“中断类型号”,到中断向量表读取对应的中断服务程序的入口地址:用 8259 (A) 产生

中断向量表(其实是混用的),根据中断号找到对应的 cs:ip

MIPS : EPC 存放断点(或者当前异常触发地址 PC+4 (中断)or -4(异常))、Cause 记录异常原因;同时需要加入两个寄存器的写使能

或者直接转终止