【笔记】控制单元的设计

一、组合逻辑设计

1.组合逻辑控制单元框图

  控制单元的时钟输入实际上是一个脉冲序列,其频率即为机器的主频,它使CU能按一定的节拍发出各种控制信号。节拍的宽度应满足数据信息通过数据总线从源到目的所需的时间。以时钟为计数脉冲,通过一个计数器,又称节拍发生器,便可产生一个与时钟周期等宽的节拍序列。

这里写图片描述

2.微操作的节拍安排

  安排微操作节拍时应注意一下3点:

  • 有些微操作的次序是不容改变的,故安排微操作节拍时必须注意微操作的先后顺序。
  • 凡是被控制对象不同的微操作,若能在一个节拍内执行,应尽可能安排在同一个节拍内,以节省时间。
  • 如果有些微操作所占时间不长,应该将它们安排在一个节拍内完成,并且允许这些微操作有先后次序。

二、微程序设计

1.微程序设计思想的产生

  由于这些微指令是以二进制代码形式表示的,每位代表一个控制信号,因此逐条执行每一条微指令,也就相应地完成了一条机器指令的全部操作。微程序控制单元的核心部件是一个控制存储器。

2.微程序控制单元框图及工作原理

机器指令对应的微程序

  采用微程序设计方法设计控制单元的过程就是编写每一条机器指令的微程序,它是按执行每条机器指令所需的微操作命令的先后顺序而编写的,因此一条机器指令对应一个微程序。

  控制存储器中的微程序个数应为机器指令数再加上对应取指、间接寻址和中断周期3个微程序。

微程序控制单元的基本框图

  点划线框内的控制存储器(简称控存)是微程序控制单元的核心部件,用来存放全部微程序;CMAR是控存地址寄存器,用来存放欲读出的微指令地址;CMDR是控存数据寄存器,用来存放从控存读出的微指令;顺序逻辑是用来控制微指令序列的,具体就是控制形成下一条微指令的地址,其输入与微地址形成部件、微指令的下地址字段以及外来的标志有关。
  微指令的基本格式共分为两个字段,一个为操作控制字段,该字段发出各种控制信号;另一个为顺序控制字段,它可指出下条微指令的地址,以控制微指令序列的执行顺序。

这里写图片描述

3.微指令的编码方式

  微指令的编码方式又称为微指令的控制方式,是指对微指令的控制字段进行编码,以形成控制信号。

直接编码方式

  在微指令的操作控制字段中,每一位代表一个微操作命令,这种编码方式即为直接编码方式
  这种方式含义清晰,而且只要微命令从控存读出,即刻可由控制字段发出命令,速度快。但由于机器中微操作命令甚多,可能造成控存容量极大。

字段直接编码方式

  这种方式就是将微指令的操作控制字段分成若干段,将一组互斥的微操作命令放在一个字段内,通过对这个字段译码,便可对应每一个微命令。这种方式因靠字段直接译码发出微命令,故又有显示编码之称。
  采用字段直接编码方法可用较少的二进制信息表示较多的微操作命令信号。由于增加了译码电路,使微程序的执行速度稍微减慢。至于操作控制字段应分几段,与需要并行发出的微命令个数有关。每段的长度可以不等,与具体要求互斥的微命令个数有关。

字段间接编码方式

  这种方式一个字段的某些微命令还需由另一个字段中的某些微命令来解释,由于不是靠字段直接译码发出微命令,故称为字段间接编码,又称为隐式编码。
  这种方法虽然可以进一步缩短微指令字长,但因削弱了微指令的并行控制能力,因此通常用做字段直接编码法的一种辅助手段。

混合编码

  这种方法是把直接编码和字段编码混合使用,以便能综合考虑微指令的字长、灵活性和执行微程序的速度等方面的要求。

其他

  微指令中还可设置常数字段,用来提供常数、计数器初值等。常数字段还可以和某些解释位配合,如解释位为0,表示该字段提供常数;解释位为1,表示该字段提供某种命令,使微指令更灵活。

