《计算机组成原理》唐朔飞 第9章 控制单元的功能 - 学习笔记

news2024/12/24 8:42:18

写在前面的话:此系列文章为笔者学习计算机组成原理时的个人笔记,分享出来与大家学习交流。使用教材为唐朔飞第3版,笔记目录大体与教材相同。


网课

计算机组成原理(哈工大刘宏伟)135讲(全)高清_哔哩哔哩_bilibili


笔记

《计算机组成原理》唐朔飞 第5章 输入输出系统 - 学习笔记_友人帐_的博客-CSDN博客

《计算机组成原理》唐朔飞 第7章 指令系统 - 学习笔记_友人帐_的博客-CSDN博客

《计算机组成原理》唐朔飞 第8章 CPU的结构和功能 - 学习笔记_友人帐_的博客-CSDN博客

《计算机组成原理》唐朔飞 第9章 控制单元的功能 - 学习笔记_友人帐_的博客-CSDN博客

《计算机组成原理》唐朔飞 第10章 控制单元的设计 - 学习笔记_友人帐_的博客-CSDN博客


课后习题答案

计算机组成原理(第三版)唐朔飞-课后习题(完整版)_计算机组成原理唐朔飞第三版答案_蓝净云的博客-CSDN博客


哈尔滨工业大学计组实验

计算机组成原理实验一 运算器 预习报告_基本运算器实验_旅僧的博客-CSDN博客

计算机组成原理实验二 存储系统 预习报告_旅僧的博客-CSDN博客

计算机组成原理实验三 系统总线和具有基本输入输出功能的总线接口 预习报告_旅僧的博客-CSDN博客

计算机组成原理实验四 微程序控制器 实验报告_旅僧的博客-CSDN博客


第九章 控制单元的功能

9.1 微操作命令的分析

控制单元具有发出各种微操作命令(即控制信号)序列的功能。

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

MAR存放欲访问的存储单元地址;MDR存放欲写入存储器的信息或最近从存储器中读出的信息;PC存放现行指令的地址,有计数功能;IR存放现行指令。

在这里插入图片描述

9.1.1 取指周期

取指操作:

①现行指令地址送至存储器地址寄存器,记作 PC->MAR

②向主存发送读命令,启动主存做读操作,记作1->R

③将MAR(通过地址总线)所指的主存单元中的内容(指令)经数据总线读至MDR内,记作M(MAR)->MDR

④将MDR的内容送至IR,记作MDR->IR

⑤指令的操作码送至CU译码,记作OP(IR)->CU

⑥形成下一条指令的地址,记作 (PC)+1->PC

9.1.2 间址周期

完成取操作数有效地址的任务:

①将指令的地址码部分(形式地址)送至存储器地址寄存器,记作Ad(IR)->MAR

②向主存发送读命令,启动主存做读操作,记作1->R

③将MAR(通过地址总线)所指的主存单元中的内容(有效地址)经数据总线读至MDR内,记作 M(MAR)->MDR

④将有效地址送至指令寄存器的地址字段,记作MDR->Ad(IR) 。此操作在有些机器中可省略

9.1.3 执行周期

在这里插入图片描述

(1)非访存指令

这类指令在执行周期不访问存储器。

  1. ACC累加器清零指令CLA:0->ACC

  2. ACC按位取反指令COM: A C C ‾ → A C C \overline{ACC}\rightarrow ACC ACCACC

  3. ACC算术右移一位指令SHR: L ( A C C ) → R ( A C C ) , A C C 0 → A C C 0 L(ACC)\rightarrow R(ACC), ACC_0\rightarrow ACC_0 L(ACC)R(ACC),ACC0ACC0

  4. ACC循环左移一位指令CSL: R ( A C C ) → L ( A C C ) , A C C 0 → A C C n R(ACC)\rightarrow L(ACC), ACC_0\rightarrow ACC_n R(ACC)L(ACC),ACC0ACCn

  5. 停机指令STP:计算机中有一个运行标志触发器,当G=1时,表示机器运行;当G=O时,表示停机。STP指令在执行阶段只需将运行标志触发器置“0",记作 0->G

(2)访存指令

只考虑直接寻址

  1. 加法指令 ADD X:ACC+(X)->ACC

在这里插入图片描述

  1. 存数指令STA X:ACC->(X)

在这里插入图片描述

  1. 取数指令LDA X:(X)->ACC

在这里插入图片描述

(3)转移类指令

