预习计算机组成原理之控制单元设计——笔记八

系列文章目录

第十章 控制单元的设计



一、组合逻辑设计

1.1 组合逻辑控制单元框图

T 0 T_0 T0 ~ T m T_m Tm一共m+1个节拍信号,掌控着控制信号的先后关系
CU发出什么控制信号取决于现在进行的是什么指令还有标志信号(跳转指令),
n位操作码可以译码为 2 n 2^{n} 2n个操作
假设一次只有一条线为高电平,表示执行此操作
C0 C1 C2—Ck 送往CPU,但是可以一个或多个有效,表示这几个是可以并行操作的,无时间先后顺序
多个有效也可能是两个信号操作的时间都非常短,有一定先后顺序,但是在一个节拍中能够实现
在这里插入图片描述
节拍的信号就是在时钟控制下产生的
在这里插入图片描述

在这里插入图片描述

1.2 微操作的节拍安排 (四个周期的微操作安排)

这里一个机器周期内包含多少个节拍与需要控制信号数量、控制信号复杂程度以及控制信号之间是否可以
并行都有关系,需要多少个节拍具体分析。这里我们假设一个机器周期有三个节拍

CU不只产生C0~C13 一共十三个控制信号还有ALU右侧的控制信号!这些都是CU在时钟、指定操作码
以及给定的标志的输入下,在给定的节拍产生的。
CU也可以通过控制信号来进行修改标志位

在这里插入图片描述

1.2.1 微操作时序安排原则

某一个控制信号安排在哪一个机器周期?哪一个节拍上?

原则二:可以并行执行的微操作,不会发生资源冲突的微操作尽量安排并行
原则三:对于占用时间很短的微操作可以让它在一共节拍完成,比如可以让一个在节拍上升沿一个在下降沿
在这里插入图片描述

1.2.2 取指周期

T0周期被控对象一个是MAR一个是存储器(1->R),因此可以并行完成
T3节拍,OP(IR)-> ID 的时间很短可以忽略不计,因此两个微操作可以放在一起
但是要注意但操作顺序不能改,原则三是时间很短但是有时序

注:ID是CU中的指令译码器
在这里插入图片描述

对于这个很特殊的OP ( IR )-> ID指令,也就是原则三的这个微操作老师的解释如下:
MDR->IR寄存器的CPU内部传输用时是否也很短可以合并呢,老师的回复是他们是时序电路还是需要时钟的
HIT的老师真的太温柔了,我哭死。
在这里插入图片描述

1.2.3 间址周期

注意,这个MDR到IR是可以选的,可写可不写
在这里插入图片描述

1.2.4 执行周期

CLA是对累加器清零操作,T0和T1节拍可以什么都不做(其实可以安排在任意节拍中,这里假设是T2)
COM是取反操作,将ACC每一位取反然后存在ACC中
SHR算术右移,将ACC内容右移,符号位保持不变( A C 0 AC_{0} AC0写回),后面位向右移动
非访存指令
在这里插入图片描述
CSL是循环左移,最高位也就是第0位送到最低位
STP 停机标志置0
ADD X指令的加法运算的T_{2}的控制器需要将打开AC和MDR的数据通路,还有一个控制信号需要用于ALU加法控制
在这里插入图片描述

A 0 A_0 A0是累加器ACC的符号位,1则负,0则正(这里是为了简化设计的写法,其实应该是标志寄存器)
在这里插入图片描述

1.2.5 中断周期

0->EINT表示硬件关中断
硬件关中断可以放在T0 T1和T3都行,因此都可以,只要合理即可。

一定不能忘记向量地址送到PC,转移到中断处理程序
注意:
1.向量地址送PC,也就是形成处理程序入口地址是要更新PC,在保存断点后进行
2.中断隐指令不是指令,由硬件自动完成,它只实现了一个指令周期的中断周期的部分微操作
这部分区分很容易考!!!!!!!!!!!!!

在这里插入图片描述

1.3 组合逻辑设计(根据节拍安排设计组合逻辑)

状态条件:“是否有间址”这样的条件,在我们做完取址周期的几个微操作后还需要附加判断是否下一个进入间址周期
I有效则设置IND为1,表示进入间址周期
若I无效,取址后可以直接进入执行阶段进行操作

取址周期
T0告诉读取哪一个地址的数据
T2有一个间址的标志,用I标志判断是下一个是间址周期还是执行周期,I标志来自ID寄存器
CLA和COM不会进入间址周期,其他都可能访存进入间址周期因此1->IND是空白

访
间址周期
I N D ‾ \overline{IND} IND进行判断,若IND无效那么进入执行阶段,判断间接寻址没有结束,进入下一个间址周期

在这里插入图片描述

