目录
一、微程序控制器的原理
1.模仿高级语言思想到微程序:
首先我们来看高级语言转换到汇编语言,可以知道高级语言是可以被翻译成一条条的汇编指令序列的。
每条指令对应不同的机器周期,不同的机器周期对应着不同的微操作,CU就是发出微命令(每个微命令都对应一个微指令)来统筹CPU内部的执行工作的。
基于高级语言的思想,我们可以将多个微操作整合成一个微指令,而多个微指令整合成一个微程序,这个微程序就负责完成每条指令的执行。
其中的关系如下图示:
Tips:物理上,取指周期、执行周期看起来像是两个微程序但逻辑上应该把它们看作一个整体。因此,“一条指令对应一个微程序”的说法是正确的
取指,间址,执行,中断四个微程序段应该看作一个微程序。
则指令系统中有N条机器指令,CM中就有N个微程序,有N+1个微程序段。
2.采用存储程序思想到CU内构造:
采用“存储程序”的思想,CPU出厂前将所有指令的“微程序存入“控制器存储器CM”中
模仿CPU的取指执行的过程,在CU内部进行构造 :
微地址形成部件 | 产生初始微地址和后继微地址,以保证微指令的连续执行。 |
顺序逻辑 | 标志:根据指令地址码的寻址特征位判断是否要跳过间址周期 |
CLK:根据中断信号判断是否进入中断周期 | |
CMAR | 别名:μPC,微地址寄存器,接收微地址形成部件送来的微地址,为在CM中读取微指令作准备。 |
地址译码 | 将地址码转化为存储单元控制信号。 |
控制存储器CM | 用于存放各指令对应的微程序,控制存储器可用只读存储器ROM构成 |
CMDR | 别名:μIR,用于存放从CM中取出的微指令,它的位数同微指令字长相等。 |
3.微程序执行过程:
1 | CPU中的IR将指令的OP(操作码)部分送入CU |
2 | CU中的微地址形成部件接收并产生初始微地址。 |
3 | 微地址形成部件将产生的初始微地址送入顺序逻辑判断,结合PSW和CLK判断是否要进行间址或中断。 |
4 | 顺序逻辑判断后的地址送入CMAR |
5 | CMAR将地址送入地址译码器 |
6 | 地址译码器处理后的地址送入控制存储器CM |
7 | 控制存储器CM将微指令送入CMDR |
8 | CMDR将微指令的操作控制部分送出CU,CU以此发送控制信号 |
9 | CMDR将微指令的顺序控制部分送微地址形成部件 |
10 | 微地址形成部件产生下一条微指令的地址。 |
∞ | 至此,循环往复就完成了微程序的执行。 |
二、微指令的设计
微指令的具体格式应该怎么设计?
如何根据微指令发出相应的微命令?
微命令与微操作一一对应,一个微命令对应一根输出线
有的微命令可以并行执行,因此一条微指令可以包含多个微命令
1.前置概念:
相容性微命令:
可以并行完成。
互斥性微命令:
不允许并行完成