《计算机组成原理》第十章:控制单元的设计【知识点总结】

文章目录

      • 1. 组合逻辑设计
        • 1.1 组合逻辑控制单元框图
        • 1.2 微操作的节拍安排
        • 1.3 组合逻辑设计步骤
      • 2. 微程序设计
        • 2.1 微程序设计思想的产生
        • 2.2 微程序控制单元框图及工作原理
        • 2.3 微指令的编码方式
        • 2.4 微指令序列地址的形成
        • 2.5 微指令格式
        • 2.6 静态微程序设计和动态微程序设计
        • 2.7 毫微程序设计
        • 2.8 串行微程序控制和并行微程序控制
        • 2.9 微程序设计举例

本章以十条机器指令为例,介绍控制单元的两种设计方法,旨在使读者初步掌握设计控制单元的思路,为今后设计计算机打下初步基础。

1. 组合逻辑设计

1.1 组合逻辑控制单元框图

《计算机组成原理》第十章:控制单元的设计【知识点总结】_第1张图片
上图示出了控制单元的外特性,其中指令的操作码是决定控制单元发出不同控制的关键。为了简化控制单元的逻辑,将存放在IR中的n位操作码经过一个译码电路产生2n个输出,这样,每对应一种操作码便有一个输出送至CU。当然,若指令的操作码长度可变,指令译码将更复杂。

控制单元的时钟输入实际上是一个脉冲序列,其频率即为机器的主频,它使CU能按一定的节拍(T)发出各种控制信号。
节拍的宽度应满足数据信息通过数据总线从源到目的所需的时间。以时钟为计数脉冲,通过一个计数器,又称节拍发生器,便可以产生一个时钟周期等宽的节拍序列。如果将指令译码和节拍发生器从CU中分离出来,便可得到简化的控制单元框图,如下图所示:
《计算机组成原理》第十章:控制单元的设计【知识点总结】_第2张图片


1.2 微操作的节拍安排

假设机器采用同步控制,每个机器周期包含3个节拍,而且CPU内部结构如下图所示,其中MAR和MDR分别直接和地址总线和数据总线相连,并假设IR的地址码部分与MAR之间有通路。
《计算机组成原理》第十章:控制单元的设计【知识点总结】_第3张图片
安排微操作节拍时应注意以下3点:

  • 有些微操作的次序是不容改变的,故安排微操作节拍时必须注意微操作的先后顺序
  • 凡是被控制对象不同的微操作,若能在一个节拍内执行,应尽可能安排在同一个节拍内,以节省时间
  • 如果有些微操作所占的时间不长,应该将它们安排在一个节拍内完成,并且允许操作有先后次序
    按上述3条原则,以第九章分析的10条指令为例,其微操作的节拍安排如下:
    《计算机组成原理》第十章:控制单元的设计【知识点总结】_第4张图片
    《计算机组成原理》第十章:控制单元的设计【知识点总结】_第5张图片
    《计算机组成原理》第十章:控制单元的设计【知识点总结】_第6张图片
    在这里插入图片描述
    《计算机组成原理》第十章:控制单元的设计【知识点总结】_第7张图片

1.3 组合逻辑设计步骤

组合逻辑设计控制单元时,首先根据上述10条指令微操作的节拍安排,列出微操作命令的操作时间表,然后写出每一个微操作命令(控制信号)的逻辑表达式,最后根据逻辑表达式画出相应的组合逻辑电路图

  • 1. 列出微操作命令的操作时间表
    《计算机组成原理》第十章:控制单元的设计【知识点总结】_第8张图片
    《计算机组成原理》第十章:控制单元的设计【知识点总结】_第9张图片
    《计算机组成原理》第十章:控制单元的设计【知识点总结】_第10张图片
    当然,在设计逻辑图的时候要考虑门的扇入系数和逻辑级数。如果采用现成芯片,还需选择芯片型号
    采用组合逻辑设计方法设计控制单元,思路清晰,简单明了,但因为每一个微操作命令都对应一个逻辑电路,因此一旦设计完毕便会发现,这种控制单元的线路结构十分庞杂,也不规范。而且指令系统功能越全,微操作命令就越多,线路也越复杂,调试就更困难。
    为了克服这些缺点,可采用微程序设计方案。


2. 微程序设计


2.1 微程序设计思想的产生

