计算机组成原理 控制器

控制器

控制器的功能和原理
控制器的结构和功能
硬布线控制器
微程序控制器
设计步骤
CPU控制方式
微操作时序安排
微程序控制器的组成
微指令格式
微程序设计步骤

控制器的功能

运算器部件通过数据总线与内存储器、输入设备和输出设备传送数据
输入设备和输出设备通过接口电路与总线相连接
内存储器、输入设备和输出设备从地址总线接收地址信息,从控制总线得到控制信号,通过数据总线与其他部件传送数据
控制器部件从数据总线接收指令信息从运算器部件接收指令转移地址,送出指令地址到地址总线,还要向系统中的部件提供它们运行所需要的控制信号控制信号图例
在这里插入图片描述

CU控制单元

CU的输入:
(1) 指令寄存器
OP (IR)->CU控制信号的产生与操作码有关
(2) 时钟:
一个时钟脉冲发一个操作命令或一组需要同时执行的操作命令
(3) 标志:
如条件转移指令,根据相应的标志位决定下一步操作
(4) 外来信号:
中断请求信号INTR
总线请求信号HRO

CU输出:
(1) CPU 内部的控制信号
寄存器之间的数据传输、PC的修改、控制ALU进行相应的运算
(2) ))
到存储器:访存控制信号MREO、读命令RD、写命令WR
到I/O设备:访问I/O设备的控制信号IO
中断响应信号INTA、总线响应信号HLDA
在这里插入图片描述

硬布线控制器

硬布线控制器
硬布线控制器就是采用逻辑电路设计控制器
硬布线设计步骤
1.分析每个阶段的微操作序列
2.选择CPU的控制方式
3.安排微操作时序
4.组合电路设计
在这里插入图片描述

CPU控制方式

CPU控制方式特点
同步控制方式整个系统所有的控制信号均来自一个统一的时钟信号。同步控制方式的优点是控制电路简单,缺点是运行速度慢
异步控制方式异步控制方式不存在基准时标信号。各部件按自身固有的速度工作,通过应答方式进行联络。异步控制方式的优点是运行速度快,缺点是控制电路比较复杂
联合控制方式对各种不同的指令的微操作实行大部分采用同步控制、小部分采用异步控制的办法。

设计骤
1.分析每个阶段的微操作序列
2.选择CPU的控制方式(同步控制方式,一个机器周期内安排3个节拍)
3.安排微操作时序
4.电路设计

安排微操作时序
原则一:微操作的先后顺序不得随意更改
原则二:被控对象不同的微操作尽量安排在个节拍内完成
原则三:占用时间较短的微操作尽量安排在节拍内完成并允许有先后顺序
[概念]
取指阶段
pnuuzz
T0 (1)PC->MAR
T0 (2)1->R
T1 (3) M(MAR)->MDR   (3)在(1)之后
T1 (4)(PC)+1->PC   (4)(1)后
T2 (5) MDR->IR   (5)在(3)之后
T2 (6) OP(IR)->ID   (6)在(5)之后

安排微操作时序
原则一:微操作的先后顺序不得随意更改
原则二:被控对象不同的微操作尽量安排在一
原则三:占用时间较短的微操作尽量安排在个节拍内完成一个节拍内完成并允许有先后顺序
析指阶段
T0 (1) Ad(IR)->MAR
T0 (2) 1->R
T1 (3) M(MAR)->MDR
T2 (4) MDR->ACC

安排微操作时序
原则一:微操作的先后顺序不得随意更改
原则二:被控对象不同的微操作尽量安排在个节拍内完成
原则三:占用时间较短的微操作尽量安排在节拍内完成并允许有先后顺序

中断阶段
T0 (1)a->MAR
T0 (2) 1->W
T1 (3) 0->EINT 硬件关中断
T2 (4)(PC)->MDR
T2 (5) MDR->M(MAR)
T2 (6) 中断向量地址->PC