4.微指令序列地址的形成

直接由微指令的下地址字段指出

  大部分微指令的下地址字段直接指出了后续微指令的地址。这种方式又称为断定方式

根据机器指令的操作码形成

  当机器指令取至指令寄存器后,微指令的地址由操作码经微地址形成部件。微地址形成部件实际上是一个编码器,其输入为指令操作码,输出就是对应该机器指令微程序的首地址。它可采用PROM实现,以指令的操作码作为PROM的地址,而相应的存储单元内容就是对应该指令微程序的首地址。

增量计数器法

  对于顺序地址,微指令可次啊用增量计数法,即 ( C M A R ) + 1 → C M A R (CMAR)+1 \rightarrow CMAR (CMAR)+1CMAR来形成后续微指令的地址。

分支转移

   当遇到条件转移指令时,微指令出现了分支,必须根据各种标志来决定下一条微指令的地址。

在这里插入图片描述

其中,转移方式指明判别条件,转移地址指明转移成功后的去向,若不成功则顺序执行。

通过测试网络形成

   微指令的地址还可以通过测试网络形成。图中微指令的地址分两部分,高段h为非测试地址,由微指令的H段地址码直接形成;地段1为测试地址,由微指令的L段地址码通过测试网络形成。

由硬件产生微程序入口地址

   当电源加电后,第一条微指令的地址可由专门的硬件电路产生,也可由外部直接向CMAR输入微指令的地址,这个地址即为取指周期微程序的入口地址。故响应中断时,可由硬件产生中断周期微程序的入口地址。
   当出现间接寻址时,也可由硬件产生间址周期微程序的入口地址。

多路选择器可选择以下4路地址:

  • ( C M A R ) + 1 → C M A R (CMAR)+1 \rightarrow CMAR (CMAR)+1CMAR
  • 微指令的下地址字段
  • 指令寄存器(通过微地址形成部件)
  • 微程序入口地址

5.微指令格式

  微指令格式与微指令的编码方式有关,通常分为水平型微指令垂直型微指令两种。

水平型微指令

   水平型微指令的特点是一次能定义并执行多个并行操作的微命令。从编码方法看,直接编码、字段直接编码、字段间接编码以、直接和字段混合编码都属于水平型微指令。

垂直型微指令

   垂直型微指令的特点是采用类似机器指令操作码的方式,在微指令字中,设置微操作码字段,由微操作码规定微指令的功能。通常一条微指令有1~ 2个微命令,控制1 ~ 2种操作。

两种微指令格式的比较

  1. 水平型未执行比垂直型微指令并行操作能力强、效率高、灵活强。
  2. 水平型微指令执行一条机器指令所需的微指令数目少,因此速度比垂直型微指令的速度快。
  3. 水平型微指令用较短的微程序结构换取较长的微指令结构,垂直型微指令正相反,它以较长的微程序结构换取较短的微指令结构。
  4. 水平型微指令与机器指令差别较大,垂直型微指令与机器指令相似。

   水平型微指令由操作控制字段、判别测试字段、下地址字段三部分构成。

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

   通常指令系统是固定的,对应每一条机器指令的微程序是计算机设计者实现编好的,因此一般微程序无需改变,这种微程序设计技术即成为静态微程序设计,其控制存储器采用ROM。
   如果采用EPROM作为控制存储器,人们可以通过改变微指令和微程序来改变机器的指令系统,这种微程序设计技术称为动态微程序设计。动态微程序设计由于可以根据需要改变微指令和微程序,因此可以在一台机器上实现不同类型的指令系统,有利于仿真。

7.毫微程序设计

   微程序可看作是解释机器指令的,毫微程序可看作是解释微程序的,而组成毫微程序设计的优点是用少量的控制存储器空间来达到高度的并行。
   毫微程序设计采用两级微程序的设计方法。第一级微程序为垂直型微指令,并行功能不强,但有严格的顺序结构,由它确定后续微指令的地址,当需要时可调用第二级。第二级微程序为水平型微指令,具有很强的并行操作能力,但不包含后续微指令的地址。第二级微程序执行完毕后又返回到第一级微程序。两级微程序分别放在两级控制存储器内。

