本篇博客是考研期间学习王道课程 传送门 的笔记,以及一整年里对
计算机组成
知识点的理解的总结。希望对新一届的计算机考研人提供帮助!!!
关于对 “中央处理器” 章节知识点总结的十分全面,涵括了《计算机组成原理》课程里的全部要点(本人来来回回过了三遍视频),其中还陆陆续续补充了许多内容,所以读者可以相信本篇博客对于考研计算机组成原理 “中央处理器” 章节知识点的正确性与全面性;但如果还有自主命题的学校,还需额外读者自行再观看对应学校的自主命题材料。
食用说明书:
第一遍学习王道课程时,我的笔记只有标题和截图,后来复习发现看只看图片,并不能很快的了解截图中要重点表达的知识点。
在第二遍复习中,我给每一张截图中 标记了重点,以及 每张图片上方总结了该图片 对应的知识点 以及自己的 思考 。
最后第三遍,查漏补缺。
所以 ,我把目录放在博客的前面,就是希望读者可以结合目录结构去更好的学习知识点,之后冲刺复习阶段脑海里可以浮现出该知识结构,做到对每一个知识点熟稔于心!
请读者放心!目录展示的知识点结构是十分合理的,可以放心使用该结构去记忆学习!
注意(⊙o⊙)!,每张图片上面的文字,都是该图对应的知识点总结,方便读者更快理解图片内容。
【考纲内容】
王道 P212 ~ 285
(一) CPU的功能和基本结构
网课耗时:
0.5 h
(二) 指令执行过程
网课耗时:
0.5 h
(三) 数据通路的功能和基本结构
网课耗时:
1 h
(四) 控制器的功能和工作原理
网课耗时:
2.5 h
(五) 异常和中断机制
- 异常和中断的基本概念;
- 异常和中断的分类;
- 异常和中断的检测与响应;
(六) 指令流水线
网课耗时:
2 h
- 指令流水线的基本概念;
- 指令流水线的基本实现;
- 结构冒险、数据冒险和控制冒险的处理;
- 超标量和动态流水线的基本概念;
(七) 多处理器基本概念
网课耗时:
0.5 h
- SISD、SIMD、MIMD、向量处理器的基本概念;
- 硬件多线程的基本概念;
- 多核(multi-core)处理器的基本概念;
- 共享内存多处理器(SMP)的基本概念;
【复习提示】
中央处理器是计算机的中心,也是本书的难点;
其中,数据通路的分析、指令执行阶段的节拍 与 控制信号的安排、流水线技术 与 性能分析 易出 综合题;
而 关于各种寄存器的特点、指令执行的各种周期与特点、控制器的相关概念、流水线的相关概念 也极易出 选择题;
之前就已经介绍过,CPU 由 运算器 + 控制器 两部分组成;
运算器 的基本组成:
ACC + MQ + X + ALU
;
控制器 的基本组成:
CU + IR + PC
;
回顾下 第一章 第4个视频 中关于CPU的内容:
CPU工作的过程 就是 执行一条条 指令 (机器指令) 的过程,下面举例:
初:程序计数器 PC 会指向下一条会执行的指令,初始PC指向第一条指令,
此时 (PC) = 0
;#1:
(PC) -> MAR
,将 PC 中存储的指令送往 地址寄存器 MAR;#2 + #3:
M(MAR) -> MDR
,根据 MAR 中的地址去主存中取指令,先存放到 数据寄存器 MDR 中;#4:
(MDR) -> IR
,将指令送往 指令寄存器 IR ;以上 4 步完成 取指令 的过程,每取出一条指令之后,PC 会自动 +1,指向下一条指令;
#5:
OP(IR) -> CU
,会将 当前执行指令 所需要的 操作码字段 送到 控制单元 CU ;#6:
Ad(IR) -> MAR
,将指令的 地址码字段 送到 MAR;#7 + #8:
M(MAR) -> MDR
,取出数据,然后放进 MDR 中;#9:
(MDR) -> ACC
:将数据送往 累加器 ACC ;
上图具体介绍了 取数指令 的具体过程,下面的
a × b
和ab + c
就不具体介绍,看图;
本章节是 《计算机组成原理》内容最多的章节,务必 多多复习总结 ;
1. CPU的五个主要功能
指令控制、操作控制、时间控制、数据加工、中断处理;
2. 运算器和控制器的功能
CPU的两个重要部件:运算器 和 控制器 ;
CPU四大组成结构:运算器 (ALU) + 运算器 (CU) + 寄存器 + 中断系统
下图是之前介绍的CPU基础结构,本节会更进一步介绍其内部结构;
1. 运算器的基本结构
每一个通用寄存器,都有可能做为 ALU 的 A端输入 或 B端输入,所以每个通用寄存器都有线路与ALU相连;
若采用 专用数据通路方式 ,那么每个寄存器和 ALU 之间都可能需要专门的连接通路 (寄存器越多,连线越多);
下图的A端,若寄存器存储16bit的数据,那么A端就是16根线,下图因为空间问题,就画了几根;
在 专用数据通路方式 中,ALU连接了很多条来自通用寄存器的线路,就需要解决 线路仲裁 的问题;
方法一:使用 多路选择器 MUX 选择输出;
方法二:使用 三态门 选择输出;
特点:无论是 MUX 还是 三态门 ,性能都较高,不易冲突,但结构复杂,不易实现;
除了采用 专用数据通路方式 进行数据的传输,还有其它数据传输方式,例如: CPU内部单总线方式 (5.3.2 节的内容);
下图中,将所有寄存器的输入端和输出端都在一条公共的总线上,核心就是 单总线 ;
特点:该方式结构简单,但 冲突问题 频发;
A、B两处的操作数都需要从总线读数据,这步就发生冲突了,所以可以给其中一端添加 暂存寄存器 ,解决输入冲突问题;
AUL的运算结果 和 B操作数输入端 都连接这总线,又发生了冲突,所以在ALU的输出端也添加了 暂存寄存器 ;
暂存寄存器 还可以添加一些功能,改造成 移位寄存器 或 累加寄存器 ;
2. 控制器的基本结构
PC 程序计数器
;IR 指令寄存器
,OP 为 操作码字段,Ad为地址码字段;ID 指令译码器
,OP 作为译码器的输入,该指令对应的输出端就会选通,就知道具体指令操作; ID的输出信号 就是 微操作信号发生器 的输入信号,用来判断该指令对应的微操作序列;
说白了,译码器 会将 操作码字段 具体分为对应的 微操作 ;
MAR 地址寄存器
;MDR 数据寄存器
,MDRin 是从CPU内部输入,MDRinE 是从外部输入;MDRout ,MDRoutE 同理;- 时序系统;
- 微操作信号发生器;
下图就是采用 CPU内部单总线方式 的结构图,务必要牢记 ⭐⭐⭐;
下图中橙色的寄存器为 用户可见的寄存器 ,灰色表示 用户不可见的寄存器 ;(选择题常考)
- 用户可见寄存器 (可对其编程):
X 通用寄存器、PSW 程序状态字寄存器、累加器 ACC、程序计数器 PC
;- 用户不可见寄存器 (不可编程):
MAR 存储器地址寄存器、MDR 存储器数据寄存器、IR 指令寄存器
;
章节小结
指令周期:一条指令从取指令到执行完成的时间间隔;(每个指令的指令周期不一定相等)
一个 指令周期 划分为若干个 机器周期 (CPU周期) ;
一个 机器周期 划分为若干个 时钟周期(时钟周期 = 节拍 = T周期 = CPU时钟周期);
指令周期中 机器周期 的长度可以相同也可以不同,按照这个可以分为:
- 定长的机器周期
- 不定长的机器周期
一条指令的执行分为不同的阶段:
取指周期 - 间址周期 - 执行周期 - 中断周期
; 当 CPU 采用中断方式实现主机和 I/O设备 的信息交换时,CPU在每条指令执行结束前,都要发中断查询信息。若有中断请求,
则CPU进入中断响应阶段(中断周期);
为了标识当前处于哪个阶段,CPU内设置四个 标志触发器:
FE、IND、EX、INT
; 四个工作周期 都有CPU访存 操作,只是访存的 目的不同 :
- 取值周期 为了 取指令;
- 间址周期 为了 取有效地址;
- 执行周期 为了 取操作数;
- 中断周期 为了 保护程序断点;
1. 取值周期
取值周期的任务是根据PC中的内容,从主存中 取出指令代码 并 存放在IR中 ;
2. 间址周期
间址周期的任务是取操作数有效地址;
3. 执行周期
4. 中断周期
指令执行方案
- 单指令周期:每条指令的 执行时间 规定相同;
- 多指令周期:每天指令的 执行时间 可以不同;
- 流水线方案:具体看 5.6 指令流水线 ;
章节小结
本节重点关注在指令执行中,数据流动 情况和对应 控制信号;
数据通路:数据在功能部件之间传送的路径;
数据通路描述了信息从哪里开始、中间经过哪些部件、最终传送到哪个寄存器;
数据通路由 控制部件 控制,控制部件根据每条指令功能的不同生成对数据通路的控制信号; 数据通路的功能是 实现CPU内部的 运算器与寄存器 及 寄存器之间 的数据交换 ;
数据通路的基本结构包括以下三种:
① CPU内部单总线结构
所以寄存器的输入端和输出端都连接连接到一条公共通路上;
特点:结构简单、易数据冲突、性能低;
② CPU内部三总线结构
③ 专用数据通路方式
根据指令执行过程中的数据和地址的流动方向安排连接线路;
特点:避免使用共享的总线,性能高、硬件量大;
1. CPU内部单总线方式
数据流动的三个主要情况:寄存器与寄存器、寄存器与主存、寄存器与ALU,下面分别讨论三种情况;
① 寄存器与寄存器之间的数据传送
② 主存与CPU之间的数据传送
③ 执行算术或逻辑运算
例题
2. 专用数据通路方式
【讨论】专用数据通路方式在 取指周期 的步骤
取值周期 | 微指令 | 对应操作 |
---|---|---|
(PC) -> MAR | C0 有效 | |
(MAR) -> 主存 | C1 有效 | |
1 -> R | 控制单元向主存发送读命令 | |
M(MAR) -> MDR | C2 有效 | |
(MDR) -> IR | C3 有效 | |
(PC) + 1 -> PC | ||
有时候这一步可以不写 | OP(IR) -> CU | C4 有效 |
本题为课后习题
小结
硬布线控制器,用 纯硬件 的方式实现控制器的功能;
微命令 是工作要求,微操作 是具体工作;
一个节拍内可以 并行 完成 多个 相容的 微操作;
原理很像 逻辑公式表 ,例如: C1 = FE · T0 ;
当机器周期处于 FE取值周期,且在该周期的 T0 节拍时,所对应的微操作就是 C1 ;
下图就是本节的学习目标,不过考试不会考这么难;
- 紫色的线是 机器周期信号 ;
- 棕色的线是 节拍信号 ;
- 蓝色的线是 指令操作码信号 ;
本节的重点:硬布线控制器的设计 ⭐
1. 分析每个阶段的微操作序列
2. 选择CPU的控制方式
产生不同微操作命令序列所用的时序控制方式;
(1) 同步控制方式
任意微操作均由同一基准时标的时标信号控制;(例如:15分钟后下课)
CPU把地址、数据和控制信号给内存后,会自动的隔一段时间区去取数据;
① 采用 定长 的机器周期
以 最长 的微操作序列 和 最繁琐 的微操作为标准机器周期;
优点:控制简单;
缺点:例如规定一个CPU周期4个节拍。有时执行完2个节拍就结束了,却还需要等待4个节拍结束;
② 采用 不定长 的机器周期
机器周期内节拍数不同,需要的多就延长,需要的少就减少;
③ 采用 中央控制 和 局部控制 相结合的方法
节拍数只延长,不减少;
(2) 异步控制方式
采用应答方式、无基准时标信号、无固定的周期节拍和严格的时钟固定;
(3) 联合控制方式
同步、异步相结合;
3. 安排微操作时序
① 取值周期
② 间址周期
③ 执行周期
④ 中断周期
4. 电路设计 - 组合逻辑设计
① 列出操作时间表
② 写出微操作命令的最简表达式
③ 画出逻辑图
小结
硬布线控制器 虽然难,但不是考试重点,微程序控制器 大题有可能考察;
1. 微程序控制器设计思路
组合逻辑电路设计:用 门电路 直接进行控制;
微程序电路设计:仿照程序思想,由 控制存储器 发出控制信号;
程序员编写的代码,被翻译成一系列机器指令;
每条 机器指令 的执行包含多个阶段,每个 机器阶段 需要执行多条微指令,每条 微指令 由多个 微操作 构成;
【注意】
- 微命令 与 微操作 一一对应;
- 微指令 中可能包含 多个微命令 ;
2. 微程序控制器的基本结构
重要部件:控制存储器 uCM ,存放各指令对应的微程序;
CM被分为若干个区域,每个区域对应一条机器指令在执行过程中,除 取指微指令 之外的微指令;
ADD1 R1 ,(R2) ,需要两条微指令(取数 + 加法);
ADD1 R1 ,R2 ,只需要一条微指令(加法);
3. 微程序控制器的工作原理
下图中的
LDA X
指令是缩写,实际含义是Load ACC X
,把X里的数据放进ACC里去;
小结
本节围绕的中心:如何根据一条微指令发出对应的微命令序列 ?
1. 微指令的格式
2. 微指令的编码方式
① 直接表示法
操作控制字段中的 各位 可以直接控制计算机,不需要进行译码;
② 字段直接编码方式
将操作控制字段分为若干个小段,每段内采用最短编码法,段与段之间采用直接控制法;
特点:可以避免互斥,使指令字大大缩短,但增加了译码电路,使微程序的执行速度减慢;
互斥的微操作,是指不能同时或不能再同一个节拍内 (CPU周期) 并行执行的微操作。可以编码;
相容的微操作,是指不能……的微操作。必须各占一位;
3. 微指令的地址形成方式
例题
小结
小结
看 《操作性系统》章节,里面有详细介绍
1. 指令流水线的基本概念
【技术背景】
5.6 节 之前的指令都是在单周期处理机中 串行执行 的,同一时刻CPU只有一条指令在执行,效率低 ;
下图中,顺序执行 n 条指令的时间为:
T = n × 3t
;【流水线实质】
一条指令的各 CPU 周期 (取值、分析、执行) 所使用的硬件不一样,根据这一特点可以进行优化;
指令流水线技术:同一时刻有 多条指令 在 CPU 的不同功能部件中 并行执行 ;
① 顺序执行方式
② 一次重叠执行方式
③ 两次重叠执行方式
【流水线的表示方法】
- 指令执行过程图
- 时空图
2. 流水线的性能指标
① 流水线吞吐量 (TP)
② 流水线加速比 (S)
③ 流水线效率 (E)
小结
本节讨论问题采用 五段式指令(考试常常采用该类型指令)
IF 取指阶段、ID 间址阶段 (指令译码)、EX 执行阶段、M 访存阶段、WB 写回阶段
为方便讨论,规定每个阶段的时间一样,都设置成 100 ns ;
1. 影响流水线的因素
① 结构相关
下图中红框表示 结构冲突 ,解决办法:
- 方法1:等一等;
- 方法2:资源纵向分类;
② 数据相关
下图中,各指令对 r1 的写回、取出可能导致 数据相关 ,解决办法:
- 方法1:等一等(硬件阻塞、软件插入 NOP);
- 方法2:数据旁路技术 - 转发机制 (直接 转发 结果,作为下一条指令的输入);
- 方法3:编译优化(把后续不冲突的指令提前执行,直到 r1 写回);
③ 控制相关
下图中 位置12 的 转移指令 若条件成立,立刻跳到 位置1000,中间的很多指令就不执行了 (控制相关);
- 方法1:转移指令分支预测 (猜猜条件成不成立);
- 方法2:预取转移成功和不成功两个控制流方向上的目标指令 (两手准备);
- 方法3:加快和提前形成条件码;
- 方法4:提高转移方向的猜准率 (提高猜对概率);
2. 流水线的分类 (简单了解)
3. 流水线的多发技术
① 超标量技术
多发:并发多条独立指令不会出问题
② 超流水技术
③ 超长指令字
小结
大题经常考察类似下图 数据相关 的问题
1. 运算类指令的执行过程
重点关注 运算类指令 各阶段的操作;
2. LOAD指令的执行过程
3. STORE指令的执行过程
4. 条件转移指令的执行过程
5. 无条件转移指令的执行过程
例题
概念题,一般考选择,重点靠自己记忆;
1.流水线越多,并行度就越高。是否流水段越多,指令执行越快 ?
错误,原因如下:
① 流水段缓冲之间的额外开销增大;
每个流水段有一些额外开销用于缓冲间传送数据、进行各种准备和发送等功能,这些开销加长了一条指令的整个执行时间,当指令间逻辑上相互依赖时,开销更大;
② 流水段间控制逻辑变多、变复杂;
用于流水线优化和存储器(或寄存器)冲突处理的控制逻辑将随流水段的增加而大增,这可能导致用于流水段之间控制的逻辑比段本身的控制逻辑更复杂;
2. 有关指令相关、数据相关的几个概念
① 两条连续的指令读取相同的寄存器时,会产生读后读(Read After Read,RAR)相关,这种相关不会影响流水线;
② 某条指令要读取上一条指令所写入的寄存器时,会产生写后读(Read After Write,RAW)相关,它称数据相关或真相关,影响流水线。按序流动的流水线只可能出现RAW相关;
③ 某条指令的上条指令要读/写该指令的输出寄存器时,会产生读后写 (Write After Read,WAR) 和 写后写 (Write After Write, WAW)相关;
在非按序流动的流水线中,既可能发生RAW相关,又可能发生WAR相关和WAW相关;
对流水线影响最严重的指令相关是数据相关;
3.组合逻辑电路和时序逻辑电路有什么区别 ?
组合逻辑电路是具有一组输出和一组输入的非记忆性逻辑电路,它的基本特点是任何时刻的输出信号状态仅取决于该时刻各个输入信号状态的组合,而与电路在输入信号作用前的状态无关;
组合电路不含存储信号的记忆单元,输出与输入之间无反馈通路,信号是单向传输的。
时序逻辑电路中任意时刻的输出信号不仅和当时的输入信号有关,而且与电路原来的状态有关,这是时序逻辑电路在逻辑功能上的特点。因而时序逻辑电路必然包含存储记忆单元;
此外,组合逻辑电路没有统一的时钟控制,而时序逻辑电路则必须在时钟节拍下工作;
1)指令和数据均存放在内存中,计算机如何从时间和空间上区分它们是指令还是数据 ?
从时间上讲,取指令事件发生在“取指周期”,取数据事件发生在“执行周期”;
从空间上讲,从内存读出的指令流流向控制器(指令寄存器),从内存读出的数据流流向运算器(通用寄存器);
2)什么是指令周期、机器周期和时钟周期 ?它们之间有何关系 ?
CPU每取出并执行一条指令所需的全部时间称为指令周期;
机器周期是在同步控制的机器中,执行指令周期中一步相对完整的操作(指令步)所需的时间,
通常安排机器周期长度 = 主存周期;
时钟周期是指计算机主时钟的周期时间,它是计算机运行时最基本的时序单位,对应完成一个微操作所需的时间,
通常时钟周期 = 计算机主频的倒数;
3)什么是微指令 ?它和上一章谈到的指令有什么关系 ?
控制部件通过控制线向执行部件发出各种控制命令,通常把这种控制命令称为微命令,而一组实现一定操作功能的微命令的组合,构成一条微指令;
许多条微指令组成的序列构成微程序,微程序完成对指令的解释执行;
指令,即指机器指令。每条指令可以完成一个独立的算术运算或逻辑运算操作;
在采用微程序控制器的CPU中,一条指令对应一个微程序,一个微程序由许多微指令构成,一条微指令会发出很多不同的微命令;
4)什么是指令流水线?指令流水线相对于传统体系结构的优势是什么 ?
指令流水线是把指令分解为若干子过程,通过将每个子过程与其他子过程并行执行,来提高计算机的吞吐率的技术;
采用流水线技术只需增加少量硬件就能把计算机的运算速度提高几倍,因此成为计算机中普遍使用的一种并行处理技术,通过在同一个时间段使用各功能部件,使得利用率明显提高;