写在前面的话:此系列文章为笔者学习计算机组成原理时的个人笔记,分享出来与大家学习交流。使用教材为唐朔飞第3版,笔记目录大体与教材相同。
网课
计算机组成原理(哈工大刘宏伟)135讲(全)高清_哔哩哔哩_bilibili
笔记
《计算机组成原理》唐朔飞 第5章 输入输出系统 - 学习笔记_友人帐_的博客-CSDN博客
《计算机组成原理》唐朔飞 第7章 指令系统 - 学习笔记_友人帐_的博客-CSDN博客
《计算机组成原理》唐朔飞 第8章 CPU的结构和功能 - 学习笔记_友人帐_的博客-CSDN博客
《计算机组成原理》唐朔飞 第9章 控制单元的功能 - 学习笔记_友人帐_的博客-CSDN博客
《计算机组成原理》唐朔飞 第10章 控制单元的设计 - 学习笔记_友人帐_的博客-CSDN博客
课后习题答案
计算机组成原理(第三版)唐朔飞-课后习题(完整版)_计算机组成原理唐朔飞第三版答案_蓝净云的博客-CSDN博客
哈尔滨工业大学计组实验
计算机组成原理实验一 运算器 预习报告_基本运算器实验_旅僧的博客-CSDN博客
计算机组成原理实验二 存储系统 预习报告_旅僧的博客-CSDN博客
计算机组成原理实验三 系统总线和具有基本输入输出功能的总线接口 预习报告_旅僧的博客-CSDN博客
计算机组成原理实验四 微程序控制器 实验报告_旅僧的博客-CSDN博客
第九章 控制单元的功能
9.1 微操作命令的分析
控制单元具有发出各种微操作命令(即控制信号)序列的功能。
完成一条指令分为4个周期:取指周期、间址周期、执行周期、中断周期。
MAR存放欲访问的存储单元地址;MDR存放欲写入存储器的信息或最近从存储器中读出的信息;PC存放现行指令的地址,有计数功能;IR存放现行指令。
9.1.1 取指周期
取指操作:
①现行指令地址送至存储器地址寄存器,记作 PC->MAR
②向主存发送读命令,启动主存做读操作,记作1->R
③将MAR(通过地址总线)所指的主存单元中的内容(指令)经数据总线读至MDR内,记作M(MAR)->MDR
④将MDR的内容送至IR,记作MDR->IR
⑤指令的操作码送至CU译码,记作OP(IR)->CU
⑥形成下一条指令的地址,记作 (PC)+1->PC
9.1.2 间址周期
完成取操作数有效地址的任务:
①将指令的地址码部分(形式地址)送至存储器地址寄存器,记作Ad(IR)->MAR
②向主存发送读命令,启动主存做读操作,记作1->R
③将MAR(通过地址总线)所指的主存单元中的内容(有效地址)经数据总线读至MDR内,记作 M(MAR)->MDR
④将有效地址送至指令寄存器的地址字段,记作MDR->Ad(IR) 。此操作在有些机器中可省略
9.1.3 执行周期
(1)非访存指令
这类指令在执行周期不访问存储器。
-
ACC累加器清零指令CLA:0->ACC
-
ACC按位取反指令COM: A C C ‾ → A C C \overline{ACC}\rightarrow ACC ACC→ACC
-
ACC算术右移一位指令SHR: L ( A C C ) → R ( A C C ) , A C C 0 → A C C 0 L(ACC)\rightarrow R(ACC), ACC_0\rightarrow ACC_0 L(ACC)→R(ACC),ACC0→ACC0
-
ACC循环左移一位指令CSL: R ( A C C ) → L ( A C C ) , A C C 0 → A C C n R(ACC)\rightarrow L(ACC), ACC_0\rightarrow ACC_n R(ACC)→L(ACC),ACC0→ACCn
-
停机指令STP:计算机中有一个运行标志触发器,当G=1时,表示机器运行;当G=O时,表示停机。STP指令在执行阶段只需将运行标志触发器置“0",记作 0->G
(2)访存指令
只考虑直接寻址
- 加法指令 ADD X:ACC+(X)->ACC
- 存数指令STA X:ACC->(X)
- 取数指令LDA X:(X)->ACC
(3)转移类指令
不访问存储器
- 无条件跳转JMP X:该指令在执行阶段完成将指令的地址码部分送至PC的操作,记作Ad(IR)->PC
- 条件跳转
9.1.4 中断周期
在执行周期结束时刻,CPU要查询是否有请求中断的事件发生,如果有则进入中断周期。假设程序断点存至主存的"0"地址单元,且采用硬件向量法寻找入口地址,则在中断周期需完成如下操作:
(不是绝对的0地址,是某个给定地址)
①0→MAR,将特定地址“0”送至存储器地址寄存器。
②1→W。
③PC→MDR,保存断点。
④MDR→M(MAR)。
⑤向量地址→PC。
⑥0→EINT关中断。
如果程序断点存入堆栈,而且进栈操作是先修改栈指针,后存人数据,只需将上述①改为(SP)-1→SP,且SP→MAR。
9.2 控制单元的功能
9.2.1 控制单元的外特性
- 输入信号
(1)时钟
为了使控制单元按一定的先后顺序、一定的节奏发出各个控制信号,控制单元必须受时钟控制,即每一个时钟脉冲使控制单元发送一个操作命令,或发送一组并行执行的操作命令。
(2)指令寄存器
现行指令的操作码决定了不同指令在执行周期所需完成的不同操作,故指令的操作码字段是控制单元的输入信号,它与时钟配合可产生不同的控制信号。
(3)标志
控制单元有时需依赖CPU当前所处的状态(如ALU操作的结果)产生控制信号。
(4)来自系统总线(控制总线)的控制信号
例如中断请求、DMA请求等。
- 输出信号
(1)CPU内的控制信号
主要用于CPU内的寄存器之间的传送和控制ALU实现不同的操作。
(2)送至系统总线(控制总线)的信号
如命令主存或I/O读写、中断响应等。
9.2.3 多级时序系统
(1)机器周期
机器周期可看作所有指令执行过程中的一个基准时间,机器周期取决于指令的功能及器件的速度。
机器内的各种操作大致可归属为对CPU内部的操作和对主存的操作两大类,由于CPU访存的操作时间较长,因此通常以访问一次存储器的时间定为基准时间较为合理,这个基准时间就是机器周期。(在存储字长等于指令字长的前提下,取指周期也可看作机器周期。)
(2)时钟周期
在一个机器周期里可完成若干个微操作,每个微操作都需要一定的时间,可用时钟信号来控制产生每一个微操作命令。
用时钟信号控制节拍发生器,就可产生节拍。每个节拍的宽度正好对应一个时钟周期。在每个节拍内机器可完成一个或几个需同时执行的操作,它是控制计算机操作的最小时间单位。
(时钟信号的频率即为CPU主频)
(3)多级时序系统
一个指令周期包含若干个机器周期,一个机器周期又包含若干个时钟周期(节拍)。机器周期、节拍组成多级时序系统。
主频: M H z MHz MHz
时钟周期: 1 主频 M h z = μ s \frac{1}{主频Mhz}=\mu s 主频Mhz1=μs 最小单位
机器周期: μ s \mu s μs n n n倍时钟周期
指令周期: μ s \mu s μs n n n倍机器周期
平均指令执行速度: 1 指令周期 μ s = M I P S \frac{1}{指令周期\mu s}=MIPS 指令周期μs1=MIPS
衡量机器速度的指标:
-
MIPS(执行百万条指令数每秒)
-
CPI(执行一条指令所需的时钟周期数)
9.2.4 控制方式
产生不同微操作命令序列所用的时序控制方式。
(1)同步控制方式
以一个统一的定宽定距的时钟(统一基准时标)作为标准,每一个微操作都是在这个时钟的控制下在指定的节拍产生。
- 采用定长的机器周期
每个机器周期中采用完全统一的、具有相同时间间隔和相同数目的节拍。
此时以最长的微操作序列和最复杂的微操作作为机器周期的标准。
对于较短的指令会造成时间上的浪费。
- 采用不定长的机器周期
每个机器周期内的节拍数可以不等。
对某些复杂的微操作,采用延长机器周期或增加节拍的办法来解决。
- 采用中央控制和局部控制相结合的方法
将机器的大部分指令安排在统一的、较短的机器周期内完成,称为中央控制,而将少数操作复杂的指令中的某些操作(如乘除法和浮点运算等)采用局部控制方式来完成。
-
局部控制的节拍宽度与中央控制的节拍宽度一致。
-
将局部控制节拍作为中央控制中机器节拍的延续,插入中央控制的执行周期内,使机器以同样的节奏工作,保证局部控制和中央控制的同步。
与不定长的机器周期的区别(个人理解):
不定长中,每个机器周期长度都不是确定的。
而在中央控制和局部控制相结合的方法中,具有一个统一的定长的较短的机器周期,可以在一个周期内完成大部分指令;而对于较长的指令,先在中央控制节拍控制下完成部分指令,若不能在一个周期内完成,则增加局部控制节拍,插入中央控制的执行周期,作为中央控制的延续,再单独为其运算几个局部控制节拍,局部节拍数可能是提前确定的(乘法),也可能不能提前确定(浮点对阶)
(2)异步控制方式
不存在定宽定距的基准时钟,使用应答方式来控制。
CU发出执行某一微操作的控制信号后,等待执行部件完成该操作后发回“回答”(或“结束”),信号,再开始新的微操作,使 CPU 没有空闲状态,但因需要采用各种应答电路,故其结构比同步控制方式复杂。
(3)联合控制方式
同步控制和异步控制相结合。
对各种不同指令的微操作实行大部分统一(如取指操作)、小部分区别对待(难以确定结束时间,如I/O操作)的办法。
(4)人工控制方式
为了调机和软件开发的需要,在机器面板或内部设置一些开关或按键,来达到人工控制的目的。
-
Reset(复位)键:使计算机处于初始状态
-
连续或单条执行转换开关
-
符合停机开关:有一个寄存器保存了停机条件,是一个内存单元地址,当程序运行到与开关指示的地址相符时,机器便停止运行,称为符合停机。