计算机组成原理完整学习笔记(八):控制器设计

前言

如果你对这篇文章可感兴趣,可以点击「【访客必读 - 指引页】一文囊括主页内所有高质量博客」,查看完整博客分类与对应链接。


第八章 控制器设计

8.1 组合逻辑控制器

8.1.1 操作码译码

CU 执行的关键在于 IR 将指令操作码部分传入译码器中,译码器根据指令操作码部分输出对应的指令编号。

CU 再根据输入的指令编号,输出相应的微操作命令。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pirgsuFp-1597541471002)(media/15774304772655.jpg)]

8.1.2 微操作设计概述

微操作设计的关键任务

由于控制器实质是根据当前指令功能,依次发出一系列控制信号,因此我们需要了解如下信息。

  1. 有哪些控制信号
  2. 这些控制信号如何依次发出?即这些控制信号应该安排到哪个机器周期的哪个节拍中发出。

微操作设计的前提假设

  • 采用同步控制方式。
  • 一个机器周期内有 3 个节拍。(时钟周期)
  • CPU 内部结构采用非总线方式。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xnIzK8aD-1597541471006)(media/15774308168425.jpg)]

安排微操作时序的原则

  1. 微操作的先后顺序一般不得随意更改。
  2. 被控对象不同的微操作尽量安排在一个节拍内完成。
    • 由于被控对象不同,因此不同微操作可以并行执行,提高执行效率。
  3. 占用时间较短的微操作,尽量安排在一个节拍内完成,并允许有先后顺序。
    • 两个微操作占用时间非常短,因此可以在同一个节拍内依次执行,加快硬件执行效率。

组合逻辑控制器设计流程

组合逻辑控制器就是一个大规模的组合逻辑电路,因此又称为硬布线控制器。

组合逻辑控制器设计一共分为以下 5 个流程。

  1. 指令周期的微操作节拍安排。
  2. 绘制操作时间表。
  3. 设计微操作命令的最简逻辑表达式。
  4. 设计微操作命令的逻辑电路图。
  5. 综合优化。

组合逻辑控制器设计的特点

  1. 思路清晰,简单明了。
  2. 电路庞杂,调试难,修改难,升级维护难。
  3. 速度快。
  4. 这种设计方式主要被 RISC 处理器采用,因此 RISC 处理器速度快,但一旦更新换代则很难做到兼容。
8.1.3 (1) 指令周期微操作节拍安排

取指周期微操作的节拍安排

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Jv8tl5Y6-1597541471009)(media/15774319276750.jpg)]

间址周期微操作的节拍安排

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MDBRj7Bf-1597541471012)(media/15774319596658.jpg)]

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

以下述十条指令的执行周期为例。

  • CLA(清零)

T 0 , T 1 T_0,T_1 T0,T1 为空, T 2 T_2 T2 时安排 0 → A C 0\rightarrow AC 0AC

  • COM(取反)

T 0 , T 1 T_0,T_1 T0,T1 为空, T 2 T_2 T2 时安排 A C ‾ → A C \overline{AC}\rightarrow AC ACAC

  • SHR(ACC右移,符号位不变)

T 0 , T 1 T_0,T_1 T0,T1 为空, T 2 T_2 T2 时安排 L ( A C ) → R ( A C ) , A C 0 → A C 0 L(AC)\rightarrow R(AC),AC_0\rightarrow AC_0 L(AC)R(AC),AC0AC0

  • CSL(循环左移)

T 0 , T 1 T_0,T_1 T0,T1 为空, T 2 T_2 T2 时安排 R ( A C ) → L ( A C ) , A C 0 → A C n R(AC)\rightarrow L(AC),AC_0\rightarrow AC_n R(AC)L(AC),AC0ACn

  • STP(停机)

T 0 , T 1 T_0,T_1 T0,T1 为空, T 2 T_2 T2 时安排 0 → G 0\rightarrow G 0G

  • ADD X(ACC加上 X 对应数据)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JwhClRAL-1597541471013)(media/15774321632629.jpg)]

  • STA X(存数)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fH9WlvO8-1597541471015)(media/15774321860839.jpg)]

  • LDA X(读数)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RUEUN40x-1597541471016)(media/15774322101061.jpg)]

  • JMP X(跳转)

T 0 , T 1 T_0,T_1 T0,T1 为空, T 2 T_2 T2 时安排 A d ( I R ) → P C Ad(IR)\rightarrow PC Ad(IR)PC

  • BAN X(条件跳转)

T 0 , T 1 T_0,T_1 T0,T1 为空, T 2 T_2 T2 时安排 A 0 ∗ A d ( I R ) + A 0 ‾ ( P C ) → P C A_0*Ad(IR)+\overline{A_0}(PC)\rightarrow PC A0Ad(IR)+A0(PC)PC

中断周期微操作的节拍安排

