【笔记】控制单元的功能

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/cbwem/article/details/81229671

一、微操作命令的分析

1.取指周期

  取指令的过程可归纳为以下几个操作:

  1. 现行指令地址送至存储器地址寄存器,记作$PC \rightarrow MAR$
  2. 向主存发送读命令,记作$1\rightarrow R$
  3. 将MAR(通过地址总线)所指的主存单元中的内容(指令)经数据总线读至MDR内,记作$M(MAR)\rightarrow MDR$
  4. 将MDR的内容送至IR,记作$MDR \rightarrow IR$
  5. 指令的操作码送至CU译码,记作$OP(IR) \rightarrow CU$
  6. 形成下一条指令的地址,记作$(PC)+1\rightarrow PC$

2.间址周期

  间址周期完成取操作数有效地址的任务。

  1. 将指令的地址码部分(形式地址)送至存储器地址寄存器,记作$Ad(IR)\rightarrow MAR$
  2. 向主存发送读命令,启动主存作读操作,记作$1\rightarrow R$
  3. 将MAR(通过地址总线)所指的主存单元中的内容(有效地址)经数据总线读至MDR内,记作$M(MAR)\rightarrow MDR$
  4. 将有效地址送至指令寄存器的地址字段,记作$MDR\rightarrow Ad(IR)$

3.执行周期

非访存指令

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

  1. 清除累加器指令CLA,记作$0\rightarrow ACC$
  2. 累加器取反指令COM,记作$\overline{ACC} \rightarrow ACC$
  3. 算术右移一位指令SHR,记作$L(ACC)\rightarrow R(ACC)$,$ACC_0\rightarrow ACC_0$(ACC的符号位不变)
  4. 循环左移一位指令CSL,记作$R(ACC)\rightarrow L(ACC)$,$ACC_0\rightarrow ACC_n$
  5. 停机指令STP:运行标志触发器G,当G=1时,表示机器运行;当G=0时,表示停机。STP指令在执行阶段只需将运行标志触发器置“0”,记作$0\rightarrow G$

访存指令

  这类指令在执行阶段都需要访问存储器。

  (1)加法指令ADD X
  该指令在执行阶段需要完成累加器内容与对应与主存X地址单元的内容相加,结果送累加器的操作。

  1. 将指令的地址码部分送至存储器地址寄存器,记作$Ad(IR)\rightarrow MAR$
  2. 向主存发读命令,启动主存作读操作,记作$1\rightarrow R$
  3. 将MAR(通过地址总线)所指的主存单元中的内容(操作数)经数据总线读至MDR内,记作$M(MAR)\rightarrow MDR$
  4. 给ALU发送加命令,将ACC的内容和MDR的内容相加,结果存于ACC,记作$(ACC)+(MDR)\rightarrow ACC$

  (2)存数指令STA X
  该指令在执行阶段需将累加器ACC的内容存于主存的X地址单元中。

  1. 将指令的地址码部分送至存储器地址寄存器,记作$Ad(IR)\rightarrow MAR$
  2. 向主存发写命令,启动主存作写操作,记作$1\rightarrow W$
  3. 将累加器内容送至MDR,记作$ACC\rightarrow MDR$
  4. 将MDR的内容(通过数据总线)写入到MAR(通过地址总线)所指的主存单元中,记作$MDR\rightarrow M(MAR)$

  (3)取数指令LDA X
  该指令在执行阶段需将主存X地址单元的内容存至累加器ACC中。

  1. 将指令的地址码部分送至存储器地址寄存器,记作$Ad(IR)\rightarrow MAR$
  2. 向主存发读命令,启动主存作读操作,记作$1\rightarrow R$
  3. 将MAR的内容(通过地址总线)所指的主存单元中的内容经数据总线读至MDR内,记作$M(MAR)\rightarrow MDR$
  4. 将MDR的内容送至ACC,记作$MDR\rightarrow ACC$

转移类指令

  (1)无条件转移指令JMP X
  该指令在执行阶段完成将指令的地址码部分X送至PC的操作,记作$Ad(IR)\rightarrow PC$
  (2)条件转移指令BAN X
  该指令根据上一条指令运行的结果决定下一条指令的地址,若结果为负(累加器最高位为1,即$A_0=1$),则指令的地址码送至PC,否则程序按原顺序执行。记作$A_0\cdot Ad(IR)+\overline{A_0}\cdot (PC)\rightarrow PC$

