计算机组成原理【六】:控制单元的设计

导图


组合逻辑设计


组合逻辑控制单元框图

首先我们再次分析CU的外特性(再第九章,我们曾分析过):

输入: 节拍发生器信号、操作码译码信号、标志位信号

输出:操作码对应阶段需要的发送到CPU内部或者系统总线的控制信号

注意CU输出位为K位,根据设计的实际情况而来,因为虽然是2n条指令,每一条指令所完成需要的微操作就那么几种,设计的CU微操作只有K种,通过不同组合完成不同操作,这和操作码的数量无关

这里强调几点:1、节拍的宽度应该保证能使得数据信息通过数据总线从源到目的地的时间,这样才能保证微指令的操作成功。因为最花时间的也就是访存等操作了如果在节拍中访存操作微指令例如M(MAR)->MDR能够完成,那么对CPU内部操作的指令也一定能完成,因为他们更快。2、节拍发生器用来控制指令的顺序性。我们通过设计将某个节拍作为某个微指令控制信号的产生条件,这样就能控制微指令的执行顺序。3、标志位也是用来控制信号的产生,例如条件跳转信号的标志,处于哪个工作周期的标志。

通过这样层层条件控制,我们最终能够达到微指令执行的顺序性

指令由操作码控制,一条指令再被分成多个机器周期执行这由工作钟周期标志控制,每个工作周期干什么活由节拍序列控制,每个节拍长度能够支撑完成控制信号所代表微操作的执行。每个指令都可以这样划分,然后最终落实到某个节拍发出某个控制信号,然后对应部件执行微操作

微操作的节拍安排

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

组合逻辑设计步骤

1、列出微操作命令的操作时间表
2、写出微操作命令表达式
3、画出微操作命令逻辑图

组合逻辑设计缺点

指令系统功能越全,微操作命令越多,线路越复杂,调试就更困难。

微程序设计


微程序控制单元的基本框图以及工作原理

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

CU框图的输入和组合逻辑设计一致(但是这里我们不再对节拍信号具有强要求,只要是节拍信号能够作为时钟信号输入即可因为不同程序运行过程已经是顺序储存好了的了不必再根据节拍区分某时间段执行什么),输出也一致,所以如果我们把CU视为一个黑盒,那么这两种设计产生的结果一致只是内部运行机制的不同

程序运行过程见课本,值得注意的是初始化的时候,我们需要将该机器指令主存所在地址送入PC再将微程序从取址微程序开始启动。

控存只需要读出所以可以使用ROM

-----------------------本文结束 感谢阅读-----------------------
坚持原创技术分享,您的支持将鼓励我继续创作!恰饭^.^~