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

写在前面的话:此系列文章为笔者学习计算机组成原理时的个人笔记,分享出来与大家学习交流。使用教材为唐朔飞第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://xiahunao.cn/news/256649.html

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

相关文章

nexttrace: 一款开源的全能可视化网络路由追踪工具

公众号关注 「奇妙的 Linux 世界」 设为「星标」,每天带你玩转 Linux ! ​ 今天要给大家推荐一个 GitHub 开源项目 sjlleo/nexttrace,该项目在 GitHub 有超过 700 Star,用一句话介绍该项目就是:“An open source visua…

Traceroute(路由追踪)的原理及实现

Traceroute(路由追踪)的原理及实现 (1)相应的协议和原理 IP协议:IP协议是TCP/IP协议族中最核心的部分,它的作用是在两台主机之间传输数据,所有上层协议的数据(HTTP、TCP、UDP等)都会被封装在一…

路由追踪——traceroute与tracert

一、路由追踪   (一)路由跟踪,就是获取从主机A到达目标主机B这个过程中所有需要经过的路由设备的转发接口IP。 (二)ICMP协议   Internet控制报文协议(internet control message protocol)&a…

利用路由追踪工具收集路由信息

预备知识 了解traceroute、Dmitry、Itrace、Tcptraceroute、tctrace等工具的使用方法。 实验 1、此环境用bt5、Linux(可能需要装Java) 2、打开目标主机linux,输入用户名:root,密码:123456.如图&#xff1…

【Linux】关于路由跟踪指令traceroute

本文所有命令实施的大前提是:你现在能够上网。 稍有计算机常识的人都知道ping命令,是用来检查自己的主机是否与目标地址接通,自己的主机与目标地址的通讯包通讯速率,所谓的通讯包也就是那些什么TCP/IP,UDP包&#xff…

Linux Command traceroute 路由追踪

Linux Command traceroute 路由追踪 tags: 网络, 分析 文章目录 Linux Command traceroute 路由追踪1. 介绍2. 工作原理:3. 命令格式:4. 命令功能:5. 用法5.1 最常用的用法5.2 跳数设置5.3 显示IP地址,不查主机名5.4 探测包使用的…

路由跟踪Tracert

路由跟踪Tracert 指令:tracert“address” 作用:是查看数据包从你的电脑出发后,经过了哪些设备最终到达目的地址; 原理: 通过向目标发送不同 IP 生存时间 (TTL) 值的“Internet 控制消息协议 (ICMP)”回应数据包&am…

路由追踪的实现

今天小编将给大家分享我在东北大学上研究生的时候学到的关于路由追踪的实现,希望大家看完小编的这篇博文后能够对windows 下的tracert命令有一定的了解。 1. 实验目的 Tracert(跟踪路由)是路由跟踪实用程序,用于确定 I…

31.traceroute命令进行路由跟踪

路由跟踪功能是用来识别一个设备到另一个设备的网络路径。在一个简单的网络上,这个网络路径可能只经过一个路由器,甚至一个都不经过。但是在复杂的网络中,数据包可能要经过数十个路由器才会到达最终目的地。在通信过程中,可以通过…

路由追踪traceroute分析

原文 : http://www.freebuf.com/articles/network/118221.html 一、路由追踪程序traceroute/tracert Traceroute是Linux和Mac OS等系统默认提供的路由追踪小程序,Tracert是Windows系统默认提供的路由追踪小程序。二者的功能相同,都能探测数据…

路由跟踪(tracert、traceroute)简析

WINDOWS平台命令: tracert LINUX平台命令: traceroute 简介: Tracert(traceroute) 命令用 IP 生存时间 (TTL) 字段和 ICMP 错误消息来确定从一个主机到网络上其他主机的路由。用来跟踪到目的IP所经过路径 原理简…

【Rust 日报】2023-05-28 一个构建在TCP上的聊天工具

tcp-chat:构建在TCP上的简单快速轻量的聊天工具 tcp-chat通过TCP进行通信,该项目的目的是了解并行性和底层网络通信。 前端工具:Solid、Tauri、Vite 后端工具:Rust、Tokio、Serde GitHub: https://github.com/gatomod/tcp-chat ez…

设计模式之~命令模式

定义: 命令模式(Command),将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤销的操作。 为什么需要命令模式? 在我们的软件开发系统中…

c++ 11标准模板(STL) std::map(九)

定义于头文件<map> template< class Key, class T, class Compare std::less<Key>, class Allocator std::allocator<std::pair<const Key, T> > > class map;(1)namespace pmr { template <class Key, class T, clas…

Linux常用命令——gzexe命令

在线Linux命令查询工具 gzexe 用来压缩可执行文件 补充说明 gzexe命令用来压缩可执行文件&#xff0c;压缩后的文件仍然为可执行文件&#xff0c;在执行时进行自动解压缩。当您去执行被压缩过的执行文件时&#xff0c;该文件会自动解压然后继续执行&#xff0c;和使用一般的…

设计模式之~组合模式

组合模式&#xff1a; 将对象组合成树形结构以表示‘部分-整体’的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性。 结构图&#xff1a; 实例&#xff1a; 透明方式&#xff1a; leaf中也有add和remove叫做透明方式&#xff0c;在component中声明所有用来管…

玩具租借小程序

玩具是儿童的必需品&#xff0c;家长每年都会给孩子购买少则几百多则几千的玩具&#xff0c;但是由于孩子对玩具喜新 厌旧&#xff0c;一个几百元的玩具几天就不感兴趣了&#xff0c;而市场上层出不穷的高价玩具及孩子对玩具永不满足的渴求&#xff0c;都在促使家长对"玩具…

租号网程序源码 无错版本完整无缺

介绍&#xff1a; 注意事项&#xff1a; 安装租号程序 需要WIN08服务器 iis7.0 sq2012 NET4.6 程序直接放入设置好的 网站根目录即可 (SA密码设置yixiaoka888) 网盘下载地址&#xff1a; http://kekewl.cc/tJoeIk6qPlJ 图片&#xff1a;

在线游戏租号声优陪玩网站源码+威客平台源码/亲测

正文: 由于标题太长了&#xff0c;所以本文标题简略写了&#xff0c;下方图片才是程序完整标题: 这系统界面美观&#xff0c;功能非常齐全&#xff0c;已对接支付&#xff0c;亲测可用&#xff0c;有详细的安装教程&#xff0c;全部放压缩包里了&#xff0c;有兴趣自己去看。 …

麒麟子出了一款免费3D角色虚拟摇杆控制器!这也太好用了

不需要编写代码&#xff0c;通过简单的拖拽和配置&#xff0c;就可以使你在手机上控制摄像机旋转和操作角色。 EasyJoystick EasyCamera EasyTouch 以上效果就 麒麟子 最近在 Cocos Store 分享的 KylinsEasyController 组件源码&#xff0c;它包含以下主要特性&#xff1a; 虚拟…