第9章 控制单元的功能
9.1 微操作命令的分析
完成一条指令分4个工作周期:取指周期、间址周期、执行周期、中断周期。
一、取指周期
要想把指令从内存单元取出,就要执行下面的操作:PC(指令地址)->MAR->地址线,最后送到存储器。控制单元向存储器发出读命令,读出的数据通过数据总线送到MDR中,后送到IR当中。然后IR送到CU进行译码知道要做什么指令。然后对PC进行加1。
图1.1 取指周期
二、间址周期
首先将指令的形式地址(IR当中的地址码部分)送到MAR,再通过MAR送到再送到存储器的地址总线上,要实现这个操作,控制器要发出IR的地址码部分送到MAR的控制信号,然后CU向存储器发出读操作命令,存储器接收到命令和地址以后,读出指令的真实地址,然后传输给MDR。被取出的地址进而送到IR寄存器的地址码部分,这个时候地址码就是操作数的真实地址,就结束了。
图1.2 间址周期
三、执行周期
1.非访存指令
CLA | 清A | 0->ACC |
COM | 取反 | ACC’->ACC |
SHR | 算术右移 | L(ACC)-> R(ACC), ACC0->ACC0 |
CSL | 循环左移 | R(ACC)->L(ACC), ACC0->ACCn |
STP | 停机指令 | 0->G |
2.访存指令
(1)加法指令
操作命令 | 微操作步骤 |
ADD X
| Ad(IR)->MAR 1->R M(MAR)->MDR (ACC)+(MDR)->ACC |
(2)存数指令
操作命令 | 微操作步骤 |
STA X | Ad(IR)->MAR 1->W ACC->MDR MDR->M(MAR) |
(3)取数指令
操作命令 | 微操作步骤 |
LDA X | Ad ( IR )->MAR l->R M(MAR)->MDR MDR->ACC |
3.转移指令
(1)无条件转移指令
操作命令 | 微操作步骤 |
JMP X | Ad ( IR )->PC |
(2)条件转移指令(只举了一个例子)
操作命令 | 微操作步骤 |
BAN X(负则转) | \[{{A}_{0}}\cdot Ad(IR)+{{\bar{A}}_{0}}(PC)\to PC\] |
4.三类指令的指令周期
如图1.3所示。
图1.3 三类指令的指令周期
四、中断周期
保存断点的方法(以此为例分析):
程序断点存入“0”地址 | 程序断点进栈 |
“0”地址->MAR 1->W(控制器向存储单元发出写命令) PC->MDR(断点地址由PC保存到MDR中) MDR->M(MAR)(MDR数据写到MAR指向的地址) | (SP-1)->MAR 1->W(控制器向存储单元发出写命令) PC->MDR(断点地址由PC保存到MDR中) MDR->M(MAR)(MDR数据写到MAR指向的地址) |
中断识别程序入口地址M->PC(硬件向量法和软件查找法,这里以前者为例) | |
0->EINT(关中断) | 0->EINT(关中断) |
9.2 控制单元的功能
一、控制单元的外特性
如图2.1所示。
图2.1 控制单元的外特性
1.输入信号
(1)时钟
完成每个操作都需要占用一定的时间,各个操作是由先后顺序的。为了能够使控制单元按一定的先后顺序、一定的节奏发出各个控制信号,CU必须受时钟控制。一个时钟脉冲发一个操作命令或一组需同时执行的操作命令。
(2)指令寄存器
OP(IR)->CU:这个微指令代表一个译码操作。
保存了要执行的那条指令。现行指令的操作码决定了不同指令在执行周期所需完成的不同操作,故指令的操作码字段是控制单元的输入信号,它与时钟配合可产生不同的控制信号。
(3)标志
CU受标志控制
(4)外来信号
如 INTR(中断请求)、HRQ(总线请求)等。
2.输出信号
(1)CPU内部的各种控制信号
(2)送至控制总线的信号
例如访存控制信号、访IO/存储器的控制信号、读命令、写命令、中断响应信号、总线响应信号等。
二、控制信号举例
1.不采用CPU内部总线的方式
(1)取指周期
C0~C4均由CU产生。
①控制信号C0有效,打开PC送往MAR的控制门;
②控制信号C1有效,打开MAR送往地址总线的输出门;
③通过控制总线向主存发读命令;
④C2有效,打开数据总线送至MDR的输入门;
⑤C3有效,打开MDR和IR之间的控制们,至此指令送至IR;
⑥C4有效,打开指令操作码送至CU的输出门,CU在操作码和时钟的控制下,可产生各种控制信号;
⑦使PC内容加1。
图2.2 不采用CPU内部总线的方式(取指周期)
(2)间址周期
①C5有效,打开MDR和MAR之间的控制门(假设间址周期的时候,直接地址是从MDR送入MAR的),将指令的形式地址送入MAR;
②C1有效,打开MAR送往地址总线的输出门;
③通过控制总线向主存发读命令;
④C2有效,打开数据总线送至MDR的输入门,至此,有效地址存入MDR;
物C3有效,打开MDR和IR之间的控制门,将有效地址送至IR的地址码字段。
图2.3 不采用CPU内部总线的方式(间址周期)
(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.4 不采用CPU内部总线的方式(执行周期)
2.采用CPU内部总线方式
图2.5 采用CPU内部总线方式
图中每一个小圈处都有一个控制信号,它控制寄存器到总线或总线到寄存器的传送。例如IRi表示控制从内部总线到指令寄存器的输入控制门;PCo表示控制从程序计数器到内部总线的输出控制门。下标为i表示输入控制,下标为o表示输出控制。与图2.2~2.4相比,多了两个寄存器Y和Z,这是由于ALU是一个组合逻辑电路,在其运算过程中必须保持两个输入端不变,其中一个输入可以从Y寄存器中获得,另一个输入可以从内部总线上获得。当CPU内有多个通用寄存器时,由于设置了寄存器Y,可实现任意两个寄存器之间的算术/逻辑运算。此外,ALU的输出不能直接与内部总线相连,因为其输出又会通过总线反馈到ALU的输入,影响运算的正确性,故用寄存器Z暂存运算结果,再根据需要送至指定的目标。
下面依然以上面的命令分析控制单元发出的控制信号。
(1)取指周期
①PCo和MARi有效,完成PC经内部总线送至MAR的操作,即PC->MAR;
②通过控制总线向主存发出读命令,即1->R;
③存储器通过数据总线将MAR所指单元的内容(指令)送至MDR;
④MDRo和IRi有效,将MDR的内容送至IRi,即MDR->IR,至此,指令送至IR,其操作码字段开始控制CU;
⑤使PC内容加1。
(2)间址周期
①MDRo和MARi有效,将指令的形式地址经内部总线送至MAR,即MDR->MAR;
②通过控制总线向主存发出读命令,即1->R;
③存储器通过数据总线将MAR所指单元的内容(有效地址)送至MDR;
④MDRohe IRi有效,将MDR中的有效地址送至IR的地址码字段,即MDR->Ad(IR)。
(3)执行周期
①MDRo和MARi有效,将有效地址经内部总线送至MAR,即MDR->MAR;
②通过控制总线向主存发出读命令,即1->R;
③存储器通过数据总线将MAR所指单元的内容(操作数)送至MDR;
④MDRo和Yi有效,将操作数送至Y,即MDR->Y;
⑤ACo和ALUi有效,同时CU向ALU发“ADD”加控制信号,使AC的内容和Y的内容相加(Y的内容传送至ALU不必经过总线),结果送寄存器Z,即(AC)+(Y)->Z;
⑥Zo和ACi有效,将结果存入AC,即Z->AC。
三、多级时序系统
1.机器周期
机器周期指所有指令执行过程中的一个基准时间。机器周期取决于指令的功能和器件速度。确定机器周期时,通常要分析机器指令的执行步骤及每一步骤所需的时间。
基准时间的确定有两种方式:
①以完成最复杂指令功能的时间为准;
②以访问一次存储器(一般情况下最复杂的指令是这个指令)的时间为基准。
若指令字长=存储字长,则取指周期=机器周期。
2.时钟周期(节拍、状态)
一个机器周期内科完成多个微操作,每个微操作需一定的时间。将一个机器周期分成若干个时间相等的时间段(节拍、状态、时钟周期)。
时钟周期是控制计算机操作的最小单位时间。用时钟周期控制产生一个或几个微操作(一般是并行执行)命令。
如图2.6所示,它反映了机器周期、时钟周期和节拍的关系,一个机器周期由4个节拍T0、T1、T2、T3。
图2.6 机器周期、时钟周期和节拍的关系
一个指令周期包含若干个机器周期,一个机器周期又包含若干个时钟周期(节拍),每个指令周期内的机器周期数可以不相等,每个机器周期里面的节拍数也可以不相等。
3.多级时序系统
机器周期、节拍(状态)组成多级时序系统。一般来说,CPU的主频越快,机器的运行速度也越快。在机器周期所含时钟周期数相同的前提下,两机平均指令执行速度之比=两机主频之比。
机器速度不仅与主频有关,还与机器周期中所含时钟周期(主频的倒数)数以及指令周期中所含的机器周期数有关。
四、控制方式
产生不同微操作命令序列所用的时序控制方式
1.同步控制方式
任一微操作均由统一基准时标的时序信号控制。
(1)采用定长的机器周期:以最长的微操作序列和最复杂的微操作作为标准,机器周期内节拍数相同。显然这种方法对于较短指令来说会造成时间上的浪费。
(2)采用不定长的机器周期:机器周期内的节拍数可以不等。这种控制方式可以解决微操作执行时间不统一的问题。
(3)采用中央控制和局部控制相结合的方法:这种方案将机器的大部分指令安排在统一的、较短的机器周期内完成,称为中央控制,而将少数操作复杂的指令中的某些操作采用局部控制方式来完成。
局部控制的节拍宽度与中央控制的节拍宽度一致;将局部控制节拍作为中央控制中及其街拍的延续,插入到中央控制的执行周期内,使机器以同样的节奏工作,保证了局部控制和中央控制的同步。如图2.7所示。
图2.7 中央控制与局部控制结合的方法
2.异步控制方式
无基准时标信号,无固定的周期节拍和严格的时钟同步,采用应答方式。
3.联合控制方式
同步与异步相结合。对各种不同指令的微操作实行大部分统一、小部分区别对待的方法。
4.人工控制方式
(1)Reset键;
(2)连续和单条指令执行转换开关;
(3)符合停机开关。