执行阶段常见指令
  • 非访存指令
    • CLA
      clear
      ACC清零   0->AC
    • COM
      complement
      ACC取反
    • SHR
      shift
      算术右移   L(AC)->R(AC),AC0->AC0
    • CSL
      cyclic shift
      循环左移   R(AC)->L(AC), A C 0 − > A C n AC_0->AC_n AC0>ACn
    • STP
      stop
      停机   0->G
  • 访存指令
    • ADD X   Ad(IR)->MAR,1->R
      加法指令   M(MAR)->MDR
      隐含ACC   (AC)+(MDR)->ACC
    • STA X   Ad(IR)->MAR,1->W
      存数指令   (ACC)->MDR
      隐含ACC   MDR->M(MAR)
    • LDAX   Ad(IR)->MAR,1->R
      取数指令   M(MAR)->MDR
      隐含ACC   MDR->AC
  • 转移指令
    • JMP X
      jump
      无条件转移 Ad(IR)->PC
    • BAN X
      Branch ACC
      Negative
      条件转移

硬布线组合电路设计
(1)列出操作时间表
(2)写出微操作命令的最简表达式
(3)画出逻辑图

在这里插入图片描述

M(MAR)->MDR
= 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 ) =FE·T_1,+IND·T_1(ADD+STA+LDA+JMP+BAN)+EX·T_1(ADD+LDA) =FET1,+INDT1(ADD+STA+LDA+JMP+BAN)+EXT1(ADD+LDA)
= 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 ) } =T_1\{FE+IND(ADD+STA+LDA+JMP+BAN)+EX(ADD+LDA)\} =T1{FE+IND(ADD+STA+LDA+JMP+BAN)+EX(ADD+LDA)}

微程序控制器

微程序控制器
微程序控制器采用存储逻辑实现,也就是把微操作信号代码化,使每条机器指令转化成为一段微程序并存入一个专门的存储器 (控制存储器) 中,微操作控制信号由微指令产生。
在这里插入图片描述

概念
微命令是微操作的控制信号
微操作是微命令的执行过程
微指令是若干微命令的集合
执行一条微指令的时间叫做微周期
一条指令对应一个微程序。

微程序控制器
  1. 控制存储器
    它是微程序控制器的核心部件,用于存放各指令对应的微程序,控制存储器可用只读存储器 ROM构成
    指令
  2. 微指令寄存器
    用于存放从 CM中取出的微指令,它的位数同微指令字长相等
  3. 微地址形成部件
    用于产生初始微地址和后继微地址,以保证微指令的连续执行
  4. 微地址寄存器
    接收微地址形成部件送来的微地址,为在CM中读取微指令作准备

在这里插入图片描述

微指令格式
取值析址析址析址
微指令123...微指令123...微指令123...

取指阶段:
默认是公共的,故如果某指令系统中有n条机器指令,则CM中微程序的个数至少是n+1个
取指阶段,析指阶段,中断阶段不一定是公共的:
但是可以做成公共的,故如果这台计算机指令系统中有n条机器指令,则CM中微程序的个数至少是n+3个

微指令格式

  1. 水平型微指令:一次能定义并执行多个并行操作
操作控制顺序控制
优点: 微程序短,执行速度快, 缺点: 微指令长,编写微程序较麻烦
  1. 垂直型微指令: 由微操作码字段规定微指令的功能
uOP(微操作码)目的地址源地址
优点 : 微指令短、简单、规整,便于编写微程序 缺点: 微程序长,执行速度慢,工作效率低。
  1. 混合型微指令: 由微操作码字段规定微指令的功能
    在垂直型的基础上增加些不太复杂的并行操作,微指令较短,仍便于编写,微程序也不长,执行速度加快
水平型微指令的编码方式
  1. 直接编码(直接控制)方式
    在微指令的操作控制字段中,每一位代表一个微操作命令
