运算器部件通过数据总线与内存储器、输入设备和输出设备传送数据
输入设备和输出设备通过接口电路与总线相连接
内存储器、输入设备和输出设备从地址总线接收地址信息,从控制总线得到控制信号,通过数据总线与其他部件传送数据
控制器部件从数据总线接收指令信息从运算器部件接收指令转移地址,送出指令地址到地址总线,还要向系统中的部件提供它们运行所需要的控制信号控制信号图例
CU的输入:
(1) 指令寄存器
OP (IR)->CU控制信号的产生与操作码有关
(2) 时钟:
一个时钟脉冲发一个操作命令或一组需要同时执行的操作命令
(3) 标志:
如条件转移指令,根据相应的标志位决定下一步操作
(4) 外来信号:
中断请求信号INTR
总线请求信号HRO
CU输出:
(1) CPU 内部的控制信号
寄存器之间的数据传输、PC的修改、控制ALU进行相应的运算
(2) ))
到存储器:访存控制信号MREO、读命令RD、写命令WR
到I/O设备:访问I/O设备的控制信号IO
中断响应信号INTA、总线响应信号HLDA
硬布线控制器
硬布线控制器就是采用逻辑电路设计控制器
硬布线设计步骤
1.分析每个阶段的微操作序列
2.选择CPU的控制方式
3.安排微操作时序
4.组合电路设计
CPU控制方式
CPU控制方式 | 特点 |
---|---|
同步控制方式 | 整个系统所有的控制信号均来自一个统一的时钟信号。同步控制方式的优点是控制电路简单,缺点是运行速度慢 |
异步控制方式 | 异步控制方式不存在基准时标信号。各部件按自身固有的速度工作,通过应答方式进行联络。异步控制方式的优点是运行速度快,缺点是控制电路比较复杂 |
联合控制方式 | 对各种不同的指令的微操作实行大部分采用同步控制、小部分采用异步控制的办法。 |
设计骤
1.分析每个阶段的微操作序列
2.选择CPU的控制方式(同步控制方式,一个机器周期内安排3个节拍)
3.安排微操作时序
4.电路设计
安排微操作时序
原则一:微操作的先后顺序不得随意更改
原则二:被控对象不同的微操作尽量安排在个节拍内完成
原则三:占用时间较短的微操作尽量安排在节拍内完成并允许有先后顺序
[概念]
取指阶段
pnuuzz
T0 (1)PC->MAR
T0 (2)1->R
T1 (3) M(MAR)->MDR ? (3)在(1)之后
T1 (4)(PC)+1->PC ? (4)(1)后
T2 (5) MDR->IR ? (5)在(3)之后
T2 (6) OP(IR)->ID ? (6)在(5)之后
安排微操作时序
原则一:微操作的先后顺序不得随意更改
原则二:被控对象不同的微操作尽量安排在一
原则三:占用时间较短的微操作尽量安排在个节拍内完成一个节拍内完成并允许有先后顺序
析指阶段
T0 (1) Ad(IR)->MAR
T0 (2) 1->R
T1 (3) M(MAR)->MDR
T2 (4) MDR->ACC
安排微操作时序
原则一:微操作的先后顺序不得随意更改
原则二:被控对象不同的微操作尽量安排在个节拍内完成
原则三:占用时间较短的微操作尽量安排在节拍内完成并允许有先后顺序
中断阶段
T0 (1)a->MAR
T0 (2) 1->W
T1 (3) 0->EINT 硬件关中断
T2 (4)(PC)->MDR
T2 (5) MDR->M(MAR)
T2 (6) 中断向量地址->PC
硬布线组合电路设计
(1)列出操作时间表
(2)写出微操作命令的最简表达式
(3)画出逻辑图
M(MAR)->MDR
=
F
E
?
T
1
,
+
I
N
D
?
T
1
(
A
D
D
+
S
T
A
+
L
D
A
+
J
M
P
+
B
A
N
)
+
E
X
?
T
1
(
A
D
D
+
L
D
A
)
=FE·T_1,+IND·T_1(ADD+STA+LDA+JMP+BAN)+EX·T_1(ADD+LDA)
=FE?T1?,+IND?T1?(ADD+STA+LDA+JMP+BAN)+EX?T1?(ADD+LDA)
=
T
1
{
F
E
+
I
N
D
(
A
D
D
+
S
T
A
+
L
D
A
+
J
M
P
+
B
A
N
)
+
E
X
(
A
D
D
+
L
D
A
)
}
=T_1\{FE+IND(ADD+STA+LDA+JMP+BAN)+EX(ADD+LDA)\}
=T1?{FE+IND(ADD+STA+LDA+JMP+BAN)+EX(ADD+LDA)}
微程序控制器
微程序控制器采用存储逻辑实现,也就是把微操作信号代码化,使每条机器指令转化成为一段微程序并存入一个专门的存储器 (控制存储器) 中,微操作控制信号由微指令产生。
概念
微命令是微操作的控制信号
微操作是微命令的执行过程
微指令是若干微命令的集合
执行一条微指令的时间叫做微周期
一条指令对应一个微程序。
取值 | 析址 | 析址 | 析址 |
---|---|---|---|
微指令123... | 微指令123... | 微指令123... |
取指阶段:
默认是公共的,故如果某指令系统中有n条机器指令,则CM中微程序的个数至少是n+1个
取指阶段,析指阶段,中断阶段不一定是公共的:
但是可以做成公共的,故如果这台计算机指令系统中有n条机器指令,则CM中微程序的个数至少是n+3个
微指令格式
操作控制 | 顺序控制 |
---|
uOP(微操作码) | 目的地址 | 源地址 |
---|
1 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 下地址 |
---|---|---|---|---|---|---|---|---|
操作控制 |
因此,当某字段的长度为3位时,最多只能表示7个互斥的微命令,通常用000表示不操作。
优点 : 可以缩短微指令字长
缺点: 要通过译码电路后再发出微命令,因此比直接编码方式慢
操作控制字段 | 转移方式 | 转移地址 |
---|
设计步骤:
取指周期设计
取指周期-硬布线控制器的节拍安排 | 取指周期-微程序控制器的节拍安排 |
---|---|
T0 PC->MAR | T0 PC->MAR |
T0 1->R | T0 1->R |
T1 M(MAR)->MDR | T1 M(MAR)->MDR |
T1 (PC)+1->PC | T1 (PC)+1->PC |
T2 MDR->IR | T2 MDR->IR |
T2 OP(IR)->ID | T2 OP(IR)->微地址形成部件 |
取指周期设计
取指周期-微程序控制器的节拍安排
T0 PC-> MAR
T0 1->R
T1 M(MAR)->MDR
T1 (PC)+1->PC
T2 MDR->IR
T2 OP(IR)->微地址形成部件
需考虑如何读出这3条微指令,以及如何转入下一周期
T0 PC->MAR
T0 1->R
T1 Ad (CMDR)-> CMAR
T2 M(MAR)->MDR
T2 (PC)+1->PC
T3 Ad (CMDR)-> CMAR
T4 MDR-> IR
T4 OP(IR)->微地址形成部件
T5 OP(IR)-> CMAR
a.取指周期: Ad(CMDR)- >CMAR ? OP(IR)->CMAR
b.执行周期: Ad(CMDR)->CMAR
3. 确定微指令格式
根据微操作个数决定采用何种编码方式,以确定微指令的操作控制字段的位数。由微指令数确定微指令的顺序控制字段的位数。
最后按操作控制字段位数和顺序控制字段位数就可确定微指令字长。
4. 编写微指令码点
根据操作控制字段每一位代表的微操作命令,编写每一条微指令的码点
微程序控制器 | 硬布线控制器 | |
---|---|---|
工作原理 | 微操作控制信号以微程序的形式存放在控制存储器中,执行指令时读出即可 | 微操作控制信号由组合逻辑电路根据当前的指令码状态和时序,即时产生 |
执行速度 | 慢 | 快 |
规整性 | 较规整 | 烦琐,不规整 |
应用场合 | CISC CPU | RISC CPU |
易扩充性 | 易扩充修改 | 困难 |
注意区分以下寄存器 :