文章目录

  • 一.控制器的结构和功能
  • 二.硬布线控制器
    • 1.硬布线控制单元图
    • 2.微操作命令分析
    • 3.CPU的控制方式
      • (1)同步控制方式
      • (2)异步控制方式
      • (3)联合控制方式
    • 4.硬布线控制单元的设计步骤
      • (1)分析每个阶段的微操作序列
      • (2)选择CPU的控制方式
      • (3)安排微操作时序
      • (4)电路设计
  • 三.微程序控制器
    • (一)基本概念
      • 1.基本术语
      • 2.微程序控制器的基本组成
      • 3.微程序控制器的工作过程
    • (二)微指令的设计
      • 1.微指令编码/控制方式
        • (1)直接编码方式/直接控制方式
        • (2)字段直接编码方式
        • (3)字段间接编码方式/隐式编码
      • 2.微指令的地址形成方式
      • 3.微指令的格式
        • (1)水平型微指令(“胖”)
        • (2)垂直型微指令(“瘦”)
        • (3)混合型微指令
    • (三)微程序控制单元的设计
      • 1.分析每个阶段的微操作序列
      • 2.写出对应机器指令的微操作命令及节拍安排
      • 3.确定微指令格式
      • 4.编写微指令码点
    • (四)微程序设计分类
      • 1.静态微程序设计和动态微程序设计
      • 2.毫微程序设计
    • (五)硬布线与微程序比较

一.控制器的结构和功能

1.结构
(1)运算器部件通过数据总线与内存储器、输入设备和输出设备传送数据
(2)输入设备和输出设备通过接口电路与总线相连接
(3)内存储器、输入设备和输出设备从地址总线接收地址信息,控制总线得到控制信号,通过数据总线与其他部件传送数据
(4)控制器部件从数据总线接收指令信息,从运算器部件接收指令转移地址,送出指令地址到地址总线,向系统中的部件提供它们运行所需要的控制信号


2.功能
(1)从主存中取出一条指令,并指出下一条指令在主存中的位置
(2)对指令进行译码或测试,产生相应的操作控制信号,以便启动规定的动作
(3)指挥并控制CPU、主存、输入和输出设备之间的数据流动方向

根据产生微操作信号的方式不同,存在硬布线控制器和微程序控制器

二.硬布线控制器

根据指令操作码、目前的机器周期(取址、间址、执行、中断)、节拍信号、机器状态条件(标志)(如BAN指令中的A0),即可确定现在这个节拍下应该发出哪些“微命令”。硬布线控制器由复杂的组合逻辑门电路和一些触发器构成,因此又称为组合逻辑控制器。

特点:
①指令越多,设计和实现就越复杂,因此一般用于RISC
回顾:精简指令系统计算机RISC让复杂的指令功能由频度高的简单指令的组合来实现,减少了指令种类、简化了指令功能;采用优化的编译程序,生成代码较为高效;指令长度固定、指令格式种类少,寻址方式种类少
②如果扩充一条新的指令,则控制器的设计就需要大改,因此扩充指令较困难
③由于使用纯硬件实现控制,因此执行速度很快。微操作控制信号由组合逻辑电路即时产生

1.硬布线控制单元图

指令的操作码是决定控制单元发出不同操作命令(控制信号)的关键。为了简化控制单元的逻辑,将指令的操作码译码和节拍发生器从CU分离出来,便可得到简化的控制单元

CU的输入信号来源
(1)经指令译码器译码产生的指令信息。现行指令的操作码决定了不同指令在执行周期所需完成的不同操作,因此指令的操作码字段是控制单元的输入信号,它与时钟配合产生不同的控制信号。
(2)时序系统产生的机器周期信号和节拍信号。为了使控制单元按一定的先后顺序、一定的节奏发出各个控制信号,控制单元必须受时钟控制,即一个时钟脉冲使控制单元发送一个操作命令,或发送一组需要同时执行的操作命令。
(3)来自执行单元的反馈信息(标志)。控制单元有时需依赖CPU当前所处的状态产生控制信号,如来自PSW、ACC的符号位等

2.微操作命令分析

控制单元具有发出各种操作命令(控制信号)序列的功能。这些命令与指令有关,而且必须按一定次序发出,才能使机器有序地工作。执行程序的过程中,对于不同的指令,控制单元需发出各种不同的微操作命令。一条指令分为3个工作周期:取指周期、间址周期和执行周期。

3.CPU的控制方式

控制单元控制一条指令执行的过程,实质上是依次执行一个确定的微操作序列的过程。由于不同指令所对应的微操作数及复杂程度不同,因此每条指令和每个微操作数所需的执行时间也不同。主要有以下3种控制方式