微程序设计思想是英国剑桥大学教授M.V.Wilkes在1951年首先提出来的,为了克服组合逻辑控制单元线路庞杂的缺点,他大胆设向采用与存储程序相类似的方法,来解决微操作命令序列的形成。

Wilkes提出,将一条机器指令编写一个微程序,每一个微程序包含若干条微指令,每一条微指令对应一个或几个微操作命令。然后把这些微程序存到一个控制存储器中,用寻找用户程序机器指令的方法来寻找每个微程序中的微指令。由于这些微指令是以二进制代码形式表示的,每位代表一个控制信号(若该位为1,表示该控制信号有效;若该位为0,表示此控制信号无效),因此逐条执行每一条微指令,也就相应地完成了一条机器指令的全部操作。可见,微程序控制单元的核心部件是一个控制存储器。由于执行一条机器指令必须多次访问控制存储器以取出多条微指令来控制执行多条微指令来控制执行各个微操作,因此要求控制存储器的速度较高。但是在那时候电子器件的生成水平有限,因此这个微程序
设计思想并未实现,直到1964年的4月,世界上第一台微程序设计的机器IBM 360才研制成功。

**微程序设计省去了组合逻辑设计过程中对逻辑表达式的化简步骤,**无须考虑逻辑门级数和门的扇入系数,使设计更简便,而且由于控制信号是以二进制代码的形式出现的,因此只要修改微指令的代码,就可改变操作内容,便于调试、修改,甚至增删机器指令,有利于计算机仿真


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

1. 机器指令对应的微程序
采用微程序设计方法来 设计控制单元的过程就是编写每一条机器指令的微程序,它是被执行每条机器指令所需的微操作命令的先后顺序而编写的,因此,一条机器指令对应一个微程序,如下图所示,图中每一条机器指令都与一个以操作性质命名的微程序对应
《计算机组成原理》第十章:控制单元的设计【知识点总结】_第11张图片
由于任何一条机器指令的取指令操作是相同的,因此将取指令操作的命令统一编成一个微程序,这个微程序只负责将指令从主存单元中取出送至指令寄存器中。此外,如果指令是间接寻址,其操作也是可以预测的,也可先编出对应间址周期的微程序。当出现中断时,中断隐指令所需完成的操作可由一个对应中断周期的微程序控制完成。这样,控制存储器中的微程序个数应为机器指令数再加上对应取指、间接寻址和中断周期的3个微程序。

2. 微程序控制单元的基本框图
下图示意了微程序控制单元的基本组成。
《计算机组成原理》第十章:控制单元的设计【知识点总结】_第12张图片
图中点画线框内为微程序控制单元,其中的控制存储器(控存)是微程序控制单元的核心部件,用来存放全部微程序,CMAR是控存地址寄存器,用来存放欲读出的微指令地址;CMDR是控存数据寄存器,用来存放从控存读出的微指令;顺序逻辑是用来控制微指令序列的,具体就是控制形成下一条微指令(后续微指令)的地址,其输入与微地址形成部件(指令寄存器相连)、微指令的下地址字段以及外来标志有关。
微指令的基本格式如下图所示,共分两个字段,一个为操作控制字段,该字段发出各种控制信号,另一个为顺序控制字段,它可指出下条微指令的地址,以控制微指令序列的执行顺序。
《计算机组成原理》第十章:控制单元的设计【知识点总结】_第13张图片

3. 工作原理
假设有一个用户程序如下所示,它存于2000H为首地址的主存空间内。

LDA X
ADD Y
STA A
STP

下面会结合不同机器指令所对应的机器微程序(图10.4)和微程序控制单元的基本组成(图10.5),分析运行上述程序时微程序控制单元的工作原理。
《计算机组成原理》第十章:控制单元的设计【知识点总结】_第14张图片
《计算机组成原理》第十章:控制单元的设计【知识点总结】_第15张图片
《计算机组成原理》第十章:控制单元的设计【知识点总结】_第16张图片
《计算机组成原理》第十章:控制单元的设计【知识点总结】_第17张图片


2.3 微指令的编码方式