执行周期
PPT这里少了一行在T2中对AC取反的信号,这个信号对应的是COM信号
还少了Ad(IR)送PC是对应JMP的微操作
请添加图片描述

为了实现组合逻辑电路,进行逻辑表达式的书写
下面的表达式是MDR的使能信号
但是他的速度快,用RISC的指令系统喜欢这种组合逻辑

请添加图片描述
通常用于RISC中

请添加图片描述

二、设计微程序设计方式控制器

2.1 微程序设计思想与简介

组合逻辑缺点:如果指令集增加其他新的指令,与其有关的微操作或者控制命令的逻辑电路都需要修改

一个节拍中可以有一个/两个或者多个微操作(如果可以并行),可以将一些微操作命令存储起来变成一个微指令
每个节拍对应一个微指令,这些微指令也要多个微指令对应一个微程序

微指令的每一个位置保存了一个微操作命令,1表示对应的微操作在这个节拍发出

存入ROM
请添加图片描述

2.2 微程序控制单元框图

这里微程序里面只有三个微指令是因为这里我们假设每个机器周期三个节拍
所有取指令、间接寻址以及中断都是一致的,所以单独编写一个微程序

请添加图片描述
M是取值周期的开头,对应的执行周期结束后会转移到M是回到取址周期的开头
在这里插入图片描述

核心是控制存储器,微程序微指令都保存在控制存储器中,对它进行读操作,微指令一条一条取出,那么我们就需要知道
微指令的地址!微指令的地址保存在CMAR“控制存储器地址寄存器”中

没有IR寄存器,CMDR可以直接向外发出控制信号
CMDR是控制存储器数据寄存器,存储从控制存储器读出的微指令
每个指令的执行周期是不一样的,因此需要通过OP操作码由微地址形成部件得到对应执行阶段微程序的首地址
顺序逻辑是因为CMAR地址有多种来源,用顺序逻辑从多个来源中选择一个来源送到CMAR(其中一个是微地址形成部件给的程序首地址,刚开始执行这个微程序的时候会选择它,另一个就是“下地址”,顺序完成微指令的时候会选择这个“下地址”)
顺序逻辑的控制信号有标志、时钟

操作控制由01组成,每一位表示一个微操作控制信号,这一位是1那么就是这个操作命令是有效的

请添加图片描述
取址周期的M+2的下地址字段是什么取决于执行周期的地址,这个由微地址形成部件形成(没有间接寻址情况下)
间址周期微程序也是如此
在这里插入图片描述

2.3 工作原理

主存中的一个程序对应控存的一段指令
在这里插入图片描述
这里的OP(IR)->ID怎么没了?
这个译码的过程已经不在取指周期里面了,他是在执行阶段的第一步,也就是微地址形成部件完成的
请添加图片描述
送的是控存来的地址
注意把Ad(CMDR)也就是下地址送到CMAR在这里已经进行,不需要下次一次的取址周期再做
在这里插入图片描述
关键是
微指令的 操作控制字段如何形成微操作命令?
微指令的 后续地址如何形成?

请添加图片描述

2.4 关键问题一:微指令的编码(控制方式)

2.4.1 直接编码方式

直接编码对应的是上面介绍时的一位代表一个控制信号
不需要再进行译码所以速度最快,但是它比较浪费空间

请添加图片描述

2.4.2 字段直接编码方式(显式编码)

这里是用每一段的编码进行译码后发出控制信号,这样减少操作控制的位数( 2 n 2^{n} 2n到n),减少控存的空间(微指令长度减小)同时,这就要求每个被译码的字段编码的信号是不能同时存在的,是互斥并行的,但是不同段的编码对应的信号可以同时发生
缺点:增加了译码的时间,并且由互斥的限制
请添加图片描述

2.4.3 字段间接编码方式(隐式编码)和混合编码方式

隐式编码:译码结果不仅和本字段的输入有关也和其他字段的译码结果有关
混合编码:比如常用的信号用直接编码,而不常用的可以用字段直接编码或者字段间接编码方式
在这里插入图片描述

2.5 关键问题二:微指令序列地址的形成

下一条指令从哪里来?

  1. 可以从操作码到微地址形成部件得到
  2. 下地址形成
  3. 增量计数器(如果微指令顺序执行,直接用增量计数器而省略下地址字段了)
  4. 分支转移
  5. 测试网络
  6. 由硬件产生微程序入口地址
    请添加图片描述
    测试网络:
    顺序控制字段就是下地址字段,这里的测试源就是状态和条件,对低位地址进行变换,和原来的高位地址合并为新的地址送到CMAR。
    用于:微程序小范围跳转

