10.1-控制单元CU的组合逻辑设计

【README】

1.本文总结自bilibili《计算机组成原理(哈工大刘宏伟)》的视频讲解,非常棒,墙裂推荐;

2.精简指令集RISC(简单指令集合)采用的就是这种组合逻辑设计的硬连方式(非常重要)

3.组合逻辑设计应用到RISC,进而应用到了 X86cpu的设计上(查看文末补充内容);


【1】组合逻辑控制单元框图

【1.1】CU外特性

10.1-控制单元CU的组合逻辑设计_第1张图片

CU要发出各种控制命令,这些控制信号是有先后关系的,每一个控制信号的发出都是由给定的时间点发出的,这种相互关系和时间点的确定,就是有节拍信号来控制的;
即需要节拍发生器


机器主频信号送入节拍发生器,进而产生节拍信号(T0到Tm);
CU到底要产生什么控制命令,和现在执行的指令有直接关系;如指令在IR中,需要译码后才知道;n位操作码具有2^n-1个结果;


CU到底发出什么控制信号,还和标志有关系;如跳转指令;与跳转条件是否成立有关;
假设,给定的控制信号有k+1个(C0 C1 …Ck);有1个或几个有效,几个有效表示在一个节拍中这些控制信号可以并行操作的;



【1.2】节拍信号

10.1-控制单元CU的组合逻辑设计_第2张图片

系统时钟是系统的最基本时间单位节拍信号就是在时钟的控制下产生的;在不同的时钟周期处可以产生不同的节拍;
由节拍信号控制各种微操作命令发出的时间;
上图的机器周期包含4个节拍;

【小结】机器周期与时钟周期:

机器周期:完成一条基本操作所需要的时间(通常以访存时间为基准);一个机器周期可以划分为多个时钟周期;

时钟周期:控制计算机操作的最小单位时间;一个时钟周期可以产生1个或多个微操作命令(若微操作命令可以并行执行);


【2】微操作的节拍安排

10.1-控制单元CU的组合逻辑设计_第3张图片

【2.1】 安排微操作时序的原则

10.1-控制单元CU的组合逻辑设计_第4张图片

  1. 原则一:微操作的先后顺序不得修改;如只有把指令送入IR后,才可以把IR中的指令送入CU进行译码;
  2. 原则二:被控制对象不同的微操作,尽量安排在一个节拍内;即可以并行执行的微操作,微操作没有先后顺序,这样的微操作会安排在同一个节拍中(因为操作的对象不同);
  3. 原则三:占用时间短的微操作,尽量安排在一个节拍内,且有先后顺序;如一个在上升沿,一个在下降沿;

10.1-控制单元CU的组合逻辑设计_第5张图片

取指周期微操作的节拍安排:T0 T1 T2节拍都做了2个操作;即每个时钟周期并行做了2个微操作


【2.4】执行周期微操作的节拍安排

【2.4.1】指令及节拍安排

10.1-控制单元CU的组合逻辑设计_第6张图片

CLA

清零,把0送入acc寄存器

COM

取反

SHR

算术右移

 10.1-控制单元CU的组合逻辑设计_第7张图片

CSL

循环移位

STP

停机操作

ADD X

加法操作

STA X

把累加器ACC的数据送入存储单元X;

 10.1-控制单元CU的组合逻辑设计_第8张图片

LDA X

把存储单元X的数据送入CPU的累加器ACC寄存器;

JMP X

跳转到给定地址X存储的指令

BAN X

条件转移指令;

 10.1-控制单元CU的组合逻辑设计_第9张图片


【3】 控制单元CU的组合逻辑设计

【3.1】组合逻辑设计步骤

对于 取指周期,间址周期,执行周期需要哪些微操作呢?

【3.1.1】取指周期微操作步骤

10.1-控制单元CU的组合逻辑设计_第10张图片

在节拍T0中,CLA COM ADD STA LDA JMP 指令的微操作都需要执行 PC -> MAR ,所以方格填1,这是1的含义;

1->IND : 进行间址周期;
1->EX : 进入执行周期;

【3.1.2】间址周期微操作步骤

10.1-控制单元CU的组合逻辑设计_第11张图片

 【3.1.3】执行周期微操作步骤

10.1-控制单元CU的组合逻辑设计_第12张图片


 【3.2】写出微操作命令的最简表达式

10.1-控制单元CU的组合逻辑设计_第13张图片

 根据微操作命令被用到的指令(如CLA COM),写出表达式,从而化简;作为组合逻辑电路的公式,如下:

10.1-控制单元CU的组合逻辑设计_第14张图片

上图就是控制器CU的逻辑框图;
精简指令集RISC采用的就是这种组合逻辑设计的硬连方式
现在处理器分为了两类,1类是整型数处理单元,1类是浮点数处理单元;
而整型数控制单元就是采用上述的组合逻辑设计


【小结】控制单元CU的组合逻辑设计总结

1)组合逻辑设计优点:思路清晰,简单明了;

2)组合逻辑设计缺点:

  • 电路复杂;
  • 不易于扩展:因为每一个控制信号都需要单独的电路,来完成控制信号的生成;如新增一条指令,就需要修改控制器,添加一个电路,因此成本非常高;

3)应用:精简指令集RISC(简单指令集合)采用的就是这种组合逻辑设计的硬连方式(非常重要)


【补充】

以下内容转自 wikipedia,https://zh.wikipedia.org/wiki/%E7%B2%BE%E7%AE%80%E6%8C%87%E4%BB%A4%E9%9B%86%E8%AE%A1%E7%AE%97%E6%9C%BA

补充1)精简指令集计算机(英语:reduced instruction set computer,缩写:RISC)或简译为精简指令集,是计算机中央处理器的一种设计模式。这种设计思路可以想像成是一家模块化的组装工厂,对指令数目和寻址方式都做了精简,使其实现更容易,指令并行执行程度更好,编译器的效率更高。目前常见的精简指令集微处理器包括DEC Alpha、ARC、ARM、AVR、MIPS、PA-RISC、Power ISA(包括PowerPC、PowerXCell)、RISC-V和SPARC等。

  • 目前最常见的复杂指令集 x86 CPU,虽然指令集是CISC的,但因对常用的简单指令会以硬件线路控制尽全力加速,不常用的复杂指令则交由微码循序器“慢慢解码、慢慢跑”,因而有“RISCy x86”之称。

补充2)精简指令集设计中常见的特征:

  • 统一指令编码(例如,所有指令中的op-code永远位于同样的比特位置、等长指令),可快速解译:
  • 泛用的寄存器,所有寄存器可用于所有内容,以及编译器设计的单纯化(不过寄存器中区分了整数和浮点数);
  • 单纯的寻址模式(复杂寻址模式以简单计算指令序列取代);
  • 硬件中支持少数资料类型(例如,一些CISC电脑中存有处理字节字符串的指令。这在RISC电脑中不太可能出现)。

你可能感兴趣的:(计算机组成原理,计算机组成原理)