10000010下地址
操作控制
优点: 简单、直观,执行速度快,操作并行性好。 缺点: 微指令字长过长,n个微命令就要求微指令的操作字段有n位,造成控存容量极大
  1. 字段直接编码方式
    将微指令的控制字段分成若千"段",每段经译码后发出控制信号微命令字段分段的原则
  • D互斥性微命令分在同一段内,相容性微命令分在不同段内。
  • 每个小段中包含的信息位不能太多,否则将增加译码线路的复杂性和译码时间。
  • 一般每个小段还要留出一个状态,表示本字段不发出任何微命令。

因此,当某字段的长度为3位时,最多只能表示7个互斥的微命令,通常用000表示不操作。
在这里插入图片描述

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

微指令的地址形成方式
  1. 微指令的下地址字段指出:
    微指令格式中设置一个下地址字段,由微指令的下地址字直接指出后继微指令的地址,这种方式又称断定方式
  2. 根据机器指令的操作码形成:
    当机器指令取至指令寄存器后,微指令的地址由操作在微地址形成部件形成
  3. 增量计数器法(CMAR)+1 CMAR
  4. 分支转移
    转移方式: 指明判别条件,
    转移地址: 指明转移成功后的去向
操作控制字段转移方式转移地址
  1. 通过测试网络
  2. 由硬件产生微程序入口地址
    第一条微指令地址 由专门 硬件 产生
    中断周期会由硬件产生中断周期微程序首地址
微程序设计

设计步骤:

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

取指周期设计

取指周期-硬布线控制器的节拍安排取指周期-微程序控制器的节拍安排
T0 PC->MART0 PC->MAR
T0 1->RT0 1->R
T1 M(MAR)->MDRT1 M(MAR)->MDR
T1 (PC)+1->PCT1 (PC)+1->PC
T2 MDR->IRT2 MDR->IR
T2 OP(IR)->IDT2 OP(IR)->微地址形成部件

取指周期设计
取指周期-微程序控制器的节拍安排
T0 PC-> MAR
T0 1->R
T1 M(MAR)->MDR
T1 (PC)+1->PC
T2 MDR->IR
T2 OP(IR)->微地址形成部件

需考虑如何读出这3条微指令,以及如何转入下一周期
T0 PC->MAR
T0 1->R
T1 Ad (CMDR)-> CMAR
T2 M(MAR)->MDR
T2 (PC)+1->PC
T3 Ad (CMDR)-> CMAR
T4 MDR-> IR
T4 OP(IR)->微地址形成部件
T5 OP(IR)-> CMAR

  1. 写出每个周期所需要的微操作 (参照硬布线)
  2. 补充微程序控制器特有的微操作:
    a.取指周期
    Ad( CMDR)CMAR
    OP(IR)CMAR
    b.执行周期
    Ad(CMDR)-CMAR
微程序设计步骤
  1. 分析每个阶段的微操作序列
  2. 写出对应机器指令的微操作命令及节拍安排
    (1) 写出每个周期所需要的微操作 (参照硬布线)
    (2) 补充微程序控制器特有的微操作:

a.取指周期: Ad(CMDR)- >CMAR   OP(IR)->CMAR
b.执行周期: Ad(CMDR)->CMAR
3. 确定微指令格式
根据微操作个数决定采用何种编码方式,以确定微指令的操作控制字段的位数。由微指令数确定微指令的顺序控制字段的位数。
最后按操作控制字段位数和顺序控制字段位数就可确定微指令字长。
4. 编写微指令码点
根据操作控制字段每一位代表的微操作命令,编写每一条微指令的码点

总结

微程序控制器硬布线控制器
工作原理微操作控制信号以微程序的形式存放在控制存储器中,执行指令时读出即可微操作控制信号由组合逻辑电路根据当前的指令码状态和时序,即时产生
执行速度
规整性较规整烦琐,不规整
应用场合CISC CPURISC CPU
易扩充性易扩充修改困难