由硬件产生微程序入口地址:
第一条微指令地址往往由硬件产生,这在前面对取址周期的第一条指令地址M就已经讨论过。与此相同,中断周期和间址周期的情况也是这样,第一条微指令的地址可以由硬件直接生成
在这里插入图片描述

2.6 微指令序列地址选择连线图(重要!)

这里主要理解”多路选择“的四个选择
可能是下地址,可能是微地址形成部件形成的执行微程序的首地址,可能是硬件形成的间址微程序/中断微程序的首地址,也可能是省略下地址的增量计数器

分支逻辑以标志状态和转移方式为输入进行选择
请添加图片描述

2.7 微指令格式

2.7.1 两种微指令格式定义

这里的垂直型微指令,一个只能定义一个操作,一条指令可以控制硬件完成一个复杂的操作,这个微指令执行的操作甚至也是有先后顺序的
它是由操作码字段直接规定了这个微指令的功能,这与机器指令相似,但是水平型微指令和机器指令差别较大
请添加图片描述

2.7.2 两种微指令格式比较

水平型微指令,直接编码可以直接输出
机器指令和垂直型微指令很像,因此和水平型微指令差别大

注意一点:就是水平型的是单个微指令比较长,但是微程序中含的微指令个数少;垂直型微指令短但是微指令条数多
请添加图片描述

三、 静态微程序设计、动态微程序设计以及毫微程序设计

静态:CPU指令集不再改变,保存在ROM中不再进行修改
动态: 修改扩展CPU指令集,增加指令集指令,也可以直接改变微指令微程序进行对机器指令的改变,使用的EPROM或者是SROM,可以进行修改
请添加图片描述

3.1 毫微程序控制器的基本组成

注意这里我们用毫微程序的微程序大多都是因为其微指令是垂直型微指令,其操作码部分压缩很厉害,故需要毫微程序。但是毫微程序的指令要水平型微指令
请添加图片描述

四、串行的微程序控制和并行微程序控制

并行:流水线
请添加图片描述

五、微程序设计举例(非总线CPU)

5.1 机器指令的微操作以及节拍安排

微操作放在微指令的控制字段
节拍安排决定微指令先后顺序
请添加图片描述
请添加图片描述
要注意的还是取址微程序的第一条指令地址的来源,可能执行微程序的最后一条指令也可能是硬件形成的

注意这里黑色的指令与之前一致,蓝色指令是为了形成下一条指令而插入的
请添加图片描述
注意这里的指令的执行阶段的微操作不需要再等空闲节拍,那是组合逻辑的控制器设计,微程序控制器设计读出就可以进行操作
在这里插入图片描述
在这里插入图片描述
请添加图片描述
在这里插入图片描述

微指令来看JMP的指令只是一个正常的指令,CPU内部进行了跳转,JMP微指令只是继续执行
全部的微操作一共20种,合在一起得到微指令38条,这些微指令是不能合并的,同一个指令在不同的微程序中不一样,存储的地址不一样,因此比微操作个数多
在这里插入图片描述

5.2 微指令的格式(编码方式)

这里假设就是使用直接控制,水平型的微指令
因此微指令的长度为20+6=26
直接控制:二十个微操作所以就是20位操作控制字段,每个微操作一位;但是微指令的下地址字段位数需要log
在这里插入图片描述
我们的38条微指令是由19条是送CMAR寻址下一个微指令的,
18条是Ad(CMDR)-> CMAR 还有一条是OP(IR)->微地址形成部件 -> CMAR

38条微指令里面有19个蓝色的,形成后续地址的地址,都涉及到CMAR这个寄存器,删掉CMAR寄存器来减少指令
直接用Ad(CMDR)送控存地址线,省去19条微指令,两个微操作

CMAR直接不要了,多路选择不需要再经过一个节拍锁存CMAR中
请添加图片描述
优化后再加几位为以后增加指令做准备
请添加图片描述

5.3 编写微指令码点

在取址微程序的有关码点的定义如下:
在这里插入图片描述
下面这个图一些比如IR的操作码送微地址形成部件等微操作因为篇幅限制没有写

在这里插入图片描述

六、数据通路

在这里插入图片描述
DR是否接收数据,根绝DRin来进行控制(访存通路)
因为通路都带寄存器,因此下面需要对时钟频率进行讨论
在这里插入图片描述
D触发器,在数据输入(信号传入)的时候需要等待信号稳定,所以需要的是setup这个时间,就是建立时间。
还有保持时间和延迟时间,他们三个时间影响着时钟频率
在这里插入图片描述
这里需要找到关键路径就是门最多的路径,他们用的时间最长,他的时间结束的时候必须要在B寄存器的建立时间之后
在这里插入图片描述
考虑最快的路径,也不能覆盖修改原来的数据

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在各个周期的结束插入寄存器,流水线
在这里插入图片描述

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值