中断周期即三条中断隐指令的实现。

  • T 0 : T_0: T0: 执行微操作 0 → M A R , 1 → W 0\rightarrow MAR,1\rightarrow W 0MAR,1W 以及硬件关中断
  • T 1 : T_1: T1: 执行微操作 P C → M D R PC\rightarrow MDR PCMDR
  • T 2 : T_2: T2: 执行微操作 M D R → M ( M A R ) , 向量地址 → P C MDR\rightarrow M(MAR),向量地址\rightarrow PC MDRM(MAR),向量地址PC
8.1.4 (2) 绘制操作时间表

在这个步骤中需要根据第一步中设计的微操作来安排每个指令的具体执行过程。下图中空格子表示不执行。

取指周期操作时间表

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5tnV2vEE-1597541471016)(media/15774327101793.jpg)]

间址周期操作时间表

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-aTxLwgtv-1597541471017)(media/15774327447693.jpg)]

执行周期操作时间表

ADD、STA、LDA 三个指令的执行过程如下。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dHKytrmz-1597541471018)(media/15774327656699.jpg)]

其余七条指令的执行过程如下。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xLr5ZekC-1597541471018)(media/15774328001823.jpg)]

8.1.5 (3) 设计微操作命令的最简逻辑表达式

我们以 M ( M A R ) → M D R M(MAR)\rightarrow MDR M(MAR)MDR 这条命令为例。

M ( M A R ) → M D R = F E ∗ T 1 + I N D ∗ T 1 ( A D D + S T A + L D A + J M P + B A N )                 + E X ∗ T 1 ( A D D + L D A ) = T 1 { F E + I N D ( A D D + S T A + L D A + J M P + B A N ) + E X ( A D D + L D A ) } \begin{aligned} & M(MAR)\rightarrow MDR \\ & = FE*T_1+IND*T_1(ADD+STA+LDA+JMP+BAN) \\ & \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ +EX*T_1(ADD+LDA) \\ & = T_1\{FE+IND(ADD+STA+LDA+JMP+BAN)+EX(ADD+LDA)\} \end{aligned} M(MAR)MDR=FET1+INDT1(ADD+STA+LDA+JMP+BAN)               +EXT1(ADD+LDA)=T1{FE+IND(ADD+STA+LDA+JMP+BAN)+EX(ADD+LDA)}

上述的逻辑表达式恰好是根据第二部分中各指令执行的操作时间表来决定的。

我们可以发现其中时钟信号 T 1 T_1 T1,机器周期 F E , I N D , E X FE,IND,EX FE,IND,EX 以及十种操作类型均在下述的硬件电路中已经给出。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NYNHikdd-1597541471019)(media/15774333526688.jpg)]

8.1.6 (4) 设计微操作命令的逻辑图

我们根据上述的最简逻辑表达式设计出下述的逻辑电路图。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-skAwGNkN-1597541471020)(media/15774334441643.jpg)]

8.1.7 (5) 综合优化

上述的过程只涉及到了一条微操作的设计,在实际工作中,我们需要将全部微操作命令的逻辑图综合起来,从整体上进行优化工作。

8.2 微程序控制器工作原理

8.2.1 微程序设计概述

微程序设计思想

以 “微程序-微指令-微操作命令” 三级对一条机器指令进行划分。

一条机器指令对应一个微程序,将微程序存入 ROM 中,称为控制存储器。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xeoNgsmK-1597541471020)(media/15774338828031.jpg)]

微程序与硬布线设计方式的联系

  • 微程序以微指令为单位,硬布线以时钟周期为单位。其中微指令与时钟周期一样,都会发出一个或几个微操作命令。
  • 硬布线方式的三级结构: “指令周期-机器周期-时钟周期-微操作 (控制信号)”
  • 微程序方式的三级结构: “大段微程序-小段微程序-微指令-微操作 (控制信号)”
8.2.2 微程序工作原理

控制存储器的组成

由于指令的取指、间址、中断周期均一致,因此在控制存储器中的固定位置统一存放这三个过程的微程序。并在其余部分依次存放各类操作执行周期对应的微程序。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QE4MOYwq-1597541471021)(media/15774342844197.jpg)]

微程序控制单元的基本框图

CMDR: 控存数据寄存器,保存当前微指令。
CMAR: 控存地址寄存器,保存微指令的地址。

微指令分成两个部分,“操作控制字段” 与 “顺序控制字段” (保存下一条微指令地址,因此也称为 “下址字段”)。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-N4lQSZQE-1597541471021)(media/15774346794384.jpg)]

微程序的存储结构

根据控制存储器中的内容,我们可以看到取指周期的最后一条微指令的下址字段不确定,原因是不知道接下来执行哪一段微程序。

并且所有执行周期微程序最后一条微指令的下址字段均为 M,因为执行完后开始下一条指令的取址。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RRPJNP3a-1597541471022)(media/15774347198028.jpg)]

8.2.3 微程序工作流程

取指阶段

取指阶段入口地址 M 送给 CMAR

微指令的控制字段是一个0、1序列,其中 1 代表一个控制信号的开启。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-j1aDv5gF-1597541471022)(media/15774350458466.jpg)]

执行阶段

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CVfDnlmZ-1597541471023)(media/15774351892575.jpg)]

8.2.3 微程序设计特点总结

