(计算机组成原理)控制器的功能和工作原理
之前并未详细分析控制单元为完成不同指令所发出的各种操作命令,本文将会深入了解指令周期、机器周期、时钟周期(节拍)与控制信号的关系。
控制单元的功能
微操作命令分析
之前讲解过取值周期、间址周期的微操作指令
(1)执行周期
1.加法指令。加法有太多的不确定性,如操作数可以在寄存器、累加器、主存等,这些微操作命令都是不一样的,以下假设一个前提。
前提:假设一个操作数在累加器,一个操作数在主存A单元,并且运算结果送至累加器,请写出具体的微操作指令。
思路:首先从主存中取出数,然后再和累加器ACC的内容相加送入ACC即可。微程序序列如下:
Ad(IR)->MAR //将指令的地址码送入主存地址寄存器
1->R //启动存储器读
M(MAR)->MDR //将MAR所指的主存单元中的内容(操作数)经数据总线读到MDR,此处可以写成M(MAR)->BUS->MDR,此处可以不添加BUS,但若是总线连接方式,则需要写。
(ACC)+(MDR)->ACC //给ALU发送加命令,将ACC的内容和MDR相加,结果存入ACC
2.存数指令
前提:假设将上述累加器ACC的结果存于主存A地质单元中。
微程序指令:
Ad(IR)->MAR //将指令的地址码送入主存地址寄存器
1->W //启动存储器写
(ACC)->MDR //将累加器的内容送至MDR
(MDR)->M(MAR) //将MDR的内容写到所指的主存单元
(2)中断周期
执行周期结束后,CPU需要查询有请求中断的事件发生,如果有,则进入终端周期。中断隐指令保存的断点存在哪里?怎样寻找终端服务程序入口?只有解决这两个问题才可以写出微指令序列。
前提:假设程序断点保存至主存的 ‘0’号单元,且采用硬件向量法寻找入口地址。中断周期的微指令序列如下:
0->MAR //将主存‘0’号单元的地址送入主存地址寄存器
1->W //启动存储器写
(PC)->MDR //将PC的内容(程序断点)送入主存数据寄存器
(MDR)->M(MAR) //将主存数据寄存器的内容写入MAR所指示的主存单元
向量地址->PC //将向量地址形成部件的输出送至PC
0->ENT //关中断,将允许中断触发器清零
如果断点不是存入主存,而是存入堆栈,那么需要改0->MAR为SP-1->SP且(SP)->MAR
控制单元的功能
控制单元的外特性
输入CU的内容如下:
1)指令寄存器(IR)。将指令的操作码送入CU进行译码。
2)标志。有时候控制单元需要根据上调指令的结果来产生相应的控制信号。因为‘标志’也是控制单元的输入信号。
3)时钟。每个操作需要多少时间?每个操作之间的执行按照什么样的先后顺序?怎样去解决?这要用到时钟信号,通过时钟脉冲来控制。
4)来自系统控制总线的控制信号。中断请求,DMA(Direct Memory Access直接存储器访问)请求等信号的输入。
输出CU的内容如下:
1)CPU内控制信号。主要用于CPU内cpu寄存器之间的传送和控制ALU实现不同的操作。
2)送至系统控制总线的控制信号。中断请求、DMA请求等信号的输入。
多级时序系统
实际上机器的速度不仅与主频有关,还与机器周期中所含的时钟周期以及指令周期中所含机器周期数有关。同样主频的机器,由于机器周期所含时钟周期数不同,运行速度也不同。机器周期所含时钟周期数少的机器,速度更快。
每个节拍对应的有效控制信号 ↑
控制方式
由于机器指令的指令周期是由数目不等的CPU周期数组成的,CPU周期数的多少反映了指令动作的复杂程度,即操作控制信号的多少。对一个CPU周期而言,也有操作控制信号的多少与出现的先后问题。这两种情况综合在一起,说明每条指令和每个操作控制信号所需的时间各不相同。控制不同操作序列时序信号的方法,称为控制器的控制方式,常用的有同步控制、异步控制、联合控制和人工控制4种方式,其实质反映了时序信号的定时方式。
(1)同步控制方式
任何一条指令或指令中任何一个微操作的执行,都由事先确定且有统一基准时标的时序信号所控制的方式叫做同步控制方式。其具体有以下三种方案
1)采用完全统一节拍的机器周期(定长方式)。这种方案的特点是以最长的微操作序列和最繁琐的微操作作为标准,采取完全统一的、具有相同时间间隔和相同数目的节拍作为机器周期来运行不同的指令,如下图所示
这种方式对于简单操作居多的指令是浪费时间,如有4个操作A、B、C、D,分别需要1s、2s、1s、2s,而机器周期需要设置为20s,对于ABCD来说就是浪费
2)采用不同节拍的机器周期(不定长方式) 。这种方案每个机器周期内的节拍数可以不等,如下图所示,有的指令微操作少,机器周期内只包含3个节拍。有的微指令操作复杂,则可以采用延长机器周期,即增加节拍的办法来解决
3)采用中央控制和局部控制相结合的方法。这种方案将机器的大部分指令安排在统一的、较短的机器周期内完成,称为中央控制;而将少数操作复杂的指令中的某些操作采用局部控制方式来完成,如乘、除、浮点运算。下图所示为中央控制和局部控制的时序关系。
为局部控制节拍,其宽度与中央控制的节拍宽度相同,而且局部控制节拍作为中央控制种机器节拍的延续,插入到中央控制的执行周期内,使机器以同样的节奏工作,保证了局部控制和中央控制的同步。
以乘法指令为例,第一个机器周期采用中央控制的节拍控制取指令操作,接着仍用中央控制的
, ,节拍去完成将操作数存存储器种取出并送至寄存器的操作,然后转局部控制,用局部控制节拍完成重复加移位的操作。
(2)异步控制方式
异步控制方式不存在基准时标信号,没有固定的周期节拍和严格的时钟同步,执行每步指令和每个操作需要多少时间就占用多少时间。这种方式微操作的时序由专门的应答线路控制,即当CU发出执行某一微操作的控制信号后,等待执行部件完成了该操作后发回“回答”信号,再开始新的微操作,使CPU没有空闲状态,但因需要采用应答电路,故其结构比同步控制方式复杂。
用途:异步控制一般用于主机与I/O设备间的传送控制,使高速的主机与慢速的I/O设备可以按照各自的需要设置时序系统。
(3)联合控制方式
联合控制方式使介于同步控制方式和异步控制方式之间的一种折中方案,这种方式对各种不同的指令的微操作大部分采用同同步控制方式,小部分采用异步控制方式。
(计算机组成原理)控制器的功能和工作原理相关推荐
- 计算机组成原理——控制器的功能和工作原理
硬布线控制器 每个指令都通过硬件电路的连接来执行 分析每个阶段的微操作序列 安排微操作时序 组合逻辑设计 微程序控制器 把指令通过软件的方式封装,封装后的指令称之为微程序,微程序分为一个一个的微指令, ...
- 计算机组成原理控制器的功能
计算机组成原理控制器的功能 控制器的功能 完成一条指令的 控制器的功能 解释指令 保证指令的按序执行 完成一条指令的 取指令(PC:存放当前预执行指令的地址,具有计数功能(PC)+1 ->PC) ...
- 控制器的功能和工作原理
文章目录 控制器的功能和工作原理 硬布线控制器 硬布线控制器的设计 组合逻辑设计 微程序控制器 设计思路 基本结构 工作原理 微指令的格式 水平型微指令的三种方式 微指令的地址形成方式 小结 微程序控 ...
- 5-4中央处理器-控制器的功能和工作原理
文章目录 一.控制器的结构和功能 二.硬布线控制器 1.硬布线控制单元图 2.微操作命令分析 3.CPU的控制方式 (1)同步控制方式 (2)异步控制方式 (3)联合控制方式 4.硬布线控制单元的设计 ...
- 计算机组成原理/计算机网络 - 网卡 - 探究其工作原理
1.应用场景 主要用于了解网卡的工作原理,一部分一部分拆解计算机原理. 包括计算机组成原理,操作系统,计算机网络,数据结构与算法,也就是基础类学科. 2.学习/操作 1.文档阅读 CPU:网卡老哥,你 ...
- 5.4 控制器的功能和工作原理
如下图所示计算机硬件系统的五大功能部件及其连接关系.它们通过数据总线,地址总线和控制总线连接在一起,其中点划线框内的是控制器部件. 控制器是计算机系统的指挥中心,控制器的主要功能有: 1> 从主 ...
- 五、中央处理器(三)控制器的功能和工作原理
目录 一.控制器的结构和功能 二.硬布线控制器 2.1硬布线控制单元图 2.2硬布线控制器的时序系统及微操作 2.3CPU的控制方式 2.4硬布线控制单元设计步骤 三.微程序控制器 3.1微程序控制器 ...
- 5.4控制器的功能和工作原理
脑图 一些概念和错题知识点整理 在组合逻辑控制器中也存在微命令与微操作这两个概念,它们并非甚至是微程序控制器的专有概念 微指令包含两大信息:操作控制字段又称微操作码字段.顺序控制字段又称微地址码字段 ...
- 计组-控制器的功能和工作原理
最新文章
- Fedora26 tftp-server设置
- html5 居于页面中心,css笔记:如何让一个div居于页面正中间
- PLSQL DEVELOPER 使用技巧
- 中国计算机学会CCF推荐国际学术会议和期刊目录-数据库/数据挖掘/内容检索
- java数独最快解_[分享]数独的JAVA解法
- 《Python入门经典》——导读
- 每个[NET]开发人员现在应该下载的十种必备工具
- 读者福利:复盘2018上半年精选文章,还有礼品等着你!
- 谁能制约云厂商滥用开源,谁来帮助开源软件作者?
- 矩阵手册(四)—— 增广矩阵
- 628和822大K站:每个站长挥之不去的阴影
- JUnit4教程+实践
- 大厂必背 MySQL最新面试题 - MySQL数据库优化
- N32926 24小时连续测试720p, h.264 IPCAM功能,为什么基本不发热呢?
- 伦敦 quant_伦敦统一用户组7
- 如何在把微信公众号生成链接
- java模拟器修改游戏分辨率_海马玩模拟器修改分辨率DPI和隐藏虚拟按键的方法...
- 笔记本电脑开不了机?3种解决方法
- 云服务器更新系统,云服务器能更新系统吗
- Deep Face Recognition读书笔记
热门文章
- h264源码分析[0]
- 【小程序支付流程,h5支付流程】
- 间歇的转载(双剑的内涵)
- docker desktop镜像_Docker简单入门
- 芯片后端开发基础知识(二)
- 高级软件工程团队结对作业(学生部门智能匹配)
- deepstream(deepstream python)
- 移动OA系统的易用性的意义?
- #coding=utf-8 from ctypes import * import time import os,pygame,threading windll.user32.BlockInpu
- Uber Shader