832 字
4 分钟
CU

硬布线控制器#

CU发出的微命令是操作码,标志寄存器PSW与节拍的函数

C=f(opcode,tick,FR)\vec{C} = f(opcode,tick,FR)

控制信号先用关于操作码,标志与节拍的逻辑式表示,化简后用硬件电路实现

微程序控制器#

引入了一个指令解释层。采用微程序设计的cpu实际上由三部分构成。前端接受cisc风格的指令,中端把前端的指令用硬件解释成risc风格的微程序,再把risc微程序交给后端执行。

概念#

  • 程序
  • 微程序 一条指令对应一段微程序,一段微程序是由若干个微指令构成
  • 微周期 执行一条微指令的时间,通常为一个时钟周期
  • 微指令 微命令 微操作 微指令译码得到微命令,微命令发送给执行部件,执行部件做出微操作

结构#

Pasted image 20240819154855

  • 控制存储器CM 存放微程序,在CU内部,由ROM实现
  • uPC CMAR 类比PC与MAR
  • 地址译码:处理微地址,转化为CM控制信号
  • CMDR(uIR):存储从CM中取出的微指令,位数与微指令字长相等
  • 微地址形成部件:通过IR中指定的操作码确定该指令对应的微指令序列的首微地址
  • 工作流程
run() {
	loop {
		fetch instr
		decode instr
		call op // 根据IR中指定的操作码,跳转到对应微程序的入口地址
		check interrupt
	}
}

opXXX() {
	// 根据指令功能执行相应的微代码
	ret // 跳转到主循环
}

指令格式#

垂直型#

类似于指令格式中介绍的格式,都是由操作码和操作数构成的

水平型#

Pasted image 20240819155651 由操作控制与顺序控制两部分构成,操作控制形成微命令,顺序控制决定微程序的控制流

操作控制部分的编码格式#

讨论水平型微指令中操作控制部分如何编码表示微命令

  • 直接编码法 操作控制部分每一位对应一个微命令
  • 字段直接编码法
    • 把操作控制分成若干个字段,把互相互斥的微命令编码在同一个字段里,不同字段的微命令之间是相容的
    • 一个n位的字段可以表示2n12^n-1个互斥的微命令(需要有一个状态表示都不发出任何微命令,如果需要的话)
  • 字段间间接编码法 一个字段的内容需要另外一个字段的内容来解释

微指令的地址形成方式#

讨论水平型微指令的顺序控制部分怎么决定微程序的控制流,类比程序的控制流

  • 上电复位让uPC指向取值周期的第一条微指令的地址。类比cpu上电复位
  • 顺序执行 类似程序的顺序执行
  • 跳转
    • 直接跳转 顺序控制部分指出下一条指令的地址也叫断定方式
    • 间接跳转 依据机器指令的操作码得到微程序的入口地址 类比于间接跳转
    • 分支 根据测试条件来决定是否跳转到目标地址