(1)同步控制方式

系统有一个统一的时钟,所有的控制信号均来自这个统一的时钟信号。通常以最长的微操作序列和最烦琐的微操作作为标准,采取完全统一的、具有相同时间间隔和相同数目的节拍作为机器周期来运行不同的指令。实现简单,速度慢。

(2)异步控制方式

各部件按自身固有的速度工作,通过应答方式进行联络。运行速度快,控制电路复杂

(3)联合控制方式

联合控制方式是介于同步、异步之间的一种折中。对各种不同的指令的微操作实行大部分采用同步控制、小部分采用异步控制的办法

4.硬布线控制单元的设计步骤

(1)分析每个阶段的微操作序列

即取值、间址、执行、中断四个阶段

①取址(含分析)
PC→MAR
1→R (读命令)
M(MAR)→MDR
(MDR)→IR
OP(IR)→CU
(PC)+1→PC

②间址周期
Ad(IR)→MAR
1→R
M(MAR)→MDR
MDR→Ad(IR)

③执行周期


访存指令可能有间址周期


对于BAN X
ACC为负,A0为1,Ad(IR)→PC
ACC为正,A0为0,PC不变

(2)选择CPU的控制方式

即同步、异步、联合控制方式。确定采用定长机器周期还是不定长机器周期,每个机器周期安排几个节拍。

(3)安排微操作时序

安排原则:
①微操作的先后顺序不得随意更改
②被控对象不同的微操作尽量安排在一个节拍内完成(防止违背“空闲让进”,如(PC)→MAR和1→R操作对象分别为寄存器和主存,二者可同时进行)
③占用时间较短的微操作尽量安排在一个节拍内完成并允许有先后顺序(CPU内部寄存器各部件数据流通很快。如MDR→IR和OP(IR)→ID可以放在一个节拍)

(4)电路设计

确定每个微操作命令的逻辑表达式,并用电路实现。

操作步骤:
①列出操作时间表
FE取址、IND间址、EX执行、INT中断
标注1表示可能或一定用到,未标注表示一定用不到

可能存在多级间接寻址,当IND=1,即IND反=0时表示完成了间接寻址,可进入执行阶段


②写出微操作命令的最简表达式
如:M(MAR)→MDR

③画出逻辑图

三.微程序控制器

(一)基本概念

微程序控制器采用存储逻辑实现,也就是把微操作信号代码化,使每条机器指令转化成为一段微程序并存入一个专门的存储器(控制存储器)中,微操作控制信号由微指令产生。

对应关系
程序=n机器指令
机器指令=微程序
微程序=n微指令
微指令=n微命令=n微操作

1.基本术语

(1)微命令与微操作
微操作:一条机器指令可以分解成一个微操作序列,这些微操作是计算机中最基本的、不可再分解的操作。

微命令:在微程序控制的计算机中,将控制部件向执行部件发出的各种控制命令称为微命令,它是构成控制序列的最小单位。微命令有相容性和互斥性之分。相容性微命令是指那些可以同时产生、共同完成某一些微操作的微命令;而互斥性微命令是指在机器中不允许同时出现的微命令。相容和互斥都是相对的,一个微命令可以和一些微命令相容,和另一些微命令互斥。

微命令和微操作是一一对应的。微命令是微操作的控制信号,微操作是微命令的执行过程。在组合逻辑控制器(硬布线控制器)中也存在微命令与微操作这两个概念

(2)微指令与微周期
微指令是若干微命令的集合。存放微指令的控制存储器的单元地址称为微地址。一条微指令通常至少包含两大部分信息:①操作控制字段/微操作码字段:用于产生某一步操作所需的各种操作控制信号。②顺序控制字段/微地址码字段,用于控制产生下一条要执行的微指令地址

微周期通常指从控制存储器中读取一条微指令并执行相应的微操作所需的时间

(3)主存存储器与控制存储器
主存储器用于存放程序和数据,在CPU外部,用RAM实现

控制存储器(CM)用于存放微程序,在CPU内部,用ROM实现。

(4)程序和微程序
程序是指令的有序集合,用于完成特定的功能。程序最终由机器指令组成,是由软件设计人员事先编制好并存放在主存或辅存中的。

微程序是微指令的有序集合,一条指令的功能由一段微程序来实现。微程序实是由计算机设计者事先编制好并存放在控制存储器中的,对程序员透明。

(5)地址寄存器与微地址寄存器
①地址寄存器MAR:用于存放主存的读/写地址
②微地址寄存器CMAR:用于存放控制存储器的读/写微指令的地址

