CPU由运算器和控制器构成,控制器包括PC、IR、MAR、MDR、CU等部分构成,其中CU是控制单元,负责分析指令并发出各种微操作命令序列,其分为硬布线控制器与微程序控制器两种,常考硬布线控制器的概念、微程序控制器的概念和工作原理、两种控制器的对比、RISC与CISC的对比。
文章目录
一、硬布线控制器
硬布线控制器由复杂的组合逻辑门电路和触发器构成,也称组合逻辑控制器,其原理是根据指令的要求、当前的时序及内外部的状态,按时间的顺序发送一系列微操作控制信号。将指令译码器ID和节拍发生器CLK从CU中分离出来,并将存放在IR的n位操作码经过译码电路产生2n个输出,每种操作码对应一个输出送至CU,可以得到简化的硬布线控制器控制单元工作图:
二、微程序控制器
(一)微程序控制器的概念
微程序控制器采用存储逻辑实现,也就是将微操作信号代码化,使每条机器指令转化成为一段微程序并存入一个专门的存储器(控制存储器)中,微操作控制信号由微指令产生。
⭐一段程序如何化为微操作?
一段程序可分为一条条指令,每条指令对应一段微程序,每段微程序又可分为一条条微指令,每条微指令又可分为一条条微命令,每条微命令对应一种微操作(一组控制信号)。微程序-微指令-微命令-微操作之间的顺序有点难记,可以记住“程指命操”,程昱是曹操手下五大谋士之一,程昱指着天下局势图请命于曹操勿投奔袁绍,这样就记下来了(虽然还是有点难记… …)。
微程序控制器的主要工作是将微程序转化为一条条微指令。
(二)微程序控制器的组成
下图所示为一个微程序控制器的基本结构,其主要部件包括:
①起始和转移地址形成部件(或简称微地址形成部件)。用于产生初始和后继微地址,以保证微指令的连续执行。
②微指令地址寄存器。接收微地址形成部件送来的微地址,为读取微指令做准备。
③控制存储器。它是微程序控制器的核心部件,用于存放各指令对应的微程序。
④微指令寄存器。其位数等于微指令字长。
(三)微程序控制器的工作流程
微程序控制器的工作流程实际上就是在微程序控制器的控制下计算机执行机器指令的过程,这个过程可描述为:
①执行取指令公共操作。在机器开始运行时,自动地将取指微程序的入口地址送入μPC,并从CM中读出相应的微指令并送入μIR。取指微程序的入口地址一般为CM的0号单元,取指微程序执行完成后,从主存中取出的机器指令就已存入指令寄存器中。
②由机器指令的操作码字段通过微地址形成部件产生该机器指令所对应的微程序的入口地址,并送入μPC。
③从CM中逐条取出对应的微指令并执行。
④执行完对应于一条机器指令的一个微程序后,又回到取指微程序的入口地址,继续第①步,以完成取下一条机器指令的公共操作。
以上就是一条机器指令的执行过程,如此周而复始,直到整个程序执行完毕。
(四)微指令的格式
微指令格式与微指令的编码方式有关,通常分为水平型微指令和垂直型微指令两种。
1.水平型微指令
从编码方式看,直接编码、字段直接编码和字段间接编码都属于水平型微指令。水平型微指令的基本指令格式如图所示,指令字中的一位对应一个控制信号,有输出时为1,否则为0。一条水平型微指令定义并执行多个并行操作的微命令。
水平型微指令的优点是微程序短,并行能力强,执行速度快;缺点是微指令长,编写微程序较麻烦。
2.垂直型微指令
采用类似机器指令操作码的方式,在微指令字中设置微操作码字段,垂直型微指令的基本格式如图所示,一条垂直型微指令通常只能定义并执行一种微命令。
垂直型微指令的优点是微指令短、简单、规整,便于编写微程序;缺点是微程序长,执行速度慢,效率低。
(五)微指令编码方式
微指令的编码方式也称微指令的控制方式,是指如何对微指令的控制字段进行编码,以形成控制信号。编码的目标是在保证速度的情况下,尽量缩短微指令字长。
1.直接编码方式
直接编码法无须进行译码,微指令的操作控制字段中每一位都代表一个微命令。设计微指令时,选用或不选用某个微命令,只要将表示该微命令的对应位设置成1或0即可。每个微命令对应并控制数据通路中的一个微操作。这种编码的优点是简单、直观,执行速度快,操作并行性好:缺点是微指令字长过长,n个微命令就要求微指令的操作字段有n位,造成控制存储器容量极大。
2.字段直接编码方式
将微指令的操作控制字段分成若干小字段,把互斥性微命令放在同一字段中,把相容性微命令放在不同字段中,每个字段独立编码,每种编码代表一个微命令且各字段编码含义单独定义,与其他字段无关,这就是字段直接编码方式。这种方式可以缩短微指令字长,但因为要通过译码电路后再发出微命令,因此比直接编码方式慢。
微命令字段分段的原则:
①互斥性微命令分在同一段内,相容性微命令分在不同段内。
②每个小段中包含的信息位不能太多,否则将增加译码电路的复杂性和译码时间。
③一般每个小段还要留出一个状态,表示本字段不发出任何微命令。因此,当某字段的长度为3位时,最多只能表示7个互斥的微命令,通常用000表示不操作。
3.字段间接编码方式
一个字段的某些微命令需由另一个字段中的某些微命令来解释,由于不是靠字段直接译码发出的微命令,因此称为字段间接编码,也称隐式编码。这种方式可进一步缩短微指令字长,但因削弱了微指令的并行控制能力,因此通常作为字段直接编码方式的一种辅助手段。
(六)微指令寻址方式
后继微地址的形成主要有以下几个基本类型:
1)由微指令的后继地址字段(也称下地址字段)指出。在微指令格式中设置一个后继地址字段,由微指令的后继地址字段直接指出后继微指令的地址,这种方式也称断定方式。
2)根据机器指令的操作码形成。当机器指令取自指令寄存器后,微指令的地址由操作码经微地址形成部件形成,该部件输出的是对应机器指令微程序的首地址。
3)增量计数器法,即(μPC)+1→μPC,适用于后继微指令地址是连续的情况。
4)根据各种标志决定下一条微指令分支转移的地址。
5)由硬件直接产生微程序入口地址。电源加电后,第一条微指令的地址可由专门的硬件电路产生,并送至μPC,这个地址即为取指周期微程序的入口地址。
三、两种控制器对比
四、RISC与CISC对比
关于CISC与RISC,CISC是复杂指令系统计算机,RISC是精简指令系统计算机,其各方面对比如下:
写在后面
这个专栏主要是我在学习408真题的过程中总结的一些笔记,因为我学的也很一般,如果有错误和不足之处,还望大家在评论区指出。希望能给大家的学习带来一点帮助,共同进步!!!
参考资料
[1]王道408教材(2025版)
[2]王道课程资料