本系列文章是学习了网课《哈尔滨工业大学–计算机组成原理》之后,用以梳理思路而整理的听课笔记及相关思维拓展。本文涉及到的观点均为个人观点,如有不同意见,欢迎在评论区讨论。
目录
- 控制单元的外特性
- 控制信号举例-
- 多级时序系统
- 控制方式
控制单元的外特性
输入信号
1、时钟
控制单元控制硬件有两点需要注意:1,每个操作都需要占用时间,2、各个操作有先后顺序。
为了让控制单元按照一定先后顺序、一定的节奏发出各个控制信号,控制单元必须受时钟控制,每一个时钟脉冲使控制信号发送一个操作命令,或发送一组操作命令。
2、指令寄存器
不同指令在执行周期内完成不同的操作,指令的操作码字段是控制信号的输入信号,与时钟配合产生不同的控制信号。
3、标志
控制单元有时需要根据CPU当前的状态产生控制信号。
4、来自系统总线的控制信号
中断请求、DMA请求等
输出信号
1、CPU内的控制信号,用于实现CPU内的寄存器之间的传送和控制ALU实现不同的操作。
2、送至系统总线的信号,如,命令主存或I/O读写、中断响应等。
控制信号举例-
1、不采用CPU内部总线的方式,以加法指令“ADD @X”为例。
1)取指周期
控制信号C0有效,打开PC送往MAR的控制门。
控制信号C1有效,打开MAR送往地址总线的输出门。
通过控制总线向主存发读命令。
C2有效,打开数据总线送至MDR的输入门。
C3有效,打开MDR和IR之间的控制门,至此指令送至IR。
C4有效,打开指令操作码送至CU的输出门。CU在操作码和时钟的控制下,产生各种控制信号。
使PC内容加1。
2)间址周期
C5有效,打开MDR和MAR之间的控制门,将指令的形式地址送至MAR。
C1有效,打开MAR送往地址总线的输出门。
通过控制总线向主存发读命令。
C2有效,打开数据总线送至MDR的输入门,至此,将有效地址存入MDR。
C3有效,打开MDR和IR之间的控制门,将有效地址送至IR的地址码字段。
3)执行周期
C5有效,打开MDR和MAR 之间的控制门,将有效地址送至MAR
C1有效,打开MAR送往地址总线的输出门
通过控制总线向主存发读命令
C2有效,打开数据总线送至MDR的输入门,将操作数存入MDR
C6、C7同时有效,打开AC和MDR通往ALU的控制门
通过CPU内部控制总线对ALU发ADD控制信号,完成AC的内容和MDR的内容相加
C8有效,打开ALU通往AC的控制门,至此将求和结果存入AC
2、采用CPU内部总线的方式
图中每一个小圈处都有一个控制信号,它控制寄存器到总线或总线到寄存器之间的传送。例如, I R i IR_i IRi示控制从内部总线到指令寄存器的输入控制门; P C o PC_o PCo表示控制从程序计数器到内部总线的输出控制门。下标为i示输入控制,下标为o表示输出控制,以此类推。
多了两个寄存器Y和Z,因为ALU需要保证运算中两个输入端不变:一个输入来自Y,另一个来自总线,Y的存在使得CPU可以实现任意两个寄存器之间的算逻运算,先送一个数到Y,另一个数通过总线。此外ALU的输出不能直接输出到总线,因为总线和ALU输入相连,需要寄存器Z暂存运算结果,再送入执行的目标。
还是以ADD @X为例
1)取指周期
P C o PC_o PCo和 M A R i MAR_i MARi控制有效,PC经内部总线送至MAR,PC->MAR
通过控制总线向主存发读指令,1->R
存储器通过数据总线将MAR所指单元的内容送至MDR
M D R o MDR_o MDRo和 I R i IR_i IRi控制有效,将MDR的内容送至IR,MDR->IR,指令送至IR,操作码字段开始控制CU
PC内容+1
2)间址周期
M D R o MDR_o MDRo和 M A R i MAR_i MARi有效,将指令的形式地址经内部总线送至MAR,即MDR->MAR
通过控制总线向主存发读命令,1->R
存储器通过数据总线将MAR所指单元内容送至MDR
M D R o MDR_o MDRo和 M A R i MAR_i MARi有效,将MDR中的有效地址送至IR的地址码字段,即MDR->Ad(IR)
3)执行周期
M D R o MDR_o MDRo和 M A R i MAR_i MARi有效,将有效地址经内部总线送至MAR,MDR->MAR
通过控制总线向主存发读命令,1->R
存储器通过数据总线将MAR所指单元的内容送至MDR
M D R o MDR_o MDRo和 Y i Y_i Yi有效,将操作数送至Y,MDR->Y
A C o AC_o ACo和 A L U i ALU_i ALUi有效,同时CU向ALU发“ADD”控制信号,使AC的内容和Y的内容相加,结果送寄存器Z,(AC)+ (Y)-> Z
Z o Z_o Zo和 A C i AC_i ACi有效,将运算结果存入AC,Z->AC
多级时序系统
1、机器周期
可以看作所有指令执行过程中的一个基准时间,想要找到一个基准时间,在这个基准时间内,所有指令的操作都能结束。
但是,若将这个基准时间定为机器周期,并不合理,因为只有以完成复杂指令功能所需的时间为基准,才能保证所有指令在此时间内完成全部操作,这显然不利于简单指令。
机器内的各种操作可以分为对CPU内部的操作和对主存的操作两大类,因为CPU内部操作速度快,CPU访存时间长,所以将对存储器访问的时间定为基准时间比较合理,这个基准时间就是机器周期。
2、时钟周期(节拍、状态)
在一个机器周期里可以完成若干个微操作,每个微操作都需要一定的时间,可以用时钟信号来控制产生每一个微操作命令。图中显示每个节拍的宽度正好对应一个时钟周期。
3、多级时序系统
一个指令周期包含若干个机器周期,一个机器周期又包含若干个时钟周期,每个指令周期内的机器周期可以不等,每个机器周期内的节拍数也可以不等。机器周期、节拍构成了多级时序系统。
控制方式
上面的多级时序系统中,可以看到,不同的指令,其中包含的机器周期不同,机器周期中可能的节拍也不同。那么该如何控制CU产生这些微操作序列呢?
常见的CU控制方式有:同步控制、异步控制、联合控制和人工控制四种。
1、同步控制方式
任何一条指令或指令中任何一个微操作的执行都是事先确定的,并且都是受统一基准时标的时序信号所控制的方式。
同步控制中有三种方案:
1)采用定长的机器周期
像多级时序系统中说的,如果采用最长的存取周期作为机器周期,CPU效率会大大降低,因为简单指令执行的时间被拉长了。
2)采用不定长的机器周期
这种方案,每个机器周期内的节拍数可以不等,复杂指令通过延长机器周期或增加节拍的方法解决。
3)采用中央控制和局部控制相结合的方法
大部分指令安排在统一的、较短的机器周期内完成,称为中央控制;少数操作复杂的指令中的某些操作采用局部控制方式来完成。就是在中央控制的节拍中加入局部控制的节拍。
2、异步控制方式
上述同步控制,机器周期可能定长,节拍长度需要一直保持。异步通信不存在基准时标信号,采用应答方式,一个微操作执行完成之后,发出应答信号再进行下一步操作。
3、联合控制方式
同步和异步相结合。大部分采用同步方式,难以确定时间的指令,采用异步操作。
4、人工控制方式
为了调机和软件开发的需要,在机器面板或者内部设置一些开关或按键,来达到人为控制的目的。