特点

  • 指令执行的每个阶段都是一段微程序,共同组成完成指令的微程序。
  • 全部微指令存在控制存储器(CM)中,程序执行过程中只需读出。因此一旦指令集更新换代,也只需要更新 CM 即可,比硬布线方式方便很多。
    • 因此微程序设计方式为 CISC 处理器所采用。

实现关键点

  • 微指令的操作控制字段如何形成微操作命令。
  • 微指令的后续地址如何形成。

8.3 微程序控制器设计方法

8.3.1 微指令的编码方式

直接控制方式

在微指令的操作控制字段中,每一位代表一个微操作命令,这种方式速度最快。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LyztRRBs-1597541471023)(media/15774358040772.jpg)]

在操作控制码字段,某位为 “1” 即表示该控制信号有效。

字段直接编码方式

将互斥的微操作经编码合在一起作为一个 “段”,每段经译码后发出控制信号。

例如 8 个互斥微操作,我们可以用 4 位进行二进制编码,最后再译码得到对应控制信号。(4 位的原因是还有一个无操作信号,一共 9 个信号)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hQudbjeR-1597541471024)(media/15774358957682.jpg)]

这种方式缩短了微指令字长,增加了译码时间,执行较慢。

字段间接编码方式

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Fz6AFkDw-1597541471024)(media/15774360022337.jpg)]

混合编码

直接编码和字段编码(直接和间接)混合使用。

8.3.2 微指令序列地址的形成

6 种形成方式

  1. 微指令的下地址字段指出

  2. 根据机器指令的操作码形成(IR)

  3. 增量计数器
    ( C M A R ) + 1 → C M A R (CMAR)+1\rightarrow CMAR (CMAR)+1CMAR

  4. 分支转移

    • 根据转移方式来判断转移去向。
    • [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8dN64bfC-1597541471025)(media/15774363649180.jpg)]
  5. 由硬件产生微程序入口地址

    • 第一条微指令地址(由专门硬件产生)
    • 中断周期(由硬件产生中断周期微程序首地址)
  6. 通过测试网络

    • 在这里插入图片描述

具体形成过程

微程序序列地址由下述的 5 5 5 种方式依次产生,并通过一个多路选择器来确定最终的序列地址,然后将地址传入 CMAR 中,经过译码后将控制存储器中对应的微程序存入CMDR中,然后发出对应的控制信号。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jht2sIJM-1597541471026)(media/15774366358432.jpg)]


资料来源

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
1. 处理器的基本结构 处理器是计算机中最重要的组成部分之一,它负责执行指令、存储和处理数据。处理器的基本结构包括运算器、控制器、寄存器、存储器和总线。 - 运算器:负责执行算术和逻辑运算,包括加法、减法、乘法、除法、与、或、非等操作。 - 控制器:负责管理指令的执行顺序和处理器的操作模式,包括指令译码、指令执行、分支控制、中断处理等。 - 寄存器:处理器内部的一种高速存储器,用于暂时存储指令和数据。常见的寄存器包括累加器、程序计数器、指令寄存器等。 - 存储器:计算机用于存储程序和数据的设备,包括内存、硬盘、U盘等。 - 总线:计算机内部各个组成部分之间传输数据和指令的通道,包括地址总线、数据总线和控制总线。 2. 处理器的指令集和编程模型 处理器的指令集是处理器能够执行的操作的集合,包括算术操作、逻辑操作、传输操作等。不同的处理器有不同的指令集,例如x86指令集、ARM指令集等。 编程模型是指程序员在编写程序时所使用的抽象模型,它描述了程序员如何使用处理器的指令集来编写程序。常见的编程模型包括传统的CISC模型和现代的RISC模型。 3. 处理器的性能指标 处理器的性能指标包括时钟频率、IPC、吞吐量和延迟等。 - 时钟频率:处理器内部时钟的运行频率,通常以GHz为单位。 - IPC(Instructions Per Cycle):每个时钟周期内处理器执行的指令数量。 - 吞吐量:单位时间内处理器能够执行的指令数量。 - 延迟:指令从发出到执行完成所需要的时间。 4. 处理器的发展历程 处理器的发展历程经历了从单核心到多核心的演变,以及从CISC模型到RISC模型的转变。 - 单核心处理器:早期的计算机使用单核心处理器,处理器的性能主要依赖于时钟频率的提升。 - 多核心处理器:随着计算机应用的发展,多核心处理器逐渐被引入计算机中,可以同时执行多个任务,提高了计算机的并行处理能力。 - RISC模型:在处理器的指令集设计上,RISC模型强调简洁、规范的指令集,使得处理器的设计更加高效,提高了处理器的性能。 5. 处理器的未来发展方向 处理器的未来发展主要集中在以下几个方向: - 集成度的提高:将更多的处理器核心、缓存、内存控制器等集成到处理器中,提高处理器的性能。 - 异构计算:在处理器中引入异构计算单元,例如GPU、FPGA等,提高处理器的计算能力。 - 量子计算:引入量子计算的技术,实现更高效的计算处理。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Gene_INNOCENT

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值