文章目录

  • 1 控制器的功能和工作原理
    • 1.1 控制器的结构和功能
    • 1.2 控制单元的输入和输出
      • 1.2.1 控制单元输入
      • 1.2.2 控制单元输出
  • 2 硬布线控制器
    • 2.1 CPU的控制方式
    • 2.2 安排微操作时序的原则(最短时间完成,参考)
      • 2.2.1 安排微操作时序-取指周期
      • 2.2.2 安排微操作时序-间址周期
      • 2.2.3 安排微操作时序-执行周期
      • 2.2.4 安排微操作时序-中断周期
    • 2.3 组合逻辑设计
    • 2.4 硬布线控制器小结
  • 3 微程序控制器
    • 3.1 微程序的基本思想
    • 3.2 微程序控制器的基本结构
      • 3.2.1 控制寄存器
    • 3.3 微指令格式
    • 3.4 微指令的编码方式(重点)
      • 3.4.1 直接编码(直接控制)方式
      • 3.4.2 字段直接编码方式(最重)
      • 3.4.3 字段间接编码方式
    • 3.5 微指令的地址形成方式
      • 3.5.1 微指令的地址形成方式-断定方式
    • 3.6 微程序控制的基本概念
    • 3.7 微程序控制单元的设计
    • 3.8 微程序设计分类
    • 3.9 硬布线与微程序的比较
    • 3.10 微程序控制器小结

1 控制器的功能和工作原理

1.1 控制器的结构和功能


以上过程控制器无非就是取指令、分析指令、以及产生响应的控制信号执行指令的过程

控制器是计算机系统的指挥中心,控制器的主要功能有:

  1. 从主存中取出一条指令,并指出下一条指令在主存中的位置。
  2. 对指令进行译码域测试,产生相应的操作控制信号,以便启动规定的动作。
  3. 指挥并控制CPU、主存、输入和输出设备之间的数据流动方向。

1.2 控制单元的输入和输出

1.2.1 控制单元输入
  1. 指令寄存器
    OP(IR)→CU
    控制信号的产生与操作码有关
  2. 时钟
    一个时钟脉冲发一个操作命令或一组需要同时执行的操作命令
  3. 标志
    如条件转移指令,根据相应的标志位决定下一步操作
  4. 外来信号
    如:中断请求信号INTR
    总线请求信号HRQ
1.2.2 控制单元输出
  1. CPU内部的控制信号
    寄存器之间的数据传输、PC的修改、控制ALU进行相应的运算
  2. 到控制总线的控制信号

到存储器:访存控制信号MREQ、读命令RD、写命令WR
I/O设备:访问I/O设备的控制信号IO
中断响应信号INTA、总线响应信号HLDA

2 硬布线控制器


时钟通过节拍发生器产生的多个有先后顺序的节拍信号:

  • 关于机器周期:机器周期可看做所有指令执行过程中的一个基准时间。
  • 通常以存取周期作为基准时间,即机器周期。
  • 在存储字长等于指令字长的前提下,取指周期也可看做机器周期。

硬布线控制器设计步骤:

  1. 分析每个阶段的微操作序列
  2. 选择CPU的控制方式
  3. 安排微操作时序
  4. 电路设计

2.1 CPU的控制方式

CPU的控制方式:产生不同微操作命令序列所用的时序控制方式。

  1. 同步控制方式
  • 整个系统所有的控制信号均来自一个统一的时钟信号
  • 通常以最长的微操作序列和最烦琐的微操作作为标准,采取完全统一的、具有相同时间间隔和相同数目的节拍作为机器周期来运行不同的指令。
  • 同步控制方式的优点是控制电路简单,缺点是运行速度慢。
  1. 异步控制方式
  • 异步控制方式不存在基准时标信号
  • 各部件按自身固有的速度工作,通过应答方式进行联络。
  • 异步控制方式的优点是运行速度快,缺点是控制电路比较复杂。
  1. 联合控制方式
  • 对各种不同的指令的微操作实行大部分采用同步控制、小部分采用异步控制的办法。