不访问存储器

  1. 无条件跳转JMP X:该指令在执行阶段完成将指令的地址码部分送至PC的操作,记作Ad(IR)->PC
  2. 条件跳转

9.1.4 中断周期

在执行周期结束时刻,CPU要查询是否有请求中断的事件发生,如果有则进入中断周期。假设程序断点存至主存的"0"地址单元,且采用硬件向量法寻找入口地址,则在中断周期需完成如下操作:

(不是绝对的0地址,是某个给定地址)

在这里插入图片描述

①0→MAR,将特定地址“0”送至存储器地址寄存器。

②1→W。

③PC→MDR,保存断点。

④MDR→M(MAR)。

⑤向量地址→PC。

⑥0→EINT关中断。

如果程序断点存入堆栈,而且进栈操作是先修改栈指针,后存人数据,只需将上述①改为(SP)-1→SP,且SP→MAR。

9.2 控制单元的功能

9.2.1 控制单元的外特性

在这里插入图片描述

  1. 输入信号

(1)时钟

为了使控制单元按一定的先后顺序、一定的节奏发出各个控制信号,控制单元必须受时钟控制,即每一个时钟脉冲使控制单元发送一个操作命令,或发送一组并行执行的操作命令。

(2)指令寄存器

现行指令的操作码决定了不同指令在执行周期所需完成的不同操作,故指令的操作码字段是控制单元的输入信号,它与时钟配合可产生不同的控制信号。

(3)标志

控制单元有时需依赖CPU当前所处的状态(如ALU操作的结果)产生控制信号。

(4)来自系统总线(控制总线)的控制信号

例如中断请求、DMA请求等。

  1. 输出信号

(1)CPU内的控制信号

主要用于CPU内的寄存器之间的传送和控制ALU实现不同的操作。

(2)送至系统总线(控制总线)的信号

如命令主存或I/O读写、中断响应等。

9.2.3 多级时序系统

(1)机器周期

机器周期可看作所有指令执行过程中的一个基准时间,机器周期取决于指令的功能及器件的速度。

机器内的各种操作大致可归属为对CPU内部的操作和对主存的操作两大类,由于CPU访存的操作时间较长,因此通常以访问一次存储器的时间定为基准时间较为合理,这个基准时间就是机器周期。(在存储字长等于指令字长的前提下,取指周期也可看作机器周期。)

(2)时钟周期

在一个机器周期里可完成若干个微操作,每个微操作都需要一定的时间,可用时钟信号来控制产生每一个微操作命令。

用时钟信号控制节拍发生器,就可产生节拍。每个节拍的宽度正好对应一个时钟周期。在每个节拍内机器可完成一个或几个需同时执行的操作,它是控制计算机操作的最小时间单位。

(时钟信号的频率即为CPU主频)
在这里插入图片描述

(3)多级时序系统

一个指令周期包含若干个机器周期,一个机器周期又包含若干个时钟周期(节拍)。机器周期、节拍组成多级时序系统。

在这里插入图片描述

主频: M H z MHz MHz

时钟周期: 1 主频 M h z = μ s \frac{1}{主频Mhz}=\mu s 主频Mhz1=μs 最小单位

机器周期: μ s \mu s μs n n n倍时钟周期

指令周期: μ s \mu s μs n n n倍机器周期

平均指令执行速度: 1 指令周期 μ s = M I P S \frac{1}{指令周期\mu s}=MIPS 指令周期μs1=MIPS

衡量机器速度的指标:

  • MIPS(执行百万条指令数每秒)

  • CPI(执行一条指令所需的时钟周期数)

9.2.4 控制方式

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

(1)同步控制方式

以一个统一的定宽定距的时钟(统一基准时标)作为标准,每一个微操作都是在这个时钟的控制下在指定的节拍产生。

  1. 采用定长的机器周期

每个机器周期中采用完全统一的、具有相同时间间隔和相同数目的节拍。

此时以最长的微操作序列和最复杂的微操作作为机器周期的标准。

对于较短的指令会造成时间上的浪费。

  1. 采用不定长的机器周期

每个机器周期内的节拍数可以不等。

对某些复杂的微操作,采用延长机器周期或增加节拍的办法来解决。

在这里插入图片描述

  1. 采用中央控制和局部控制相结合的方法

将机器的大部分指令安排在统一的、较短的机器周期内完成,称为中央控制,而将少数操作复杂的指令中的某些操作(如乘除法和浮点运算等)采用局部控制方式来完成。