在这里插入图片描述

   C M A R 1 CMAR_1 CMAR1为第一级控存地址寄存器, C M D R 1 CMDR_1 CMDR1存放从第一级控制存储器中读出的微指令,如果该微指令只产生一些简单的控制信号,则可以通过译码,直接形成微操作命令,不必调用第二级。如果需调用第二级控制存储器时,则将毫微程序的地址送至 C M A R 2 CMAR_2 CMAR2,然后由第二级控制存储器中读出的微指令去直接控制硬件。垂直型微指令不是和水平型微指令一条一条地对应,而是由水平型微指令(称为毫微指令)组成的毫微程序去执行垂直型微指令的操作。
  二级控制存储器虽然能减少控制存储器的容量,但因有时一条微指令要访问两次控制存储器,影响了速度。

8.串行微程序控制和并行微程序控制

  完成一条微指令也分两个阶段:取微指令和执行微指令。由于取微指令和执行微指令的操作是在两个完全不同的部件中完成的,因此可将这两部分操作秉性进行,以缩短微指令周期,这就是并行微程序控制。
  当采用并行微程序控制时,为了不影响本条微指令的正确执行,需增加一个微指令寄存器来暂存下一条微指令。由于执行本条微指令与取下一条微指令是同时进行的,因此当遇到需要根据本条微指令的处理结果来决定下条微指令的地址时,就不能并行操作,此时可延迟一个微指令周期再取微指令。

9.微程序设计举例

执行阶段的微操作及节拍安排

  微程序设计控制单元的主要任务是编写对应各条机器指令的微程序,具体步骤是首先写出对应机器指令的全部微操作及节拍安排,然后确定微指令格式,最后编写出每条微指令的二进制代码(称为微指令码点)。

  在取指微程序中,每一条微指令都需要增加一个将微指令下地址字段送至CMAR的微操作,记作 A d ( C M D R ) → C M A R Ad(CMDR) \rightarrow CMAR Ad(CMDR)CMAR,而这一操作只能由下一个时钟周期T的上升沿将地址打入到CMAR内。至于取指微程序的最后一条微指令,其后续微指令的地址是由微地址形成部件形成的,而且也只能由下一个T的上升沿将该地址打入到CMAR中,即微地址形成部件 → C A M R \rightarrow CAMR CAMR。为了反映该地址与操作码有关,故记作 O P ( I R ) → OP(IR) \rightarrow OP(IR)微地址形成部件 → C M A R \rightarrow CMAR CMAR

  微操作指令共20个,微指令共38条。CLA、COM、SHR、CSL、STP为非访存指令,ADD、STA、LDA为访存指令,JMP、BAN为转移类指令。

确定微指令格式

  微指令的格式包括微指令的编码方式、后续微指令的地址形成方式、微指令字长等3个方面。
  (1)微指令的编码方式:可采用直接编码方式,由微指令控制字段的某一位直接控制一个微操作。
  (2)后续微指令的地址形成方式:可采用由指令的操作码和微指令的下地址字段两种方式形成后续微指令的地址。
  (3)微指令字长:微指令字长至少取26位。
  如果将CMDR的下地址字段Ad(CMDR)直接接到控制存储器的地址线上,并由下一个时钟周期的上升沿将该地址单元的内容(微指令)读到CMDR中,便能做到在一个时钟周期内读出并执行一条微指令。同理,也可将指令寄存器的操作码字段OP(IR)经微地址形成部件形成的后续微指令的地址,直接送到控制存储器的地址线上。这两路地址可通过一个多路选择器,根据需要任选一路。
  这样,10条机器指令共对应20-2=18个微操作和38-19=19条微指令。为了便于扩充,操作控制字段取24位,下地址字段取6位。

  在确定微指令格式机器字长的过程中,还可将一些微操作命令合用一位代码来控制,这样可大大压缩微指令的操作控制字段,缩短微指令字长。

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值