现在我们假设采用同步控制方式,一个机器周期内安排3个节拍(时钟周期)来实现设计

2.2 安排微操作时序的原则(最短时间完成,参考)

  1. 原则一 微操作的先后顺序不得险意更改
  2. 原则二 被控对象不同的微操作尽量安排在一个节拍内完成
  3. 原则三 占用时间较短的微操作尽量安排在一个节拍内完成并允许有先后顺序
2.2.1 安排微操作时序-取指周期

(1)PC→MAR

(2)1→R 存储器空闲即可

(3)M(MAR)→MDR 在(1)之后

(4)MDR→IR 在(3)之后

(5)OP(IR)→ID 在(4)之后

(6)(PC)+1>→PC 在(1)之后

根据三个原则,可以以下安排:

(4)(5)两个微操作占用时间较短,根据原则三安排在一个节拍

没有相关性的微操作,可以安排在同一个时钟周期内完成

2.2.2 安排微操作时序-间址周期

(1)Ad(IR)→MAR

(2) 1→R

(3)M(MAR)→MDR

(4) MDR→Ad(IR)

根据三个原则,可以以下安排:

2.2.3 安排微操作时序-执行周期
  1. 五条非访存指令

  1. 三条常见的访存指令

  1. 两条转移指令

2.2.4 安排微操作时序-中断周期

(1)a→MAR

(2)1→W 存储器空闲即可

(3)0→EINT 硬件关中断

(4)(PC)→MDR 保存断点内部数据通路空闲即可

(5)MDR→M(MAR) 在(4)之后

(6)向量地址→PC 在(4)之后

根据三个原则,可以以下安排:

这些操作由中断隐指令完成

:中断隐指令不是一条指令,而是指一条指令的中断周期由硬件完成的一系列操作。

中断周期的三个任务:

  1. 保存断点(PC放某存储单元)
  2. 形成中断服务程序的入口地址
  3. 关中断

2.3 组合逻辑设计

设计步骤:

  1. 列出操作时间表
  2. 写出微操作命令的最简表达式
  3. 画出逻辑图

  1. 列出操作时间表

取指周期操作时间表

需要微操作命令信号的指令,填1
1→IND:表示进入间指周期(非访存指令不需要进入间指周期)
1→EX:表示进入执行周期(所有指令都需要进入执行周期)

间址周期操作时间表

执行周期操作时间表

  1. 依据上述三个表,写出微操作命令的最简表达式

以M(MAR)→MDR为例:

M(MAR)→MDR微操作命令的逻辑表达式:
FE·T1+IND·T1(ADD+STA+LDA+JMP+BAN)+EX·T1(ADD+LDA)
=T1{FE+IND(ADD+STA+LDA+JMP+BAN)+EX(ADD+LDA)}  //提取公因式T1
  1. 根据逻辑表达式画出逻辑图

2.4 硬布线控制器小结