在这里插入图片描述

  • 局部控制的节拍宽度与中央控制的节拍宽度一致。

  • 将局部控制节拍作为中央控制中机器节拍的延续,插入中央控制的执行周期内,使机器以同样的节奏工作,保证局部控制和中央控制的同步。

与不定长的机器周期的区别(个人理解):

  • 不定长中,每个机器周期长度都不是确定的。

  • 而在中央控制和局部控制相结合的方法中,具有一个统一的定长的较短的机器周期,可以在一个周期内完成大部分指令;而对于较长的指令,先在中央控制节拍控制下完成部分指令,若不能在一个周期内完成,则增加局部控制节拍,插入中央控制的执行周期,作为中央控制的延续,再单独为其运算几个局部控制节拍,局部节拍数可能是提前确定的(乘法),也可能不能提前确定(浮点对阶)

(2)异步控制方式

不存在定宽定距的基准时钟,使用应答方式来控制。

CU发出执行某一微操作的控制信号后,等待执行部件完成该操作后发回“回答”(或“结束”),信号,再开始新的微操作,使 CPU 没有空闲状态,但因需要采用各种应答电路,故其结构比同步控制方式复杂。

(3)联合控制方式

同步控制和异步控制相结合。

对各种不同指令的微操作实行大部分统一(如取指操作)、小部分区别对待(难以确定结束时间,如I/O操作)的办法。

(4)人工控制方式

为了调机和软件开发的需要,在机器面板或内部设置一些开关或按键,来达到人工控制的目的。

  • Reset(复位)键:使计算机处于初始状态

  • 连续或单条执行转换开关

  • 符合停机开关:有一个寄存器保存了停机条件,是一个内存单元地址,当程序运行到与开关指示的地址相符时,机器便停止运行,称为符合停机。

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

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

相关文章

git (本地仓库)和(远程仓库)之间的代码推送:013

这里先说明一下循序: 1. 创建(远程仓库)和(本地仓库) 2. 创建(远程仓库)和(本地仓库)之间的链接 3. 将(本地仓库)的代码推通过命令送到(远程仓库);将(本地仓库)的代码通过(TortoiseGit小乌龟)推送到(远程仓库) 1. 创建(远程仓库)和(本地仓库)&#xff0c…

PHP异步:在PHP中使用 fsockopen curl 实现类似异步处理的功能

PHP从主流来看,是一门面向过程的语言,它的最大缺点就是无法实现多线程管理,其程序的执行都是从头到尾,按照逻辑一路执行下来,不可能出现分支,这一点是限制php在主流程序语言中往更高级的语言发展的原因之一…

C++实现sqlite单表增删改查的详细步骤

1.环境准备 coding之前需要先安装好C的集成开发环境, 我这里选择的是Visual Studio 2022,本来想使用CLion的, 但是破解太麻烦,懒得整了。 Visual Studio 2022 2.项目创建及编码 启动visual studio, 点击创建项目,选…

《MYSQL必知必会》读书笔记1

目录 行 主键 MYSQL工具 使用MYSQL 连接 检索数据 检索(SELECT) 限制结果(LIMIT) 排序检索(ORDER BY) 过滤数据(WHERE) 过滤数据(AND、OR) 通配符…

软件测试总结

软件生命周期(SDLC)的六个阶段 1、问题的定义及规划 此阶段是软件开发方与需求方共同讨论,主要确定软件的开发目标及其可行性。 2、需求分析 在确定软件开发可行的情况下,对软件需要实现的各个功能进行详细分析。需求分析阶段是一个很重要…

ML | 6 支持向量机

ML | 6 支持向量机 文章目录 ML | 6 支持向量机SVM介绍线性不可分数据线性可分数据 寻找最大间隔分类器求解的优化问题 SMO高效优化算法简化版SMO处理小规模数据集伪代码程序清单 完整Platt SMO 算法加速优化完整 Platt SMO的支持函数完整Platt SMO算法中的优化例程完整Platt S…

记录--Vue3自定义一个Hooks,实现一键换肤

这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 核心 使用CSS变量, 准备两套CSS颜色, 一套是在 light模式下的颜色,一套是在dark模式下的颜色dark模式下的 CSS 权重要比 light 模式下的权重高, 不然当我们给html添加自定义属性[data-themedark]的时候…

CVPR 2023 | 南大王利民团队提出LinK:用线性核实现3D激光雷达感知任务中的large kernel...