(6)指令寄存器与微指令寄存器
①指令寄存器IR:用于存放从主存中读出的指令
②微指令寄存器(CMDR/μIR):用于存放从控制存储器中读出的微指令

2.微程序控制器的基本组成

(1)控制存储器CM
微程序控制器的核心部件存放各指令对应的微程序,由ROM构成
(2)微指令寄存器CMDR/μIR
存放从CM中取出的微指令,它的位数与微指令字长相等
(3)微地址形成部件
用于产生初始微地址和后继微地址,以保证微指令的连续执行
(4)微地址寄存器CMAR/μPC
接收微地址形成部件送来的微地址,为在CM中读取微指令作准备。

3.微程序控制器的工作过程

把指令的操作码OP送微地址形成部件,用来确定该指令对应的微指令序列的起始地址。根据顺序逻辑的标志等信息确定接下来要执行微指令的存放地址,将微指令地址放入CMAR。经过地址译码器的译码,选中CMAR指向的微指令,从CM中读出相应的微指令送入CMDR

一条微指令需要包含(控制信号,下一条指令的地址)

执行CMDR中的微指令:硬件电路根据微指令的控制码部分向CPU内部的其他部件或系统总线发出控制信号(如MARin

执行完该条微指令后,将下一条指令的地址的信息送顺序逻辑,顺序逻辑结合标志等信息,确定下一条要执行微指令的地址,将下一条微指令的地址送CMAR…

一条机器指令对应一个微程序。由于任何一条机器指令的取指令操作都是相同的,因此可将取指令操作的微命令统一编成一个微程序,这个微程序只负责将指令从主存单元中取出并送至指令寄存器。此外,也可编出对应间址周期的微程序和中断周期的微程序。这样,控制存储器中的微程序个数应为机器指令数再加上对应取指、间址和中断周期等共用的微程序数。通常,若指令系统中具有n种机器指令,则控制存储器中的微程序(段)数至少是n+1(1为公共的取指微程序,间址和中断可有可无)

(二)微指令的设计

1.微指令编码/控制方式

如何对微指令的控制字段进行编码,以形成控制信号。编码的目标是在保证速度的情况下,尽量缩短微指令字长。

(1)直接编码方式/直接控制方式

直接编码法无须进行译码,微指令的微命令字段中每位都代表一个微命令

优点:简单、直观,执行速度快,操作并行性好
缺点:微指令字长过长,n个微命令就要求微指令的操作字段有n位,造成控制存储器容量极大

设计微指令时,选用或不选用某个微命令,只要将表示该微命令的对应位设置成1或0即可。每个微命令对应并控制数据通路中的一个微操作,如第一位表示(PC)→MAR

(2)字段直接编码方式

将微指令的控制字段分成若干段,每段经译码后发出控制信号

从属于一个段的微操作是互斥的,因此将互斥性微命令组合在同一字段中,相容性微命令组合在不同字段中。

每个字段独立编码,每种编码代表一个微命令且各字段编码含义单独定义,与其他字段无关。

每个小段包含的信息位不能太多。一般每个小段还要留出一个状态,表示本字段不发出任何微命令。


[例] 某计算机的控制器采用微程序控制方式,微指令中的操作控制字段采用字段直接编码法,共有33个微命令,构成5个互斥类,分别包含7、3、12、5和6个微命令,则操作控制字段至少有多少位?

解:第1个互斥类有7个微命令,为留出1个状态表示本字段不发出任何微命令,所以需要8种不同的状态,即3个二进制位
同样3→2,12→4,5→3,6→3
故操作控制字段的总位数=3+2+4+3+3=15位

若采用直接编码法控制字段共需要33位,因此字段直接编码法可以缩短微指令字长。但字段直接编码要通过译码电路后再发出微命令,因此比直接编码方式慢。

(3)字段间接编码方式/隐式编码

一个字段的某些微命令由另一个字段中的某些微命令来解释,即可能经过两次译码。

优点:可进一步缩短微指令字长
缺点:因削弱了微指令的并行控制能力,因此通常作为字段直接编码方式的一种辅助手段。

2.微指令的地址形成方式

如何确定下一条微指令的存放地址(即下址/后继微地址)

(1)直接由微指令的下地址字段指出,即断定方式。微指令格式中设置一个下地址字段,由微指令的下地址字段直接指出后继微指令的地址

(2)根据机器指令的操作码形成。机器指令取至指令寄存器后,微指令的地址由操作码经微地址形成部件形成
(3)增量计数器法,即(CMAR)+1→CMAR,适用于后继微指令的地址连续的情况
(4)根据各种标志决定微指令分支转移的地址

(5) 通过测试网络形成,即测试逻辑

(6)由硬件直接产生微程序入口地址。如第一条微指令的地址由硬件给出,由硬件产生中断周期微程序首地址

[例] 某计算机采用微程序控制器,共有32条指令,公共的取指令微程序包含2条微指令,各指令对应的微程序平均由4条微指令组成,采用断定法(下地址字段法)确定下条微指令地址,则微指令中下地址字段的位数至少是多少位?

解:32条指令,每条指令对应的微程序平均由4条微指令组成,因此一共有32×4=128条微指令。加上公共的取指令微程序包含的2条微指令,即总共需要存储130条微指令,下地址字段的位数至少为8位

3.微指令的格式

(1)水平型微指令(“胖”)

一条水平型微指令定义并执行多个并行的基本操作
优点:微程序短,执行速度快
缺点:微指令长,编写微程序较麻烦

从编码方式看,直接编码、字段直接编码、字段间接编码和混合编码都属于水平型微指令。指令字中的一位对应一个控制信号,有输出时为1,否则为0。

(2)垂直型微指令(“瘦”)

一条垂直型微指令只能定义并执行一种基本操作
优点:微指令短、简单、规整,便于编写微程序
缺点:微程序长,执行速度慢,工作效率低


采用类似机器指令操作码的方式,在微指令中设置微操作码字段,采用微操作码编译法,由微操作码规定微指令的功能。

(3)混合型微指令

混合型微指令。在垂直型的基础上增加一些不太复杂的并行操作。
优点:微指令较短,仍便于编写;微程序也不长,执行速度加快。

水平型指令和垂直型微指令比较:
①水平型微指令并行操作能力强、效率高、灵活性强;垂直型微指令则较差
②水平型微指令执行一条指令的时间短;垂直型微指令执行的世界长
③由水平型微指令解释指令的微程序,微指令字较长但微程序短;垂直型微指令则与之相反,其微指令字较短而微程序长
④水平型微指令用户难以掌握,而垂直型微指令与指令相似,相对容易掌握

(三)微程序控制单元的设计

1.分析每个阶段的微操作序列

第一条要执行的微指令地址由硬件给出,当前执行微指令的下址字段指明下一条要执行微指令的地址。硬件电路根据微指令的控制码部分向CPU内部的其他部件或系统总线发出控制信号(如MARin)。

执行完该条微指令后,将下一条指令的地址的信息送顺序逻辑,顺序逻辑结合标志等信息,确定下一条要执行微指令的地址,将下一条微指令的地址送CMAR。即Ad(CMDR)→CMAR

取值周期完成后进入执行周期。为确定如何转入到下一个机器周期,根据当前指令的操作码确定指令对应微程序的起始地址。即OP(IR)→微地址形成部件→CMAR

即:指令a执行完,将下地址放CMAR。指令b执行完后同样。指令c完成后,把微地址形成部件所指明的当前指令执行周期对应的首地址放入CMAR



显然,微程序控制器的速度比硬布线控制器的速度慢

2.写出对应机器指令的微操作命令及节拍安排

(1)写出每个周期所需要的微操作(与硬布线相同)
(2)与硬布线不同
①取指周期
a.每条微指令执行结束后,都需要Ad(CMDR)→CMAR
b.在取指周期的最后一条微指令后,要根据指令操作码确定其执行周期的微程序首地址。即OP(IR)→微地址形成部件→CMAR
②执行周期
a.每条微指令执行结束后,都需要Ad(CMDR)→CMAR
b.在执行周期的最后一条微指令后,会根据当前微指令的下地址找到下一个待执行的微指令

3.确定微指令格式

根据微操作个数决定采用何种编码方式(直接编码、字段直接编码、字段间接编码),以确定微指令的操作控制字段的位数。根据CM中存储的微指令总数,确定微指令的顺序控制字段的位数。最后按操作控制字段位数和顺序控制字段位数就可确定微指令字长。

4.编写微指令码点

根据操作控制字段每一位代表的微操作命令,编写每一条微指令的码点(1还是0)。

(四)微程序设计分类

1.静态微程序设计和动态微程序设计

(1)静态微程序设计:微程序无法改变,采用ROM
(2)动态微程序设计:通过改变微指令和微程序改变机器指令。有利于仿真,采用EPROM

回顾:可擦除可编程只读存储器EPROM(Erasable Programmable Read-Only Memory)可写入,可多次改写。修改时要先擦除全部内容,然后再编程。分为紫外线擦除UVEPROM(可擦除全部信息)和电擦除EEPROM(可擦除特定的字)。EPROM编程次数有限,写入时间过长,无法取代RAM

2.毫微程序设计

微程序设计用微程序解释机器指令,毫微程序设计用毫微程序解释微程序

(五)硬布线与微程序比较