设计步骤:

  1. 分析每个阶段的微操作序列 (重点
  2. 选择CPU的控制方式
  3. 安排微操作时序
  4. 电路设计

(1)列出操作时间表
(2)写出微操作命令的最简表达式
(3)画出逻辑图

3 微程序控制器

  • 硬布线工作原理:微操作控制信号由组合逻辑电路根据当前的指令码、状态和时序,即时产生
  • 微程序工作原理:事先把微操作控制信号存储在一个专门的存储器(控制存储器)中,将每一条机器指令编写成一个微程序,这些微程序可以存到一个控制存储器中,用寻址用户程序机器指令的办法来寻址每个微程序中的微指令。

3.1 微程序的基本思想

一个机器指令对应一个微程序思想:每条指令取指周期的操作是相同的,所以将取指令操作的微命令统一编成一个微程序,而每条机器指令所对应的具体操作再单独编写一个与之对应的微程序。

微指令基本格式:

3.2 微程序控制器的基本结构

3.2.1 控制寄存器

  • 取指周期微程序:默认是公共的,故如果某指令系统中有n条机器指令,则CM中微程序的个数至少是n+1
  • 间址周期微程序和中断周期微程序:不一定是公共的。
    此处做成公共的,故如果这台计算机指令系统中有n条机器指令,则CM中微程序的个数是n+3个。

3.3 微指令格式

  1. 水平型微指令 :一次能定义并执行多个并行操作。

基本格式:

优点:微程序短,执行速度快;
缺点:微指令长,编写微程序较麻烦。

  1. 垂直型微指令:类似机器指令操作码的方式,由微操作码字段规定微指令的功能。

基本格式:

优点:微指令短、简单、规整,便于编写微程序;
缺点:微程序长,执行速度慢,工作效率低。

  1. 混合型微指令:在垂直型的基础上增加一些不太复杂的并行操作。

微指令较短,仍便于编写;微程序也不长,执行速度加快。

3.4 微指令的编码方式(重点)

微指令的编码方式又称为微指令的控制方式,它是指如何对微指令的控制字段进行编码,以形成控制信号。编码的目标是在保证速度的情况下,尽量缩短微指令字长。

3.4.1 直接编码(直接控制)方式

在微指令的操作控制字段中,每一位代表一个微操作命令
某位为“1”表示该控制信号有效

优点:简单、直观,执行速度快,操作并行性好。
缺点:微指令字长过长,n个微命令就要求微指令的操作字段有n位,造成控存容量极大。

3.4.2 字段直接编码方式(最重)

将微指令的控制字段分成若干“段”,每段经译码后发出控制信号

微命令字段分段的原则:

(1)互斥性微命令分在同一段内,相容性微命令分在不同段内。
(2)每个小段中包含的信息位不能太多,否则将增加译码线路的复杂性和译码时间。
(3)一般每个小段还要留出一个状态,表示本字段不发出任何微命令。因此,当某字段的长度为3位时,最多只能表示7个互斥的微命令,通常用000表示不操作。

优点:可以缩短微指令字长。
缺点:要通过译码电路后再发出微命令,因此比直接编码方式慢。

例题:某计算机的控制器采用微程序控制方式,微指令中的操作控制字段采用字段直接编码法,共有33个微命令,构成5个互斥类,分别包含7、3、12、5和6个微命令,则操作控制字段至少有多少位?

解答:第1个互斥类有7个微命令,要留出1个状态表示不操作,所以需要表示8种不同的状态,故需要3个二进制位。
以此类推,后面4个互斥类各需要表示4、13、6、7种不同的状态,分别对应2、4、3、3个二进制位。
故操作控制字段的总位数为3+2+4+3+3=15位

3.4.3 字段间接编码方式

一个字段的某些微命令需由另一个字段中的某些微命令来解释,由于不是靠字段直接译码发出的微命令,故称为字段间接编码,又称隐式编码。

优点:可进一步缩短微指令字长。
缺点:削弱了微指令的并行控制能力,故通常作为字段直接编码方式的一种辅助手段。

3.5 微指令的地址形成方式

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

微指令格式中设置一个下地址字段,由微指令的下地址字段直接指出后继微指令的地址,这种方式又称为断定方式

  1. 根据机器指令的操作码形成

当机器指令取至指令寄存器后,微指令的地址由操作码经微地址形成部件形成。

  1. 增量计数器法(CMAR)+1→CMAR
  2. 分支转移转移方式:指明判别条件;转移地址:指明转移成功后的去向。
操作控制字段 转移方式 转移地址
  1. 通过测试网络
  2. 由硬件产生微程序入口地址

第一条微指令地址由专门硬件产生
中断周期由硬件产生中断周期微程序首地址

(1)(2)掌握,(3)(4)(5)(6)了解

3.5.1 微指令的地址形成方式-断定方式

例题:某计算机采用微程序控制器,共有32条指令,公共的取指令微程序包含2条微指令,各指令对应的微程序平均由4条微指令组成,采用断定法(下地址字段法)确定下条微指令地址,则微指令中下地址字段的位数至少是多少位?

解答:总共需要存储多少条微指令?
32×4+2=130条
标注出130个不同的位置至少需要多少个二进制位?
27=128,28=256
下地址字段的位数至少是8位

3.6 微程序控制的基本概念

  1. 微命令与微操作

微命令是微操作的控制信号
微操作是微命令的执行过程。

  1. 微指令与微周期

微指令是若干微命令的集合。
微周期通常指从控制存储器中读取一条微指令并执行相应的微操作所需的时间。

  1. 主存储器与控制存储器

主存储器用于存放程序和数据,在CPU外部,用RAM实现;
控制存储器(CM)用于存放微程序,在CPU内部,用ROM实现。

  1. 程序与微程序

程序是指令的有序集合,用于完成特定的功能;
微程序是微指令的有序集合,一条指令的功能由一段微程序来实现。

  1. 地址寄存器(MAR)与微地址寄存器(CMAR)

MAR存放要访问的存储器的地址
CMAR在CU内部,存放控制存储器的地址

  1. 指令寄存器(IR)与微指令寄存器(CMDR或uIR)

IR在CPU内部,CU外部,存放指令
CMDR在CU内部,存放微指令

3.7 微程序控制单元的设计

设计步骤:

  1. 分析每个阶段的微操作序列
  2. 写出对应机器指令的微操作命令及节拍安排
  3. 确定微指令格式
  4. 编写微指令码点


两者仅仅最后一步略有差别,硬布线交给一个硬件,是指令译码器,具有译码作用;
微程序交给微地址形成部件,用来定位微程序首地址


Ad(CMDR)→CMAR
OP(IR)→微地址形成部件→CMAR

设计步骤:

  1. 分析每个阶段的微操作序列
  2. 写出对应机器指令的微操作命令及节拍安排
    (1)写出每个周期所需要的微操作(参照硬布线)
    (2)补充微程序控制器特有的微操作:

a.取指周期:
Ad(CMDR)→CMAR
OP(IR)→CMAR
b.执行周期:
Ad(CMDR)→CMAR

  1. 确定微指令格式

根据微操作个数决定采用何种编码方式,以确定微指令的操作控制字段的位数。
由微指令数确定微指令的顺序控制字段的位数。
最后按操作控制字段位数和顺序控制字段位数就可确定微指令字长。

  1. 编写微指令码点
    根据操作控制字段每一位代表的微操作命令,编写每一条微指令的码点。

3.8 微程序设计分类

  1. 静态微程序设计和动态微程序设计
  • 静态微程序无需改变,采用ROM
  • 动态通过改变微指令和微程序改变机器指令有利于仿真,采用EPROM
  1. 毫微程序设计
  • 微程序设计 用 微程序解释机器指令
  • 毫微程序设计 用 毫微程序解释微程序
  • 毫微指令与微指令的关系好比微指令与机器指令的关系

3.9 硬布线与微程序的比较

3.10 微程序控制器小结

8 计算机组成原理第五章 中央处理器 控制器 硬布线控制器 微程序控制器相关推荐

  1. pla是什么计算机原理,计算机组成原理第05章 中央处理器(2硬布线控制器与PLA控制器).ppt...

    <计算机组成原理第05章 中央处理器(2硬布线控制器与PLA控制器).ppt>由会员分享,可在线阅读,更多相关<计算机组成原理第05章 中央处理器(2硬布线控制器与PLA控制器).p ...

  2. pla是什么计算机原理,计算机组成原理第05章 中央处理器(2硬布线控制器与PLA控制器).ppt...

    计算机组成原理第05章 中央处理器(2硬布线控制器与PLA控制器) 第五章 中央处理器 CPU的功能和组成 指令周期 时序产生器 微程序控制器 微程序设计技术 硬布线控制器 5.4 硬布线控制器(组合 ...

  3. (计算机组成原理)第五章中央处理器-第四节4:微程序控制单元设计

    文章目录 一:微程序控制单元设计步骤 第一步:分析每个阶段的微操作序列 第二步:写出对应机器指令的微操作命令及节拍安排 第三步:确定微指令格式 第四步:编写微指令码点 二:微程序设计分类 (1)静态微 ...

  4. (计算机组成原理)第五章中央处理器-第五节2:指令流水线影响因素和分类及多发技术

    文章目录 一:影响指令流水线的因素 (1)结构相关(资源冲突) (2)数据相关(数据冲突) (3)控制相关(控制冲突) 二:流水线的分类 (1)根据流水线使用的级别不同分类 (2)根据流水线可以完成的 ...

  5. 【连载】计算机组成原理 --- 第五章 中央处理器

    本章主要内容: (一)CPU的功能和基本结构 (二)指令执行过程 (三)数据通路的功能和基本结构 (四)控制器的功能和工作原理 1. 硬布线控制器 2. 微程序控制器 微程序,微指令和微命令,微指令格 ...

  6. (计算机组成原理)第五章中央处理器-第四节2:微程序控制器基本原理

    文章目录 一:微程序控制器的设计思路 二:微程序控制器的基本结构 (1)微程序控制器基本组成 (2)微程序控制器工作过程 三:微程序控制器的工作原理 硬布线控制器,就是用纯硬件实现的控制器,电路非常复 ...

  7. (计算机组成原理)第五章中央处理器-第四节1:CPU硬布线控制器的设计原理(逻辑表达式,微操作时序,电路设计)

    文章目录 一:内容回顾 二:硬布线控制 (1)CU如何发出微命令 (2)逻辑化表达式 三:硬布线控制器设计 (1)硬布线控制器设计步骤 (2)步骤一:分析各个阶段的微操作序列 (3)步骤三:安排微操作 ...

  8. 计算机组成原理 第五章 中央处理器

    5.1 CPU的功能和基本结构 中央处理器由控制器和运算器两部分组成,其中,控制器负责协调并控制计算机各部件执行程序的指令序列(取指令.分析指令和执行指令),而运算器的功能是对数据进行加工. CPU的 ...

  9. (王道计算机组成原理)第五章中央处理器-第三节1:CPU内部单总线数据通路中数据的流动

    王道考研复习指导获取:密码7281 专栏目录首页:[专栏必读]王道考研408计算机组成原理万字笔记.题目题型总结.注意事项.目录导航和思维导图 文章目录 本节思维导图 一:有关概念 (1)CPU中数据 ...

最新文章

  1. linux fork 目录,linux fork()理解
  2. d3d导致cairo不正常
  3. OpenCV遮罩相机的实例(附完整代码)
  4. idea教程--Maven 骨架介绍
  5. 使用Jenkins在Azure Web App上进行ASP.NET Core应用程序的持续集成和部署(CI/CD)–第3天
  6. 威联通架设php网站_如何架设PHP服务器
  7. Java中的hashCode和equals的解析
  8. 数据库索引及基础优化入门
  9. 视频直播系统源码,比较图片
  10. hive分隔符_Hive表字段、行、map默认分隔符
  11. Python+Appium自动化之swipe()滑动页面
  12. H5 授权微信第三方登录
  13. 一文读懂网络效应对Web3的重要意义
  14. Android 9 P静默安装/卸载App适配终极指南
  15. 如何使用matlab进行频域分析
  16. K-Means(K均值聚类算法)
  17. 探索一下进制转换 (Python 实现源码)
  18. HomeAssistant和Node-Red
  19. 红帽linux更新资源库,如何用APT维护红帽企业版Linux
  20. 后知后觉者的学习方法

热门文章

  1. 想领取开发套件,就来参加AIoT开发者大赛
  2. C语言入坑指南-数组之谜
  3. 嵌入式软件面试(基础题)总结,不断更新
  4. 无法连接上 cn.archive.ubuntu.com:80 (123.129.214.98)。 - connect (111: 拒绝连接)
  5. oracle 11g 组合分区,Oracle数据库
  6. java 提高性能的 容器库_容器隔离性带来的问题--容器化Java应用比虚机启动速度慢...
  7. fastapi quickstart学习
  8. Spark IDEA 编程环境配置
  9. 2020云栖大会编程限时抢答赛 - 早中晚3场题解
  10. LeetCode 247. 中心对称数 II(DP)