4.中断周期

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

  1. 将特定地址“0”送至存储器地址寄存器,记作$0\rightarrow MAR$
  2. 向主存发写命令,启动存储器作写操作,记作$1\rightarrow W$
  3. 将PC的内容(程序断点)送至MDR,记作$PC\rightarrow MDR$
  4. 将MDR的内容(程序断点)通过数据总线写入到MAR(通过地址总线)所指示的主存单元(0地址单元)中,记作$MDR\rightarrow M(MAR)$
  5. 将向量地址形成部件的输出送至PC,记作向量地址$\rightarrow $PC,为下一条指令的取指周期做准备。
  6. 关中断,将允许中断触发器清零,记作$0\rightarrow EINT$(该操作可直接由硬件线路完成)。

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

二、控制单元的功能

1.控制单元的外特性

输入信号

  (1)时钟

  • 完成每个操作都需占用一定的时间
  • 各个操作是有先后顺序的

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

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

  (3)标志
  控制单元有时需依赖CPU当前所处的状态(如ALU操作的结果)产生控制信号,因此“标志”也是控制单元的输入信号。

  (4)来自系统总线(控制总线)的控制信号
  例如中断请求、DMA请求。

输出信号

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

  (2)送至系统总线的信号
  例如命令主存或I/O读/写、中断响应等。

2.多级时序系统

机器周期

  机器周期可看作是所有指令的执行过程中的一个基准时间,机器周期取决于指令的功能及器件的速度。
  确定机器周期时,通常要分析机器指令的执行步骤及每一步骤所需的时间。通常以访问一次存储器的时间定为基准时间较为合理,这个基准时间就是机器周期。由于不论执行什么指令,都需要访问存储器取出指令,因此在存储字长等于指令字长的前提下,取指周期也可看作机器周期。

时钟周期

  在一个机器周期里可完成若干个微操作,每个微操作都需要一定的时间,可用时钟信号来控制产生每一个微操作命令。
  时钟信号可由机器主振电路发出的脉冲信号经整形后产生,时钟信号的频率即为CPU主频。用时钟信号控制节拍发生器,就可产生节拍。每个节拍的宽度正好对应一个时钟周期。在每个节拍内机器可完成一个或几个需同时执行的操作,它是控制计算机操作的最小时间单位。

多级时序系统

  一个指令周期包含若干个机器周期, 一个机器周期又包含若干个时钟周期,每个指令周期内的机器周期数可以不等,每个机器周期内的节拍数也可以不等。机器周期节拍组成了多级时序系统
  一般来说,CPU的主频越快,机器的运行速度也越快。在机器周期所含时钟周期数相同的前提下,两机平均指令执行速度之比等于两机主频之比。
  实际上机器的速度不仅与主频有关,还与机器周期中所含的时钟周期数以及指令周期中所含的机器周期数有关。同样主频的机器,由于机器周期所含时钟周期数不同,运行速度也不同。机器周期所含时钟周期数少的机器,速度更快。

3.控制方式

  控制单元控制一条指令执行的过程实质上是一次执行一个确定的微操作序列的过程。通常将如何形成控制不同微操作序列所采用的时序控制方式称为CU的控制方式。常见的控制方式有同步控制、异步控制、联合控制、人工控制

同步控制方式

  同步控制方式:任何一条指令或指令中任何一个微操作的执行都是事先确定的,并且都是受统一基准时标的时序信号所控制的方式。
  如果机器内的存储器存取周期不统一,那么只有把最长的存取周期作为机器周期,才能采用同步控制,否则取指令和取数时间不同,无法用统一的基准。

  (1)采用定长的机器周期
  不论指令所对应的微操作序列有多长,也不管微操作的简繁,一律以最长的微操作序列和最繁的微操作作为标准,采取完全统一的、具有相同时间间隔和相同数目的节拍作为机器周期来运行各种不同的指令。
  (2)采用不定长的机器周期
  每个机器周期内的街拍书可以不等。通常把大多数微操作安排在一个较短的机器周期内完成,而对某些复杂的微操作,采用延长机器周期或增加节拍的方法来解决。
  (3)采用中央控制和局部控制相结合的方法
  这种方案将机器的大部分指令安排在统一的、较短的机器周期内完成,称为中央控制,而将少数操作复杂的指令中的某些操作采用局部控制方式来完成。
  在设计局部控制线路时需要注意两点:

  • 使局部控制的每一个节拍T*的宽度与中央控制的节拍宽度相同;
  • 将局部控制节拍作为中央控制中机器节拍的延续,插入到中央控制的执行周期内,使机器以同样的节奏工作,保证了局部控制和中央控制的同步。

异步控制方式

  异步控制方式不存在基准时标信号,没有固定的周期节拍和严格的时钟同步,执行每条指令和每个操作需要多少时间就占用多少时间。结构比同步控制方式复杂。

联合控制方式

  同步控制和异步控制相结合就是联合控制方式。这种方式对各种不同指令的微操作实行大部分统一、小部分区别对待的办法。

人工控制方式

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

猜你喜欢

转载自blog.csdn.net/cbwem/article/details/81229671