控制单元的功能
- 控制单元的功能
- 微操作命令分析
- 取指周期
- 间址周期
- 执行周期
- 中断周期
- 控制单元的功能
- 控制单元的外特性
- 输入信号
- 输出信号
- 控制信号举例
- 不采用CPU内部总线的方式
- 取指周期
- 间址周期
- 执行周期
- 采用CPU内部总线的方式
- 取指周期
- 间址周期
- 执行周期
- 多级时序系统
- 机器周期
- 时钟周期
- 多级时序系统
- 机器速度和机器主频的关系
- 控制方式
大家好呀!我是小笙,本章我主要分享计算机组成原理的控制单元的功能知识,这也是计算机组成原理的最后一章节了,希望内容对你有所帮助!下一阶段我主要以分享软考相关的知识点!
控制单元的功能
微操作命令分析
完成一条指令分四个周期:取指周期、间址周期、执行周期、中端周期
取指周期
- 指令地址计算:CPU 根据程序计数器 PC 中的值计算下一条指令的地址。程序计数器存储着当前正在执行的指令的地址或者下一条要执行的指令的地址
- 访问内存:CPU根据计算得到的指令地址,向主存发送请求,读取下一条指令所在的内存单元
- 指令译码:CPU对从内存中读取的指令进行译码,确定指令的操作类型、操作数等信息
- 指令存储:将从内存中读取的指令存储到指令寄存器 IR 中,供接下来的执行阶段使用
间址周期
在间接寻址中,指令不直接提供操作数的地址,而是提供一个指向操作数地址的指针(IR 分析出的是操作数的地址)
执行周期
非访存指令
- 清除累加器指令 CLA (0 => A)
- 累加器取反指令 COM
- 算术右移一位指令 SHR(L(ACC) => R(ACC))
- 循环左移一位指令 CSL(R(ACC) => L(ACC))
- 停机指令STP(0 => G)
访存指令
- 加法指令 ADD X
- 将指令的地址码部分送至存储器地址寄存器(Ad(IR)→MAR)
- 向主存发读命令,启动主存作读操作(1→R)
- 将MAR(通过地址总线)所指的主存单元中的内容(操作数)经数据总线读至MDR内(M(MAR)→MDR)
- 给ALU发送加命令,将ACC的内容和MDR的内容相加,结果存于ACC((ACC)+(MDR)+ACC))
- 存数指令 STA X
- 将指令的地址码部分送至存储器地址寄存器(Ad(IR)→MAR)
- 向主存发写命令,启动主存作写操作(1→W)
- 将累加器内容送至MDR(ACC-→MDR)
- 将MDR的内容(通过数据总线)写入到MAR(通过地址总线)所指的主存单元中(MDR+M(MAR))
- 取数指令 LDA X
- 将指令的地址码部分送至存储器地址寄存器(Ad(IR)→MAR)
- 向主存发读命令,启动主存作读操作(1→R)
- 将MAR(通过地址总线)所指的主存单元中的内容(操作数)经数据总线读至MDR内(M(MAR)+MDR)
- 将MDR的内容送至ACC(MDR+ACC)
转移类指令
- 无条件转移指令 JMP X
- 条件转移指令 BAN X(负则转)
三类指令的指令周期
中断周期
-
保存断点
-
程序断点存入 “0” 地址
- 将特定地址 “0”送至存储器地址寄存器(0→MAR)
- 向主存发写命令,启动存储器作写操作 (1→W)
- 将PC的内容(程序断点)送至 MDR(PC→MDR)
- 将MDR的内容(程序断点)通过数据总线写入到MAR(通过地址总线)所指示的主存单元( “0”地址单元)中(MDR→M(MAR))
- 将向量地址形成部件的输出送至PC,为下一条指令的取指周期作推备(向量地址→PC)
- 关中断,将允许中断触发器清零(0→ET)
-
程序断点进栈
如果程序断点存入堆栈,而且进栈操作是先修改栈指针,后存入数据,只需将上述第一个改为 (SP)-1→MAR
-
控制单元的功能
控制单元的外特性
输入信号
-
时钟 (CU 受时钟控制)
一个时钟脉冲,会发送一个操作命令或者一组需同时执行的操作命令
-
指令寄存器 (OP(IR) -> CU)
控制信号与操作码有关,现行指令的操作码决定了不同指令在执行周期所需完成的不同操作
-
标志
控制单元有时需依赖CPU当前所处的状态(如ALU操作的结果)产生控制信号
-
外来信号(如 INTR 中断请求 HRQ 总线请求)
输出信号
- CPU 内的各种控制信号(PC + 1 -> PC)
- 送至控制总线的信号(访存控制信号、读写命令等)
控制信号举例
不采用CPU内部总线的方式
取指周期
- 控制信号C0 有效,打开PC送往MAR的控制门
- 控制信号C1有效,打开MAR送往地址总线的输出门
- 通过控制总线向主存发读命令
- C2有效,打开数据总线送至MDR的输入门
- C3有效,打开MDR和IR之间的控制门,至此指令送至IR
- C4有效,打开指令操作码送至CU的输出门。CU在操作码和时钟的控制下,可产生各种控制信号
- 使PC内容加1
间址周期
- C5有效,打开MDR和MAR之间的控制门,将指令的形式地址送至MAR
- C1有效,打开MAR送往地址总线的输出门
- 通过控制总线向主存发读命令
- C2有效,打开数据总线送至MDR的输入门,至此,有效地址存入MDR
- C3有效,打开MDR和IR之间的控制门,将有效地址送至IR的地址码字段
执行周期
- C5有效,打开MDR和MAR之间的控制门,将有效地址送至MAR
- C1有效,打开MAR送往地址总线的输出门
- 通过控制总线向主存发读命令
- C2有效,打开数据总线送至MDR的输入门,至此,操作数存入MDR
- C6、C7同时有效,打开AC和MDR通往ALU的控制门
- 通过CPU内部控制总线对ALU发ADD加控制信号,完成AC的内容和MDR的内容相加
- C8有效,打开ALU通往AC的控制门,至此将求和结果存入AC
采用CPU内部总线的方式
采用CPU内部总线方式的数据通路和控制信号的关系,图中每一个小圈处都有一个控制信号,它控制寄存器到总线或总线到寄存器之间的传送
取指周期
- PC0和MAR有效,完成PC经内部总线送至MAR的操作,即PC → MAR
- 通过控制总线向主存发读命令,即1 → R
- 存储器通过数据总线将MAR所指单元的内容(指令)送至MDR
- MDR0和IRi有效,将MDR的内容送至IR,即MDR→IR,至此,指令送至IR,其操作码字段开始控制CU
- 使PC内容加1
间址周期
- MDR0和MARi有效,将指令的形式地址经内部总线送至MAR,即MDR → MAR
- 通过控制总线向主存发读命令,即1 → R
- 存储器通过数据总线将MAR所指单元的内容(有效地址)送至MDR
- MDR0和IRi有效,将MDR中的有效地址送至IR的地址码字段,即MDR → Ad(IR)
执行周期
- MDR0和MARi有效,将有效地址经内部总线送至MAR,即MDR → MAR
- 通过控制总线向主存发读命令,即1 → R
- 存储器通过数据总线将MAR所指单元的内容(操作数)送至MDR
- MDR0和Yi有效,将操作数送至Y,即MDR → Y
- AC0和ALUi有效,同时CU向ALU发ADD加控制信号,使AC的内容和Y的内容相加(Y的内容送至ALU不必通过总线),结果送寄存器Z即(AC)+(Y) → Z
- Z0和ACi有效,将运算结果存入AC,即Z → AC
多级时序系统
机器周期
概念:所有指令执行过程中的一个基准时间
确认机器周期需要考虑的因素:每条指令的执行步骤以及每一步骤所需的时间
基准时间的确定:若指令字长 = 存储字长 取指周期 = 机器周期
- 以完成最复杂指令功能的时间为准
- 以访问一次存储器的时间为基准
时钟周期
一个机器周期内可完成若干个微操作(将一个机器周期分成若干个时间相等的时间端,分别是节拍、状态、时钟周期)
时钟周期是控制计算机操作的最小单位时间(用时钟周期产生一个或几个微操作指令)
图中时钟周期、机器周期以及一个机器周期内有4个节拍T0、T1、T2、T3
多级时序系统
机器周期、节拍(状态)组成多级时序系统
- 一个指令周期包含若干机器周期
- 一个机器周期包含若个时钟周期
机器速度和机器主频的关系
机器速度不仅与主频有关,还与机器周期中所含时钟周期(主频的倒数)数以及指令周期所含的机器周期数有关
控制方式
-
同步控制方式:任一微操作均由统一基准时标的时序信号控制
-
采用定长的机器周期:以最长的微操作序列和最复杂的微操作作为标准
-
采用不定长的机器周期:机器周期内的节拍数不等
解决微操作执行时间不统一的问题。通常把大多数微操作安排在一个较短的机器周期内完成,而对某些复杂的微操作,采用延长机器周期或增加节拍的办法来解决
-
采用中央控制和局部控制相结合的方法:种将机器的大部分指令安排在统一的、较短的机器周期内完成,称为中央控制,而将
少数操作复杂的指令中的某些操作(如乘除法和浮点运算等)采用局部控制方式来完成
-
-
异步控制方式:无基准时标信号,无固定的周期节拍和严格的时钟同步,采用应答方式
-
联合控制方式:同步和异步结合
-
人工控制方式:为了调机和软件开发的需要,在机器面板或内部设置一些开关或按键,来达到人机控制的目的