计算机组成原理 | 第九章:控制单元的功能 | 微操作命令 | 时钟周期

news2024/12/26 23:08:59

文章目录

  • 📚微操作命令的分析
    • 🐇取指周期
    • 🐇间址周期
    • 🐇执行周期
      • 🥕非访存指令
      • 🥕访存指令⭐️
      • 🥕转移指令
    • 🐇中断周期
  • 📚控制单元的功能
    • 🐇控制单元的外特性
      • 🥕输入信号
      • 🥕输出信号
    • 🐇控制信号举例
      • 🥕不采用 CPU 内部总线的方式
      • 🥕采用CPU内部总线方式⭐️
        • ⚠️微操作例题⭐️
      • 🌟微操作模板集合
    • 🐇多级时序系统
      • 🥕机器周期
      • 🥕时钟周期(节拍)
      • 指令周期、机器周期和时钟周期小结❓
      • 🥕多级时序系统
      • 🥕机器速度与机器主频的关系
        • ⚠️相关计算
    • 🐇控制方式
      • 🥕同步控制方式
      • 🥕异步控制方式
      • 🥕联合控制方式
      • 🥕人工控制方式
  • 📚小结
    • 🍃划个重点🔔

📚微操作命令的分析

假设完成一条指令分为4个工作周期:取指周期、间址周期、执行周期、中断周期

🐇取指周期

  • ①现行指令地址送至存储器地址寄存器,记作PC → MAR
  • ②向主存发送读命令,启动主存做读操作,记作1 → R
  • ③将MAR(通过地址总线)所指的主存单元中的内容(指令)经数据总线读至MDR内,记作M(MAR) → MDR
  • ④将MDR的内容送至IR,记作MDR → IR
  • ⑤指令的操作码送至CU(控制单元)译码,记作OP(IR) → CU
  • ⑥形成下一条指令的地址,记作(PC)+1 → PC
    在这里插入图片描述

🐇间址周期

  • ①将指令的地址码部分(形式地址)送至存储器地址寄存器,记作Ad(IR) → MAR
  • ②向主存发送读命令,启动主存做读操作,记作1 → R
  • ③将MAR(通过地址总线)所指的主存单元中的内容(有效地址)经数据总线读至MDR内,记作M(MAR) → MDR
  • ④将有效地址送至指令寄存器的地址字段,记作MDR → Ad(IR)。此操作在有些机器中可省略。
    在这里插入图片描述

🐇执行周期

不同指令执行周期的微操作是不同的,下面分别讨论非访存指令、访存指令和转移类指令的微操作,附不同指令的指令周期
在这里插入图片描述

🥕非访存指令

在这里插入图片描述