微指令的编码方式又称为微指令的控制方式,它是指如何对微指令的控制字段进行编码,以及形成控制信号,主要有以下几种:

  • 1. 直接编码(直接控制)方式
    在微指令的操作控制字段中,每一位代表一个微操作命令,这种编码方式即为直接编码方式。如下图所示,这种方式含义清晰,而且只要微指令从控存中读出,即刻可由控制字段发出命令,速度快。但由于机器中微指令操作命令很多,可能使微指令操作控制字段达几百位,造成控存容量极大。《计算机组成原理》第十章:控制单元的设计【知识点总结】_第18张图片

  • 2. 字段直接编码方式
    这种方式就是将微指令的操作控制字段分成若干段,将一组互斥的微操作命令放在一个字段内,通过对这个字段译码,便可对应每一个微命令,如下图所示,这种方式因靠字段直接译码发出微命令,故又有显式编码之称。
    《计算机组成原理》第十章:控制单元的设计【知识点总结】_第19张图片
    采用字段直接编码方法可用较少的二进制信息表示较多的微操作命令信号。例如,3位二进制代码译码后可表示7个互斥的微命令,留出一种状态表示不发微命令,与直接编码用7位来表示7个微命令相比,减少了4位,缩短了微指令的长度。但由于增加了译码电路,使微程序的执行速度稍微减慢

  • 3. 字段间接编码方式
    这种方式一个字段的某些微命令还需由另一个字段中的某些微命令来解释,如下图所示,图中字段1译码的某些输出受字段2译码输出的控制,由于不是靠字段直接译码发出微命令,故称为字段间接编码,又称为隐式编码。
    《计算机组成原理》第十章:控制单元的设计【知识点总结】_第20张图片

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

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


2.4 微指令序列地址的形成

《计算机组成原理》第十章:控制单元的设计【知识点总结】_第21张图片
由上图可见,后续微指令的地址大致由两种方式形成。

  • 1. 直接由微指令的下地址字段指出(这种方式也成为断定方式)
    比如下图中的大部分微指令的下地址字段直接指出了后续微指令的地址
    《计算机组成原理》第十章:控制单元的设计【知识点总结】_第22张图片

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

《计算机组成原理》第十章:控制单元的设计【知识点总结】_第23张图片
《计算机组成原理》第十章:控制单元的设计【知识点总结】_第24张图片
《计算机组成原理》第十章:控制单元的设计【知识点总结】_第25张图片


2.5 微指令格式

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

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

  • 2. 垂直型微指令
    垂直型微指令的特点是采用类似机器指令操作码的方式,在微指令字中,设置微操作码字段,由微操作码规定微指令的功能

比较:
水平型微指令 比 垂直型微指令 并行操作能力强、效率高、灵活性强
水平型微指令 比 垂直型微指令 执行一条机器指令所需的微指令数目少,因此速度更快
水平型微指令用较短的微程序结构换取较长的微指令结构,而垂直型微指令是用较长的微程序结构换取较短的微指令结构**
水平型微指令与机器指令差别较大,垂直型微指令与机器指令差别较小


2.6 静态微程序设计和动态微程序设计

通常指令系统是固定的,对应每一条机器指令的微程序是计算机设计者事先编好的,因此一般微程序无须改变,这种微程序设计技术称为静态微程序设计,其控制存储器一般采用ROM。
如果可以通过改变微指令和微程序来改变机器的指令系统,这种微程序设计技术称为动态微程序设计,控制存储器采用EPROM(带电可编程的只读存储器,可以改变其中的指令和程序)。


2.7 毫微程序设计

微程序用来解释机器指令毫微程序用来解释微程序,而组成毫微程序的毫微指令则是用来解释微指令的。
机器指令 <——微程序(微指令) <—— 毫微程序(毫微指令)

采用毫微程序设计的计算机的优点是用少量的控制存储器空间来达到程序高度的并行

毫威程序设计采用两级微程序的设计方法。
第一级微程序为垂直型微指令,并行功能不但有严格的顺序结构,有它确定后续微指令的地址,当需要时可调用第二级。
第二级微程序为水平型微指令,具有很强的并行操作能力,但不包含后续微指令的地址。
《计算机组成原理》第十章:控制单元的设计【知识点总结】_第26张图片
《计算机组成原理》第十章:控制单元的设计【知识点总结】_第27张图片


2.8 串行微程序控制和并行微程序控制

《计算机组成原理》第十章:控制单元的设计【知识点总结】_第28张图片


2.9 微程序设计举例

暂时没看了

你可能感兴趣的:(《计算机组成原理》第十章:控制单元的设计【知识点总结】)