计算机组成:控制器

正文索引 [隐藏]

一、概述

还记着数据通路那部分中,有一大堆控制信号咩,这些控制信号又称微命令,主宰着通路的正常运行,而控制器,就是在特定时间产生特定控制信号的系统,一般由下面三个部分组成:

  • 控制寄存器、译码器:PC、IR、指令译码器 ID
  • 时序信号产生器
  • 控制单元 CU

时序系统

时序系统由一组作为时间基准的信号组成,称为时序信号 。

三级时序体制

image-20200107220159537

  • 主状态周期:又称机器周期/CPU 周期,一个指令可由几个步骤组成,每一步所需要时间就是一个主状态周期
  • 节拍电位:一个主状态周期中可以执行多个相互独立的传送操作,可以将其划分为若干节拍点位,一个节拍宽度对应一个时钟周期,用来控制产生电位型操作控制信号
  • 节拍脉冲:在要给节拍点位中可以包含多个节拍脉冲,用于产生脉冲型操作控制信号,作为寄存器或触发器的控制信号

image-20200107220256717

计算机控制方式

同步控制

采用统一的时间基准信号为所有操作进行定时:

  • 完全统一的机器周期和节拍
  • 不定长机器周期
  • 中央控制与局部控制结合
  • 常采用三级时序系统(机器周期、节拍、脉冲)

异步控制

不需要统一的时间基准信号来定时

  • 每条指令、每个操作需要多少时间就占用多少时间
  • 当控制器发出某一操作控制信号后,等待执行部件完成该操作后送回“完成”信号,再开始新的操作
  • 可以充分发挥各部件的运行速度,时间利用率高,但控制复杂,技术上不易实现
  • 异步控制的计算机常采用二级时序系统(节拍、脉冲)

联合控制

同步 + 异步

  • 以同步控制为主,以异步控制为辅,称为同步计算机
  • 以异步控制为主,以同步控制为辅,称为异步计算机

例如:

在一台计算机中,CPU 内部,常采用同步控制方式;主机和 I/O 间,常采用异步控制方式。

  • CPU和内存间,采用同步(同步机)
  • CPU和内存间,采用异步(异步机)

二、组合逻辑控制器

控制单元是一个组合逻辑网络,产生全机运行所需要的全部控制信号

image-20200107220959097

比如在多周期数据通路下,将各个周期间的信号的变化做成有限状态机,如图:

image-20200107221307866

目标 CU 有两种实现方案:

  • 同步 CU:组合逻辑模块 + 当前状态寄存器 SR

    image-20200107221505702

  • 异步 CU:和同步没啥区别,就多一个 Ready 信号

    image-20200107221610626

三、微程序控制器

控制单元被称为微程序控制单元,其组成核心是 CM(Control Memory,控制存储器),由微程序解释执行机器指令,产生指令运行所需要的全部控制信号。

image-20200107222424600

首先要确认各个微命令之间的关系:

  • 相容性微命令:能在同时或同一个时钟周期内有效的微命令,例如:存储器读(MemRd)、指令寄存器写(IRWr)、加法(add)和 PC 写(PCWr)等
  • 互斥性微命令:不能在同时或在同一个时钟周期内有效的微命令,例如:存储器读(MemRd)和存储器写(MemWr)等

将这些微命令用 0-1 表示,组成一大串二进制串,这个串就是所谓的微指令,若干微指令结合就能实现一条指令的执行,这些微指令合起来就是一段微程序,全部微操作都存在 CM 中。

微指令基本格式

image-20200107222359737

  • 操作控制字段(μOP):一堆微命令
  • 顺序控制字段(μAddr):指出下一条微指令在 CM 中的地址

微指令编码方式

直接编码方式

微操作控制字段的每一位表示一个微命令,“0”表示无效,“1”表示有效

image-20200107222859859

字段直接编码方式

将微操作控制字段分为若干小字段,把一组互斥微命令组织在一起,用一个小字段编码表示,将相容的微命令安排在不同字段内。在某一时刻,每个字段通过译码产生一条微命令,不同字段可以发出多条微命令

image-20200107223038105

注意:为每个字段分配编码时,应考虑无操作的情况,即 n 位通常仅能安排 2n -1 个微命令。

字段间接编码方式

在字段直接编码方式的基础上,若规定一个字段的某些微命令,要兼由另一个字段中的某些微命令来解释,称为字段间接编码方式

image-20200107223250001

混合编码方式

当分段编码方式(直接或间接)中某些小字段的位数少到只有一位时,就可认为是直接编码方式和字段直接编码方式的混合编码方式

举例

某机的微指令格式中,共有8个控制字段,每个字段可分别激活5、8、3、16、1、7、25、4种控制信号。分别采用直接编码和字段直接编码方式设计微指令的操作控制字段,并说明两种方式的操作控制字段各取几位。

⑴ 采用直接编码方式时,直接用微指令的操作控制字段的一位表示 1 个微命令,则操作控制字段的位数等于微命令个数,即:总位数 = 5+8+3+16+1+7+25+4 = 69 位

⑵ 采用字段直接编码方式时,每个小字段中的微命令应为互斥的。此时为每个小字段分配位数时要在有效微命令个数的基础上再加 1 种无操作状态,则每个小字段需给出的状态数分别为6、9、4、17、2、8、26、5种,据此设计的微指令的操作控制字段格式如下:

image-20200107223530625

共分8个小字段,微指令操作控制字段的总位数为: 总位数=3+4+2+5+1+3+5+3=26位

ps:与直接编码法相比,压缩了:69-26 = 43 位

微地址形成方法

直接表示方法

顺序控制字段直接给出后继微地址

image-20200107224036443

增量方法(计数器方法)

  • 硬件上CMAR 增加计数功能(μPC)
  • 两种基本格式:顺序微指令和转移微指令
  • 二路分支

image-20200107224320055

增量 + 下址字段相结合

  • 硬件上CMAR 增加计数功能(μPC)
  • 仅有一种微指令格式,每条微指令都具有转移功能
  • 二路分支

image-20200107224445238

断定方式

  • 后继微地址只能由微指令的顺序控制字段产生
  • 每一条微指令都具有转移能力,CMAR 无计数功能
  • 微指令中给出后继微地址的部分位,其余位由机器运行状态来断定(其实就是状态机)

image-20200107224552709

特点:可实现微程序的多路分支转移,转移路数由微地址被断定的位数决定

微入口技术

微入口解决的是机器指令 - 微程序对应的问题,根据特定机器指令进入对应的微程序执行的方法通常称为“功能转移”,按照机器指令操作码转移到相应微程序的入口,属于微程序多路分支,需要外加相应的硬件逻辑实现:

  • 硬件查表法(ROM 或者 PLA)

  • 转移地址产生逻辑

    image-20200107225313941

设计实例

直接编码 + 直接表示 + 二级功能转移

  • 微命令编码方式:直接编码方式

    image-20200107225526213

  • 微地址形成方法:直接表示方式

  • 微入口:二级功能转移(指令操作码译码,LW/SW)

image-20200107225540851

混合编码 + 编码选择 + 二级功能转移

  • 微命令编码方式:混合编码方式

    image-20200107225734655

  • 微地址形成方法:编码选择微地址

    image-20200107225643808

image-20200107225800955

image-20200107225827531

image-20200107230020502

异步内存 + 混合编码 + 条件选择+ 编码选择

  • 采用异步内存方式:存储器以Ready应答MemRd、MemWr命令

  • 微命令编码方式:混合编码方式

    image-20200107233045395

  • 微地址形成方法:条件选择+编码选择微地址

    image-20200107233104594

image-20200107233119109

image-20200107233135582