计算机组成原理的学习笔记(10)-- CPU·其二 组合逻辑控制器和微程序

学习笔记

前言

本文主要是对于b站尚硅谷计算机组成原理的学习笔记,仅用于学习交流。


一、组合逻辑控制器
  • 定义:利用组合逻辑电路生成控制信号,无存储功能,直接通过硬件实现控制逻辑。

  • 基本原理

    :通过输入信号和逻辑电路生成输出控制信号,主要用于控制器中控制特定操作的执行。

    • 根据操作需要,输入端口传递信号给组合逻辑电路;

    • 通过逻辑门输出所需的控制信号,用以触发硬件微操作。


二、微操作的节拍安排
  • 微操作的定义:计算机系统中每个基本硬件操作,例如寄存器间的数据传输、数据存储、加法操作等。

  • 节拍安排:

    • 微操作的执行由时钟周期(节拍)控制。

    • 在每个节拍中,特定的微操作被安排执行,多个微操作可以在同一节拍内并行完成,但需要硬件资源不冲突。


三、微程序编码方式
  1. 直接编码:每个微操作对应一个控制字段的位,简单直观,但控制字段长度较长。

    • 优点:无额外硬件译码,控制灵活。

    • 缺点:微指令长度随微操作数量线性增加。

  2. 字段直接编码:

    • 将微操作分为多个字段组,每组字段可独立控制一类操作。

    • 例如,一个字段控制寄存器操作,另一个字段控制总线操作。

  3. 字段间接编码:

    • 对每组字段的微操作进行间接编码,利用译码器将字段值翻译为控制信号。

    • 优点:大大缩短微指令长度。

    • 缺点:硬件译码逻辑复杂,灵活性下降。

  4. 混合编码:结合直接编码和间接编码的特点,对频繁使用的操作直接编码,对复杂操作间接编码。


四、CU(控制单元)的控制字段
  1. 定义:控制字段是微程序控制器或组合逻辑控制器用来控制微操作的二进制编码字段。

    • 每一位或每组字段激活一个硬件微操作。
  2. 为什么需要多少微操作就需要多少位控制字段?

    • 每个微操作需要一个独立的控制信号,CU需要生成所有这些控制信号。

    • 每一位控制字段用01表示是否激活某个具体的微操作。

    • 例如:

      • 微操作MAR <- PC需要1位控制字段。

      • 微操作MDR <- Memory[MAR]需要1位控制字段。

  3. 优化方法

    • 直接编码:每位控制一个微操作,灵活但字段长度长。

    • 字段分组(Field Partitioning):将微操作分组,每组用一个字段控制。

    • 间接编码(译码器方式):将字段值翻译为具体的控制信号,减少字段长度,但增加译码逻辑复杂度。


五、微程序与硬布线控制器的比较
特性 微程序控制器 硬布线控制器
实现方式 微指令+存储器 组合逻辑电路
灵活性 高(可编程) 低(硬件固定)
扩展性 易于扩展 扩展困难
执行速度 较慢 较快
设计复杂度 简单 复杂
硬件需求 需要控制存储器 需要大量逻辑电路

六、微程序控制器
  • 定义:通过存储在控制存储器(Control Memory, CM)中的微程序(Microprogram)生成控制信号。

  • 主要过程

    1. 微指令存储

      • 每条微指令存储在控制存储器中,描述一个或一组微操作。

      • 微指令的内容包括:需要发出的控制信号、下一条微指令的地址等。

    2. 控制存储器读取

      • 根据当前指令的操作码,通过微指令地址寄存器(CAR,Control Address Register)选择相应的微指令。

      • 读取微指令后,将其送到控制寄存器(Control Register,CR)。

    3. 微指令执行

      • 微指令被解释为控制信号,直接驱动各硬件部件(如ALU、寄存器、存储器等)完成操作。

      • 若需要多个步骤完成,则通过更新地址寄存器(CAR)来读取下一条微指令。

    4. 循环执行

      • 通过这种读取-执行-跳转的方式,完成一条机器指令的执行过程。

结语

这一部分我最开始学着感觉有点吃力(也许是我今天不在状态),这部分我看了大概两边遍左右才理解下来,第二遍的时候我跟着老师的思路,感觉豁然开朗,果然这位老师很厉害,想起来应该就是我的问题吧。

这篇笔记对视频中涉及的知识知识做了大体的概括,不够具体,如果想进一步的巩固这一部分的知识,光看笔记可不行啊,还得再回去看看视频,这篇笔记权当我加深一下印象了。

唉唉最近又要准备期末的高数了,一点没看...想哭。

相关推荐
Long_poem5 分钟前
【自学笔记】Spring Boot框架技术基础知识点总览-持续更新
spring boot·笔记·后端
贩卖纯净水.1 小时前
REACT学习DAY02(恨连接不上服务器)
服务器·学习·react.js
南风过闲庭2 小时前
操作系统研究
大数据·人工智能·科技·学习·ai·系统架构
Niuguangshuo2 小时前
Python 单例模式笔记
笔记·python·单例模式
心无旁骛~5 小时前
Git笔记汇总,持续更新~
笔记·git
陈无左耳、5 小时前
HarmonyOS学习第2天: 解锁语言与框架的无限可能
学习·华为·harmonyos
朝九晚五ฺ6 小时前
【Linux探索学习】第三十弹——线程互斥与同步(上):深入理解线程保证安全的机制
linux·运维·学习
东方芷兰6 小时前
伯克利 CS61A 课堂笔记 12 —— Syntax
笔记·python
柃歌6 小时前
【UCB CS 61B SP24】Lecture 5 - Lists 3: DLLists and Arrays学习笔记
java·数据结构·笔记·学习·算法
剑走偏锋o.O7 小时前
MyBatis框架详解与核心配置解读
java·学习·mybatis