《计算机组成原理》唐朔飞 第9章 控制单元的功能 - 学习笔记

写在前面的话:此系列文章为笔者学习计算机组成原理时的个人笔记,分享出来与大家学习交流。使用教材为唐朔飞第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张图片

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 执行周期

《计算机组成原理》唐朔飞 第9章 控制单元的功能 - 学习笔记_第2张图片

(1)非访存指令

这类指令在执行周期不访问存储器。

  1. ACC累加器清零指令CLA:0->ACC

  2. ACC按位取反指令COM: A C C ‾ → A C C \overline{ACC}\rightarrow ACC ACCACC

  3. 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),ACC0ACC0

  4. 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),ACC0ACCn

  5. 停机指令STP:计算机中有一个运行标志触发器,当G=1时,表示机器运行;当G=O时,表示停机。STP指令在执行阶段只需将运行标志触发器置“0",记作 0->G

(2)访存指令

只考虑直接寻址

  1. 加法指令 ADD X:ACC+(X)->ACC

《计算机组成原理》唐朔飞 第9章 控制单元的功能 - 学习笔记_第3张图片

  1. 存数指令STA X:ACC->(X)

《计算机组成原理》唐朔飞 第9章 控制单元的功能 - 学习笔记_第4张图片

  1. 取数指令LDA X:(X)->ACC

《计算机组成原理》唐朔飞 第9章 控制单元的功能 - 学习笔记_第5张图片

(3)转移类指令

不访问存储器

  1. 无条件跳转JMP X:该指令在执行阶段完成将指令的地址码部分送至PC的操作,记作Ad(IR)->PC
  2. 条件跳转

9.1.4 中断周期

在执行周期结束时刻,CPU要查询是否有请求中断的事件发生,如果有则进入中断周期。假设程序断点存至主存的"0"地址单元,且采用硬件向量法寻找入口地址,则在中断周期需完成如下操作:

(不是绝对的0地址,是某个给定地址)

《计算机组成原理》唐朔飞 第9章 控制单元的功能 - 学习笔记_第6张图片

①0→MAR,将特定地址“0”送至存储器地址寄存器。

②1→W。

③PC→MDR,保存断点。

④MDR→M(MAR)。

⑤向量地址→PC。

⑥0→EINT关中断。

如果程序断点存入堆栈,而且进栈操作是先修改栈指针,后存人数据,只需将上述①改为(SP)-1→SP,且SP→MAR。

9.2 控制单元的功能

9.2.1 控制单元的外特性

《计算机组成原理》唐朔飞 第9章 控制单元的功能 - 学习笔记_第7张图片

  1. 输入信号

(1)时钟

为了使控制单元按一定的先后顺序、一定的节奏发出各个控制信号,控制单元必须受时钟控制,即每一个时钟脉冲使控制单元发送一个操作命令,或发送一组并行执行的操作命令。

(2)指令寄存器

现行指令的操作码决定了不同指令在执行周期所需完成的不同操作,故指令的操作码字段是控制单元的输入信号,它与时钟配合可产生不同的控制信号。

(3)标志

控制单元有时需依赖CPU当前所处的状态(如ALU操作的结果)产生控制信号。

(4)来自系统总线(控制总线)的控制信号

例如中断请求、DMA请求等。

  1. 输出信号

(1)CPU内的控制信号

主要用于CPU内的寄存器之间的传送和控制ALU实现不同的操作。

(2)送至系统总线(控制总线)的信号

如命令主存或I/O读写、中断响应等。

9.2.3 多级时序系统

(1)机器周期

机器周期可看作所有指令执行过程中的一个基准时间,机器周期取决于指令的功能及器件的速度。

机器内的各种操作大致可归属为对CPU内部的操作和对主存的操作两大类,由于CPU访存的操作时间较长,因此通常以访问一次存储器的时间定为基准时间较为合理,这个基准时间就是机器周期。(在存储字长等于指令字长的前提下,取指周期也可看作机器周期。)

(2)时钟周期

在一个机器周期里可完成若干个微操作,每个微操作都需要一定的时间,可用时钟信号来控制产生每一个微操作命令。

用时钟信号控制节拍发生器,就可产生节拍。每个节拍的宽度正好对应一个时钟周期。在每个节拍内机器可完成一个或几个需同时执行的操作,它是控制计算机操作的最小时间单位。

(时钟信号的频率即为CPU主频)
《计算机组成原理》唐朔飞 第9章 控制单元的功能 - 学习笔记_第8张图片

(3)多级时序系统

一个指令周期包含若干个机器周期,一个机器周期又包含若干个时钟周期(节拍)。机器周期、节拍组成多级时序系统。

《计算机组成原理》唐朔飞 第9章 控制单元的功能 - 学习笔记_第9张图片

主频: 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)同步控制方式

以一个统一的定宽定距的时钟(统一基准时标)作为标准,每一个微操作都是在这个时钟的控制下在指定的节拍产生。

  1. 采用定长的机器周期

每个机器周期中采用完全统一的、具有相同时间间隔和相同数目的节拍。

此时以最长的微操作序列和最复杂的微操作作为机器周期的标准。

对于较短的指令会造成时间上的浪费。

  1. 采用不定长的机器周期

每个机器周期内的节拍数可以不等。

对某些复杂的微操作,采用延长机器周期或增加节拍的办法来解决。

《计算机组成原理》唐朔飞 第9章 控制单元的功能 - 学习笔记_第10张图片

  1. 采用中央控制和局部控制相结合的方法

将机器的大部分指令安排在统一的、较短的机器周期内完成,称为中央控制,而将少数操作复杂的指令中的某些操作(如乘除法和浮点运算等)采用局部控制方式来完成。

《计算机组成原理》唐朔飞 第9章 控制单元的功能 - 学习笔记_第11张图片

  • 局部控制的节拍宽度与中央控制的节拍宽度一致。

  • 将局部控制节拍作为中央控制中机器节拍的延续,插入中央控制的执行周期内,使机器以同样的节奏工作,保证局部控制和中央控制的同步。

与不定长的机器周期的区别(个人理解):

  • 不定长中,每个机器周期长度都不是确定的。

  • 而在中央控制和局部控制相结合的方法中,具有一个统一的定长的较短的机器周期,可以在一个周期内完成大部分指令;而对于较长的指令,先在中央控制节拍控制下完成部分指令,若不能在一个周期内完成,则增加局部控制节拍,插入中央控制的执行周期,作为中央控制的延续,再单独为其运算几个局部控制节拍,局部节拍数可能是提前确定的(乘法),也可能不能提前确定(浮点对阶)

(2)异步控制方式

不存在定宽定距的基准时钟,使用应答方式来控制。

CU发出执行某一微操作的控制信号后,等待执行部件完成该操作后发回“回答”(或“结束”),信号,再开始新的微操作,使 CPU 没有空闲状态,但因需要采用各种应答电路,故其结构比同步控制方式复杂。

(3)联合控制方式

同步控制和异步控制相结合。

对各种不同指令的微操作实行大部分统一(如取指操作)、小部分区别对待(难以确定结束时间,如I/O操作)的办法。

(4)人工控制方式

为了调机和软件开发的需要,在机器面板或内部设置一些开关或按键,来达到人工控制的目的。

  • Reset(复位)键:使计算机处于初始状态

  • 连续或单条执行转换开关

  • 符合停机开关:有一个寄存器保存了停机条件,是一个内存单元地址,当程序运行到与开关指示的地址相符时,机器便停止运行,称为符合停机。

你可能感兴趣的:(计算机组成原理,学习,笔记)