点击下方卡片,关注“CVer”公众号 AI/CV重磅干货,第一时间送达 点击进入—>【Transformer】微信交流群 【CVPR 2023】LinK:用线性核实现3D激光雷达感知任务中的large kernel 本文介绍我们媒体计算研究组(MCG)在3D激…

chatgpt赋能python:Python中的提取函数——数据清洗中必不可少的利器

Python中的提取函数——数据清洗中必不可少的利器 数据清洗是数据分析过程中不可或缺的一步,而Python中的提取函数则是数据清洗中必不可少的利器。本文将重点介绍一些Python中常用的提取函数,以帮助数据分析师更好地应对实际问题。 什么是提取函数&…

react antd Modal里Form设置值不起作用

问题描述: react antd Modal里Form设置值不起作用,即使用form的api。比如:编辑时带出原有的值。 造成的原因:一般设置值都是在声明周期里设置,比如:componentDidMounted里设置,hook则在useEff…

云网络安全与数据中心安全

近年来,许多云架构师宣称随着公共云的采用,网络安全性将消亡。然而,网络安全仍然是最大的安全市场之一,并且是每个主要云服务提供商 (CSP) 在过去几年中推出重要新产品的领域。 网络对安全仍然至关重要,即使在云中也是…

【软考系统规划与管理师笔记】第4篇 信息技术服务知识

目录 1 产品、服务和信息技术服务 1.1 产品 1.2 服务 1.3 信息技术服务 2运维、运营和经营 2.1运维 2.2运营 2.3经营 3 IT治理 4 IT服务管理 4.1传统管理方式 4.2体系化管理方式 5项目管理 6质量管理理论 6.1质量管理发展历史 6.2质量管理常见理论方法 6.3质…

【公网远程Jellyfin】——本地部署Jellyfin影音服务器

文章目录 1. 前言2. Jellyfin服务网站搭建2.1. Jellyfin下载和安装2.2. Jellyfin网页测试 3.本地网页发布3.1 cpolar的安装和注册3.2 Cpolar云端设置3.3 Cpolar本地设置 4.公网访问测试5. 结语 1. 前言 随着移动智能设备的普及,各种各样的使用需求也被开发出来&…

面向Java开发者的ChatGPT提示词工程(5)

GPT 的局限性 在探讨开发大型语言模型应用程序时,我们必须认识到 GPT 存在一些局限性。这些限制对于我们保持清醒的头脑至关重要。 尽管在 GP T的训练过程中融入了大量知识,但它并非能够完美地记住所见之物,并且对这些知识的边界了解有限。…

玩转用户旅程地图

图:史江鸿 从事需求分析和产品设计工作已经有几个年头了,我很享受这个职业。因为在这段职业历程中,我学到了很多有意思的方法和工具,用户旅程地图就是其中一个。 如今在国内外许多IT公司,用户旅程地图已经成为需求分析…

ElasticSearch安装部署

ElasticSearch安装部署 简介 全文搜索属于最常见的需求,开源的 Elasticsearch (以下简称 es)是目前全文搜索引擎的首选。 它可以快速地储存、搜索和分析海量数据。维基百科、Stack Overflow、Github 都采用它。 Elasticsearch简称es&…

C++【实现红黑树(核心插入)】

文章目录 一、红黑树概念介绍二、红黑树模拟实现(1)红黑树节点(2)红黑树插入分析(核心)(3)插入代码思路(如何快速写插入算法)(4)判断平衡函数(5)查找函数&…

01_java基础语法

1. Java概述 1.1 Java语言背景介绍(了解) 语言:人与人交流沟通的表达方式 计算机语言:人与计算机之间进行信息交流沟通的一种特殊语言 Java语言是美国Sun公司(Stanford University Network)在1995年推出的…

【软硬件测试】测试经验:软硬件结合测试要点

目录 一、应用行业 二、测试要点 三、硬件测试 (1)测试含义 (2)测试方法 (3)相关链接 四、结合测试 (1)测试含义 (2)测试工具 (3&am…

NIO之SocketChannel,SocketChannel ,DatagramChannel解读

目录 基本概述 ServerSocketChannel 打开 ServerSocketChannel 关闭 ServerSocketChannel 监听新的连接 阻塞模式 非阻塞模式 SocketChannel SocketChannel 介绍 SocketChannel 特征 创建 SocketChannel 连接校验 读写模式 读写 DatagramChannel 打开 Datagr…