注意区分以下寄存器 :

  • 地址寄存器 (MAR) : 用于存放主存的读/写地址
  • 微地址寄存器(CMAR) : 用于存放控制存储器的读/写微指令的地址
  • 指令寄存器 (IR) : 用于存放从主存中读出的指令
  • 微指令寄存器 (CMDR或uIR) : 用于存放从控制存储器中读出的微指令

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/293624.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

iOS苹果和Android安卓测试APP应用程序的差异

Hello大家好呀,我是咕噜铁蛋!我们经常需要关注移动应用程序的测试和优化,以提供更好的用户体验。在移动应用开发领域,iOS和Android是两个主要的操作系统平台。本文铁蛋讲给各位小伙伴们详细介绍在App测试中iOS和Android的差异&…

设计模式之装饰者模式【结构型模式】

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档> 学习的最大理由是想摆脱平庸,早一天就多一份人生的精彩;迟一天就多一天平庸的困扰。各位小伙伴,如果您: 想系统/深入学习某…

Linux内存管理:(五)反向映射RMAP

文章说明: Linux内核版本:5.0 架构:ARM64 参考资料及图片来源:《奔跑吧Linux内核》 Linux 5.0内核源码注释仓库地址: zhangzihengya/LinuxSourceCode_v5.0_study (github.com) 1. 前置知识:page数据结…

【unity】基于Obi的绳/杆蓝图、绳杆区别及其创建方法

绳索 是通过使用距离和弯曲约束将粒子连接起来而形成的。由于规则粒子没有方向(只有位置),因此无法模拟扭转效应(维基百科),绳子也无法保持其静止形状。然而,与杆不同的是,绳索可以被撕裂/劈开,并且可以在运行时改变其…

LeetCode(36)有效的数独 ⭐⭐

请你判断一个 9 x 9 的数独是否有效。只需要 根据以下规则 ,验证已经填入的数字是否有效即可。 数字 1-9 在每一行只能出现一次。数字 1-9 在每一列只能出现一次。数字 1-9 在每一个以粗实线分隔的 3x3 宫内只能出现一次。(请参考示例图) 注…

微商城怎么弄才能开通呢?

​微商城的开通,对于许多商家来说,是进入移动电商领域的重要一步。它不仅能帮助你扩大销售渠道,还能让你更好地管理和服务你的客户。那么,微商城怎么弄才能开通呢? 1、注册微信公众号:首先,你需…

奇数码问题

title: 奇数码问题 date: 2024-01-05 11:52:04 tags: 逆序对 cstefories: 算法进阶指南 题目大意 解题思路 将二维转化为一维&#xff0c;求他的逆序对&#xff0c;如果逆序对的奇偶性相同&#xff0c;则能够实现。 代码实现 #include<iostream> #include<string.h&…

《MySQL系列-InnoDB引擎05》MySQL索引与算法

文章目录 第五章 索引与算法1 InnoDB存储引擎索引概述2 数据结构与算法2.1 二分查找法2.2 二分查找树和平衡二叉树 3 B树3.1 B树的插入操作3.2 B树的删除操作 4 B树索引4.1 聚集索引4.2 辅助索引4.3 B树索引的分裂 5 Cardinality值5.1 什么是Cardinality5.2 InnoDB存储引擎的Ca…

本地引入Element UI后导致图标显示异常

引入方式 npm 安装 推荐使用 npm 的方式安装&#xff0c;它能更好地和 webpack 打包工具配合使用。 npm i element-ui -SCDN 目前可以通过 unpkg.com/element-ui 获取到最新版本的资源&#xff0c;在页面上引入 js 和 css 文件即可开始使用。 <!-- 引入样式 --> <…

vue项目使用vue-pdf插件预览pdf文件

1、安装vue-pdf&#xff1a;npm install --save vue-pdf 2、使用 具体实现代码&#xff1a;pdfPreview.vue <template><div class"container"><pdfref"pdf":src"pdfUrl":page"currentPage":rotate"pageRotate&qu…

uniapp中的导入zzx-calendar日历的使用

需求&#xff1a; 一周的日历&#xff0c;并且可以查看当月的 &#xff0c;下个月的&#xff0c;以及可以一周一周的切换日期 借助&#xff1a;hbuilder插件市场中的zzx-calendar插件库 在父组件中引入 并注册为子组件 <template><zzx-calendar selected-change&qu…

C#编程-实现数组

实现数组 数组是相同数据类型的值得集合。例如,您可以创建存储10个整数类型值的数组。数组中的变量称为数组元素。通过使用单个名称和代表数组中元素位置的索引号来访问数组元素。数组是引用类型的数据类型。下图显示系统内存中的数组结构。 声明数组 在程序中使用数组之前需…

Java中的SPI机制

Java中的SPI&#xff08;Service Provider Interface&#xff09;机制是一种服务发现机制。它允许服务提供者在运行时被发现和加载&#xff0c;而不是在编译时。这种机制主要用于实现解耦&#xff0c;使得接口的定义与实现可以独立变化&#xff0c;增强了系统的可扩展性和可替换…

Windows下MongoDB启动及停止服务

1.CMD黑窗口输入启动命令&#xff1a; net start MongoDB 2.CMD黑窗口输入停止命令&#xff1a; net stop MongoDB

MindSpore Serving与TGI框架 の 对比

一、MindSpore Serving MindSpore Serving是一款轻量级、高性能的服务工具&#xff0c;帮助用户在生产环境中高效部署在线推理服务。 使用MindSpore完成模型训练>导出MindSpore模型&#xff0c;即可使用MindSpore Serving创建该模型的推理服务。 MindSpore Serving包含以…

基于ssm的班级事务管理系统+vue论文

摘 要 在如今社会上&#xff0c;关于信息上面的处理&#xff0c;没有任何一个企业或者个人会忽视&#xff0c;如何让信息急速传递&#xff0c;并且归档储存查询&#xff0c;采用之前的纸张记录模式已经不符合当前使用要求了。所以&#xff0c;对班级事务信息管理的提升&#x…

FA2016AA (MHz范围晶体单元超小型低轮廓贴片) 汽车

随着科技的不断发展&#xff0c;智能汽车逐渐成为人们出行的首选。而其中&#xff0c;频率范围在19.2 MHz ~ 54 MHz的晶体单元超小型低轮廓贴片&#xff08;FA2016AA&#xff09;为汽车打造更智能、更舒适、更安全的出行体验。FA2016AA贴片的外形尺寸为2.0 1.6 0.5 mm&#x…

跨境电商竞品分析:洞察市场,赢得先机的关键策略

在全球化日益加速的今天&#xff0c;跨境电商已经成为了企业拓展市场、提高销售额的重要手段。然而&#xff0c;跨境电商市场的竞争也日趋激烈&#xff0c;如何在众多竞争对手中脱颖而出&#xff0c;成为每个企业都面临的挑战&#xff1b;想要做到这点&#xff0c;了解竞品情况…

电脑提示找不到mfc140u.dll,无法继续执行代怎么办,mfc140u.dll丢失的解决办法

在使用电脑时&#xff0c;我们常常会遇到各种各样的问题。其中一个比较常见的问题就是“找不到mfc140u.dll,无法继续执行代码”。今天小编主要就围绕这mfc140u.dll这个文件来给大家详细的解析一下吧&#xff0c;让大家更清楚的知道这个问题以及怎么去解决这个问题。接下来一起来…

第10课 利用windows API捕获桌面图像并通过FFmpeg分享

在上一章&#xff0c;我们已经实现了一对一音视频对话功能。在实际应用中&#xff0c;我们常需要把自己的电脑桌面分享给他人以实现桌面共享功能&#xff0c;这种功能在视频会议、在线教学等场景中很常见&#xff0c;这种功能如何实现呢&#xff1f;这节课我们就来解决这个问题…