控制单元设计的两种主要方法包括组合逻辑设计与微程序设计。
1. 组合逻辑设计
组合逻辑
1.1 组合逻辑控制单元框图
CU 外特性:
节拍信号:
一个机器周期包含多少节拍与这个机器周期中需要产生的
- 控制信号的数量以及
- 控制信号的复杂程度、
- 控制信号之间是否能够并行 有直接关系。
1.2 微操作的节拍安排
采用 同步控制方式
:
一个 机器周期 内有 3个节拍(时钟周期):
CPU 内部结构采用非总线方式;
1.2.1 安排微操作时序的原则
原则一 : 微操作的 先后顺序不得 随意 更改
原则二 :被控对象不同 的微操作尽量安排在 一个节拍 内完成
原则三: 占用时间较短的微操作尽量 安排在 一个节拍 内完成并允许有先后顺序
1.2.2. 取指周期微操作的 节拍安排
安排微操作时序的原则包括:
-
微操作的先后顺序不得随意更改
-
被控对象不同的微操作尽量安排在一个节拍内完成
-
占用时间较短的微操作尽量安排在一个节拍内完成并允许有先后顺序
节拍时刻 | 执行操作 |
---|---|
T_0 | pc -> MAR |
1 -> R | |
T_1 | M(MAR) -> MDR |
pc +1 -> pc | |
T_2 | MDR -> IR |
OP(IR) -> ID |
1.2.3. 间址周期 微操作的 节拍安排
节拍时刻 | 执行操作 |
---|---|
T_0 | Ad(IR) -> MAR |
1 -> R | |
T_1 | M(MAR) -> MDR |
T_2 | MDR -> Ad(IR) |
1.2.4. 执行周期 微操作的 节拍安排
执行周期不同的指令所做的微操作是不一样的.
CLA: 对累加器进行清零。
COM: 取反,将acc的内容按位进行取反,再把结果存放到acc或者是累加器中。
SHR:右移;
CSL: 循环左移;
STP: 停机指令
ADD :加法指令;
STA: 存数操作;
LDA: 取数指令,将内存单元中的数据取出来,送入到cpu 中去。
JMP: 将指令中的地址码部分送给pc;
BAN: 分支指令; 如果上条指令的计算结果小于零,则跳转到该指令指向的内存单元地址; 如果大于零,则按顺序执行指令。
指令 | 节拍时刻 | 微操作 |
---|---|---|
CLA | T_0 | |
T_1 | ||
T_2 | 0 -->AC | |
COM | T_0 | |
T_1 | ||
T_2 | A C − AC^- AC− -->AC | |
SHR | T_0 | |
T_1 | ||
T_2 | L(AC) --> R(AC), A C 0 AC_0 AC0 --> A C 0 AC_0 AC0 | |
CSL | T_0 | |
T_1 | ||
T_2 | R(AC) --> L(AC), A C 0 AC_0 AC0 --> A C n AC_n ACn | |
STP | T_ 0 | |
T_1 | ||
T_2 | 0–>G | |
ADD X | T_0 | Ad(IR) --> MAR , 1—> R |
T_1 | MAR --> MDR | |
T_2 | (AC) + (MDR) --> AC | |
STA X | T_0 | Ad(IR) --> MAR , 1—> W |
T_1 | AC -> MDR | |
T_2 | MDR --> M(MAR) | |
LDA X | T_0 | Ad(IR) --> MAR , 1—> R |
T_ 1 | MAR --> MDR | |
T_2 | MDR --> AC | |
JMP X | T_0 | |
T_1 | ||
T_2 | Ad(IR) --> PC | |
BAN X | T_0 | |
T_1 | ||
T_2 | A 0 A_0 A0*Ad(IR) + A 0 A_0 A0*PC --> PC |
M(MAR)–>MDR 指将MAR所指内存中的数据读到MDR当中。
1.2.5. 中断周期 微操作的 节拍安排
保存断点: 程序断点保存在给定的内存单元中。
形成中断程序的入口地址;
关中断,准备保护现场;
节拍时刻 | 微操作 | 微操作 |
---|---|---|
T_0 | 0–> MAR | 1–>W 硬件关中断 |
T_1 | pc --> MDR | |
T_2 | MDR --> MAR | 向量地址 --> pc |
中断隐指令:
并非一条指令,而是指的硬件需要实现的操作。 完成了一条指令周期中,中断周期这个机器周期中完成的若干个操作
1.3 组合逻辑设计步骤
组合逻辑设计控制单元的设计步骤是
-
- 先列出操作时间表,
取指, 间指, 执行;
- 先列出操作时间表,
IND 是间址周期的标志
:
IND工作周期的标志设置为1表示进入到间址周期。
-
- 再写出最简的逻辑表达式,
-
- 最后用门电路等器件实现。
现代处理器中,将处理单元分成两类,
- 整型数处理单元,专门做整数操作,做控制类操作, 整数型单元就是采用这个硬件逻辑电路实现的。
- FPU, 浮点运算单元,浮点数的运算。
- 组合逻辑实现的特点是;
- 思路清晰, 简单明了;
- 电路庞杂,调试困难,修改困难;、
- 速度快,适合精简指令集(RISC)