🥕访存指令⭐️

  • 👀加法指令(该指令在执行阶段需要完成累加器内容与对应X地址单元的内容相加结果送累加器的操作)

    • 将指令的地址码部分送至存储器地址寄存器,记作Ad(IR) → MAR
    • 向主存发读命令,启动主存做读操作,记作1 → R
    • 将MAR(通过地址总线)所指的主存单元中的内容(操作数)经数据总线读至MDR内,记作M(MAR) → MDR
    • 给ALU发送加命令,将ACC的内容和MDR的内容相加,结果存于ACC,记作(ACC) + (MDR) → ACC
      在这里插入图片描述
  • 👀存数指令(该指令在执行阶段需将累加器ACC的内容存于主存的X地址单元中

    • 将指令的地址码部分送至存储器地址寄存器,记作Ad(IR) → MAR
    • 向主存发写命令,启动主存做写操作,记作1 → W
    • 将累加器内容送至MDR,记作ACC → MDR
    • 将MDR的内容(通过数据总线)写入MAR(通过地址总线)所指的内存单元中,记作MDR → M(MAR)
      在这里插入图片描述
  • 👀取数指令(该指令在执行阶段需将主存X地址单元的内容取至累加器ACC中

    • 将指令的地址码部分送至存储器地址寄存器,记作Ad(IR) → MAR
    • 向主存发读命令,启动主存做读操作,记作1 → R
    • 将MAR(通过地址总线)所指的主存单元中的内容(操作数)经数据总线读至MDR内,记作M(MAR) → MDR
    • 将MDR的内容送至ACC,记作MDR → ACC
      在这里插入图片描述

🥕转移指令

在这里插入图片描述

🐇中断周期

  • ①将特定地址“0”送至存储器地址寄存器,记作0 → MAR(如果程序断点存入堆栈,而且进栈操作是先修改栈指针,后存入数据,则记作(SP)-1 → MAR
  • ②向主存发写命令,启动存储器作写操作,记作1 → W
  • ③将PC的内容(程序断点)送至MDR,记作PC → MDR
  • ④将MDR的内容(程序断点)通过数据总线写入MAR(通过地址总线)所指示的主存单元(0地址单元)中,记作MDR → M(MAR)
  • ⑤将向量地址形成部件的输出送至PC,记作向量地址 → PC,为下一条指令的取值周期做准备
  • ⑥关中断,将允许中断触发器清零,记作0 → EINT
    在这里插入图片描述

⭐️上述所有操作都是在控制单元发出的控制信号(即微操作命令)控制下完成的


📚控制单元的功能

🐇控制单元的外特性

在这里插入图片描述

🥕输入信号

  • 时钟
    • 为了使控制单元按一定的先后顺序一定的节奏发出各种控制信号,控制单元必须受时钟控制
    • 每一个时钟脉冲使控制单元发送一个操作命令,或发送一组需要同时执行的操作命令
  • 指令寄存器
    • OP(IR)→ CU
    • 现行指令的操作码决定了不同指令在执行周期所需完成的不同操作,故指令的操作码字段是控制单元的输入信号,它与时钟配合可产生不同的控制信号(控制信号与操作码有关
  • 标志
    • 控制单元有时需依赖CPU当前所处的状态产生控制信号,即CU受标志控制
  • 外来信号
    • 如中断请求、DMA请求

🥕输出信号

  • CPU内的控制信号:主要用于CPU内的寄存器之间的传送和控制ALU实现不同的操作
    在这里插入图片描述

  • 送至系统总线(控制总线)的信号
    在这里插入图片描述

🐇控制信号举例

🥕不采用 CPU 内部总线的方式

图中未画出每个寄存器的输入或输出控制门,但标出了这些门电路的控制信号 C i C_i Ci

  • 取指周期
    在这里插入图片描述
  • 间址周期
    在这里插入图片描述
  • 执行周期
    在这里插入图片描述

🥕采用CPU内部总线方式⭐️

  • 以下图中每个小圈处都有一个控制信号,它控制着寄存器到总线或总线到寄存器之间的传送
    • I R i IR_i IRi表示控制从内部总线到指令寄存器输入控制门
    • P C o PC_o PCo表示控制从程序计数器到内部总线输出控制门
    • 下标为i表示输入(in)控制
    • 下标为o表示输出(out)控制
      在这里插入图片描述
  • 与不采用CPU内部总线的方式相比,上图中多了两个寄存器Y和Z
    • 因为ALU是一个组合逻辑电路,在其运算过程中必须保持两个输入端不变其中一个输入端可以从Y寄存器中获得,另一个可以从内部总线上获得。当CPU内有多个通用寄存器时,由于设置了寄存器Y,可实现任意两个寄存器之间的算逻运算。
    • 此外,ALU的输入不能直接与内部总线相连,因为其输入又会通过总线反馈到ALU的输入,影响运算的正确性,故用寄存器Z暂存运算结果,再根据需要送至指定的目标。
  • 取指周期
    在这里插入图片描述
    在这里插入图片描述

  • 间址周期
    在这里插入图片描述
    在这里插入图片描述

  • 执行周期
    在这里插入图片描述
    在这里插入图片描述

⚠️微操作例题⭐️

  • 非总线方式
    在这里插入图片描述
  • 总线方式

第七章知识回顾
在这里插入图片描述

在这里插入图片描述


🌟微操作模板集合

微操作指令解题可依据以下模板,再综合题目要求(1 → R/W一般不写)

  • 取指周期

  • 间址周期

    在这里插入图片描述

  • ADD执行周期

    在这里插入图片描述

    Z是锁存器

  • STA执行周期
    在这里插入图片描述

  • LDA执行周期
    在这里插入图片描述


🐇多级时序系统

🥕机器周期

  • 机器周期的概念:所有指令执行过程中的一个基准时间
  • 确定机器周期需考虑的因素:每条指令的执行步骤;每一步骤所需的时间
  • 基准时间的确定
    • 以完成最复杂指令功能的时间为准
    • 访问一次存储器的时间为准
    • 若指令字长 = 存储字长,取指周期 = 机器周期

🥕时钟周期(节拍)

在这里插入图片描述

  • 一个机器周期内可完成若干个微操作,每个微操作需要一定的时间
  • 将一个机器周期分成若干时间相等的时间段,即为时钟周期(节拍)
  • 时钟周期是控制计算机操作的最小单位时间
  • 用时钟周期控制产生一个或几个微操作命令

指令周期、机器周期和时钟周期小结❓

  • CPU每取出并执行一条指令所需的全部时间叫指令周期
  • 所有指令执行过程中的一个基准时间机器周期
    • 机器周期是在同步控制的机器中,执行指令周期中一步相对完整的操作所需时间,通常安排机器周期长度等于主存周期
  • 将一个机器周期分成若干时间相等的时间段,即为时钟周期(节拍)
    • 时钟周期是指计算机主时钟的周期时间,它是计算机运行时最基本的时序单位,对应一个微操作所需时间
  • 三者之间关系是:(套娃👀)
    • 时钟周期是基本动作单位
    • 一个机器周期通常由多个时钟周期组成
    • 而一个指令周期可能包含有一个或多个机器周期

🥕多级时序系统

  • 机器周期、节拍组成多级时序系统
  • 一个指令周期包含若干个机器周期
  • 一个机器周期包含若干个时钟周期
    在这里插入图片描述

🥕机器速度与机器主频的关系

在这里插入图片描述

⚠️相关计算

在这里插入图片描述

在这里插入图片描述

🐇控制方式

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

🥕同步控制方式

在这里插入图片描述

  • 采用定长的机器周期
    • 最长的微操作序列和最繁的微操作作为标准
    • 机器周期内节拍数相同
  • 采用不定长的机器周期
    • 机器周期内节拍数不等
      在这里插入图片描述
  • 采用中央控制和局部控制相结合的方法
    在这里插入图片描述

🥕异步控制方式

  • 无基准时标信号
  • 无固定的周期节拍和严格的时钟同步
  • 采用应答方式

🥕联合控制方式

  • 同步与异步相结合
  • 大部分统一、小部分区别对待

🥕人工控制方式

  • Reset
  • 连续单条指令执行转换开关
  • 符合停机开关

📚小结

🍃划个重点🔔

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

分享微信报名小程序怎么做_瑜伽健身房培训报名小程序开发介绍

活动报名收费签到小程序,支持个人免费组织报名收款和现场签到。随时随地管理活动、发布活动、查看收入明细提现资金更效率。 活动报名收费签到小程序主要功能有: 在线报名:通过二维码或链接分享活动入口,亦可轻松放进入公众号。 …

客户端通过SSH连接Linux服务器超时问题解决方法汇总

🐚作者简介:花神庙码农(专注于Linux、WLAN、TCP/IP、Python等技术方向)🐳博客主页:花神庙码农 ,地址:https://blog.csdn.net/qxhgd🌐系列专栏:善假于物&#…

Windows无法进入睡眠模式怎么办?

睡眠模式是电脑的一种低功耗模式,能减少耗电。当你要离开电脑一阵,但又不想关闭文档和程序,就可以选择让电脑暂时休眠。 如果你的电脑无法进入睡眠模式,可以尝试下面几种方法: 更换电源选项检查电源命令使用电源疑难…

开源机器学习软件对AI的发展意味着什么?

作者| Max Langenkamp OneFlow编译 翻译|徐佳渝、杨婷 为什么要关注机器学习开源软件(MLOSS)?在我们看来,MLOSS对AI发展来说举足轻重,但未获重视。 机器学习开源软件是开源许可下发布的专为机器…

“易”起涨知识|人人都在追捧的低代码开发,到底有什么优势?

低代码的根本价值在于:劳动力转移。运营、产品能 cover 部分开发工作,实现研发流左移,敏捷迭代。 劳动力转移只是表面,低代码价值还是归属于自动化了信息传递。 产品用文字和交互图(PRD)表达了一遍完整的产…

List、Set、Map的区别

List、Set、Map的区别 ​ (图一) 1.面试题:你说说collection里面有什么子类。 (其实面试的时候听到这个问题的时候,你要知道,面试官是想考察List,Set) 正如图一,lis…

一文深入分析arm64 cache机制

说明: Kernel版本:4.14ARM64处理器,Contex-A53,双核使用工具:Source Insight 3.5, Visio 1. 概述 先来看一下经典的存储器层次结构图: 不同存储器技术的访问时间差异很大,CPU和主存…

2023年深圳前端培训机构排名,评价较高的机构分享

深圳前端培训机构排行榜的前三名是哪家呢?不少学生在选择学习前端开发的时候,都会通过网络来找一些相关的排行,评判哪家机构的教学比较好,今天小编就来针对这类相关的培训为大家分享一些内容,帮助大家选择更适合自己的…

RabbitMQ面试知识点总结

1.消息模式 P2P Worker Pub/Sub(exchange 4种) 四种交换机:direct/topic/headers/fanout,默认交换机是direct,其中Publish/Subscribe,Routing,Topics三种模式可以统一归为Exchange模式,只是创建时交换机的…

【LeetCode每日一题】【2023/2/1】2325. 解密消息

文章目录2325. 解密消息方法1:哈希表2325. 解密消息 LeetCode: 2325. 解密消息 简单\color{#00AF9B}{简单}简单 给你字符串 key 和 message ,分别表示一个加密密钥和一段加密消息。解密 message 的步骤如下: 使用 key 中 26 个英文小写字母第…

SpringBoot 监控统计(SQL监控、慢SQL记录、Spring监控、去广告)

1 基本概念Druid 是Java语言中最好的数据库连接池。虽然 HikariCP 的速度稍快,但是,Druid能够提供强大的监控和扩展功能 ,也是阿里巴巴的开源项目。Druid是阿里巴巴开发的号称为监控而生的数据库连接池,在功能、性能、扩展性方面&…

算法---冗余连接

题目 树可以看成是一个连通且 无环 的 无向 图。 给定往一棵 n 个节点 (节点值 1~n) 的树中添加一条边后的图。添加的边的两个顶点包含在 1 到 n 中间,且这条附加的边不属于树中已存在的边。图的信息记录于长度为 n 的二维数组 edges ,edge…

蓝桥杯2022 python C组

蓝桥杯2022 python C组 跟之前的就四题不一样 第二题:特殊时间 就是i 从0-9,j从0-9 i是三个一样的,然后看看他们能不能成为 年 月日 时分 成为年只要大于0就好了,称为月日的话月要从1-12,日呢,特殊的日子…

Kylin入门实战(数据源添加 + Model定义 + Cube构建 + 结果查询 + 查询限制)

目录1. 入门实战目的2. Hive源数据准备3. 创建project并添加Hive数据源4. 定义model5. 定义Cube6. 构建cube7. 查询cube构建后的结果8. 查询限制1. 入门实战目的 实现从不同的维度统计员工的工资,例如从岗位类型、员工年龄、部门等不同维度,进行多维度的…

【LeetCode每日一题】【2023/1/30】1669. 合并两个链表

文章目录1669. 合并两个链表方法1:模拟1669. 合并两个链表 LeetCode: 1669. 合并两个链表 中等\color{#FFB800}{中等}中等 给你两个链表 list1 和 list2 ,它们包含的元素分别为 n 个和 m 个。 请你将 list1 中下标从 a 到 b 的全部节点都删除&#xff0…

亚信科技通信、交通行业数据库项目入选“星河”标杆、优秀案例

近日,由中国信息通信研究院、中国通信标准化协会大数据技术标准推进委员会(CCSA TC601)共同组织的第六届大数据“星河”案例评选结果公示,亚信科技及旗下亚信安慧支持完成的中国移动通信集团上海有限公司“业务支撑系统核心数据库…

Day 17 springboot 监听机制

1 Java 监听机制springboot监听机制,其实是对java提供的事件监听机制的封装。Java中的事件监听机制定义了以下几个角色:事件:Event,继承EventObject类,例如点击,拖动等等。事件源:Source&#x…

Python 正确重写运算符(重载)

运算符重载的作用是让用户定义的对象使用中缀运算符(如和|)和一元运算符(如-和~)。在Python中,这些也算是运算符:函数调用:()属性访问:.元素访问和切片:[]运算符重载基础…

RabbitMQ消息转换器

文章目录RabbitMQ消息转换器RabbitMQ消息转换器 在SpringAMQP的发送方法中,发送消息和接受消息的类型都是Object,也就是说,我们可以发送任意对象类型的消息,SpringAMQP都会帮我们把发送的消息序列化为字节后再进行发送。下面&…

剑指 Offer 第 16 天 把数组排成最小的数 扑克牌中的顺子

目录 面试题45. 把数组排成最小的数 面试题61. 扑克牌中的顺子 面试题45. 把数组排成最小的数 输入一个非负整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。 示例 1: 输入: [10,2] 输出: "102" 示例 2: 输…