From 4632fd1c8f4dbbaf48a6552401375e6e352d4752 Mon Sep 17 00:00:00 2001 From: Didnelpsun <2675350965@qq.com> Date: Fri, 28 Oct 2022 22:53:14 +0800 Subject: [PATCH] Update 4-central-processing-unit.md --- .../4-central-processing-unit.md | 92 ++++++++++--------- 1 file changed, 51 insertions(+), 41 deletions(-) diff --git a/Computer-Organization/4-central-processing-unit.md b/Computer-Organization/4-central-processing-unit.md index 21677e2..f008870 100644 --- a/Computer-Organization/4-central-processing-unit.md +++ b/Computer-Organization/4-central-processing-unit.md @@ -367,7 +367,7 @@ $1$、$2$、$3$都在$T0$,而$456$依次为$T1$、$T2$、$T3$。 ### 微程序 -事先把微操作控制信号存储在一个专门的存储器(控制存储器)中,将每一条机器指令编写成一个微程序,这些微程序可以存到一个控制存储器中,用寻址用户程序机器指令的办法来寻址每个微程序中的微指令。 +事先把微操作控制信号存储控制存储器中,将每一条机器指令编写成一个微程序,这些微程序可以存到一个控制存储器中,用寻址用户程序机器指令的办法来寻址每个微程序中的微指令。 + 在微程序控制器中,控制部件向执行部件发出的控制信号称为微命令。 + 微命令执行的操作称为微操作。 @@ -391,54 +391,35 @@ $1$、$2$、$3$都在$T0$,而$456$依次为$T1$、$T2$、$T3$。 #### 微程序控制器结构 -+ 控制存储器$CM$:用于存放各指令对应的微程序,控制存储器可用只读存储器$ROM$构成。 -+ 微地址寄存器$CMAR$:接收微地址形成部件送来的微地址,为在$CM$中读取微指令作准备。 +存储器: + ++ 主存储器用于存放程序和数据,在$CPU$外部,由$RAM$实现。 ++ 控制存储器$CM$用于存放微程序,在$CPU$内部,由$ROM$实现。 + +寄存器: + + 地址译码器:将地址码转换微存储单元控制信号。 ++ 微地址寄存器$CMAR$:接收微地址形成部件送来的微地址,为在$CM$中读取微指令作准备。 + 微指令寄存器$CMDR$:用于存放从$CM$中取出的微指令,它的位数同微指令字长相等。 + 微地址形成部件:产生初始微地址和后继微地址,以保证微指令的连续执行。 + 顺序逻辑单元:为了保证指令联系执行,控制形成下一条微指令,拥有一个标志位标识顺序执行还是跳转和一个时钟信号$CLK$。 -+ 控制流程: - 1. 机器指令操作码$OP$送到微地址形成部件形成微地址。 - 2. 将初始微地址送到顺序逻辑单元,判断顺序执行还是跳转。 - 3. 送到$CMAR$保存微地址。 - 4. 将微地址从$CMAR$送到地址译码器中译码。 - 5. 形成控制单元后送到$CM$中取出微指令。 - 6. 将微指令送到$CMDR$中。 - 7. 根据微指令中的下一条指令地址送到顺序逻辑单元,判断顺序执行还是跳转。 - 8. 返回结果后$CMDR$送到$CPU$内部和系统总线,产生控制信号。 -+ 微程序个数: - + 默认一条机器指令对应一个微程序。 - + 取指周期微程序默认是公共的(即单独拿出来公用),故如果某指令系统中有$n$条机器指令,则$CM$中微程序的个数至少是$n+1$个(加一个取指的公共微程序)。 - + 间址周期微程序和中断周期微程序不一定是公共的。若公共的,如果这台计算机指令系统中有$n$条机滤指令,则$CM$中微程序的个数是$n+3$个。若题目中没有提到间址,就不考虑间址,所以是$n+2$个。 -#### 微指令格式 +控制流程: -1. 水平型微指令: - + 一次能定义并执行多个并行操作。 - + 基本格式是:操作控制+判别测试+后继地址。 - + 优点:微程序短,执行速度快。 - + 缺点:微指令长,编写微程序较麻烦。 -2. 垂直型微指令: - + 类似机器指令操作码的方式,由微操作码字段规定微指令的功能。一条指令对应一个操作。 - + 基本格式:微操作码+目的地址+源地址。 - + 优点:微指令短、简单、规整,便于编写微程序。 - + 缺点:微程序长,执行速度慢,工作效率低。 -3. 混合型微指令: - + 在垂直型的基础上增加一些不太复杂的并行操作。 - + 微指令较短,仍便于编写。 - + 微程序也不长,执行速度加快。 +1. 机器指令操作码$OP$送到微地址形成部件形成微地址。 +2. 将初始微地址送到顺序逻辑单元,判断顺序执行还是跳转。 +3. 送到$CMAR$保存微地址。 +4. 将微地址从$CMAR$送到地址译码器中译码。 +5. 形成控制单元后送到$CM$中取出微指令。 +6. 将微指令送到$CMDR$中。 +7. 根据微指令中的下一条指令地址送到顺序逻辑单元,判断顺序执行还是跳转。 +8. 返回结果后$CMDR$送到$CPU$内部和系统总线,产生控制信号。 -水平型微指令的求法。 +微程序个数: -+ 操作控制: - + 若是直接编码方式,则微命令数就是操作控制字段位数。 - + 若是字段直接编码方式,则会分$n$个组,每组$n_i$种状态,则总位数就是$\sum\limits_{i=1}^n\log_2(n_i+1)$(全$0$空出)。如$2,3,4$,则一共需要$2+2+3=7$位。 -+ 判别测试: - + 直接编码方式,有几个外部条件,就取几位。 - + 如果是字段直接编码,有$N$个外部条件就有$n$位,$2^n\geqslant N+1$,加$1$是因为还有无条件转移的情况。 -+ 后继地址: - + 求出前面两项后,直接根据微指令字长减去。 - + 根据$CM$的容量的前一项确认,$2^N\times M$容量就是$N$位。 ++ 默认一条机器指令对应一个微程序。 ++ 取指周期微程序默认是公共的(即单独拿出来公用),故如果某指令系统中有$n$条机器指令,则$CM$中微程序的个数至少是$n+1$个(加一个取指的公共微程序)。 ++ 间址周期微程序和中断周期微程序不一定是公共的。若公共的,如果这台计算机指令系统中有$n$条机器指令,则$CM$中微程序的个数是$n+3$个。若题目中没有提到间址,就不考虑间址,所以是$n+2$个。 #### 微指令编码 @@ -476,6 +457,35 @@ $1$、$2$、$3$都在$T0$,而$456$依次为$T1$、$T2$、$T3$。 3. 转移地址:指明转移成功后的去向。 6. 通过测试网络:一个测试网络产生。 +#### 微指令格式 + +1. 水平型微指令: + + 一次能定义并执行多个并行操作。 + + 基本格式是:操作控制+判别测试+后继地址。 + + 优点:微程序短,执行速度快。 + + 缺点:微指令长,编写微程序较麻烦。 +2. 垂直型微指令: + + 类似机器指令操作码的方式,由微操作码字段规定微指令的功能。一条指令对应一个操作。 + + 基本格式:微操作码+目的地址+源地址。 + + 优点:微指令短、简单、规整,便于编写微程序。 + + 缺点:微程序长,执行速度慢,工作效率低。 +3. 混合型微指令: + + 在垂直型的基础上增加一些不太复杂的并行操作。 + + 微指令较短,仍便于编写。 + + 微程序也不长,执行速度加快。 + +水平型微指令的求法。 + ++ 操作控制: + + 若是直接编码方式,则微命令数就是操作控制字段位数。 + + 若是字段直接编码方式,则会分$n$个组,每组$n_i$种状态,则总位数就是$\sum\limits_{i=1}^n\log_2(n_i+1)$(全$0$空出)。如$2,3,4$,则一共需要$2+2+3=7$位。 ++ 判别测试: + + 直接编码方式,有几个外部条件,就取几位。 + + 如果是字段直接编码,有$N$个外部条件就有$n$位,$2^n\geqslant N+1$,加$1$是因为还有无条件转移的情况。 ++ 后继地址: + + 求出前面两项后,直接根据微指令字长减去。 + + 根据$CM$的容量的前一项确认,$2^N\times M$容量就是$N$位。 + #### 微程序控制单元设计 设计步骤: