第七章 中央处理器(CPU)考点总结
本章地位:第七章是这门课程最核心、最精华的部分,主要解决了"指令如何转化为电子设备的具体动作"这一问题。
📌 一、CPU的基本结构与寄存器(基础考点)
要求:熟记CPU内部各个部件的名称、功能及数据流向。
1. 两大核心部件
- ALU (算术逻辑单元):负责运算。
- CU (控制单元/控制器):CPU的指挥中心,负责发出微命令(控制信号)。
2. 五大专用寄存器(必须死记硬背及其功能)
⭐ PC (程序计数器)
- 功能:存放当前正在执行或下一条将要执行的指令地址。
- 特点:具有自动加1(
PC+1)的功能。 - 注意:微观上
PC+1可能不是简单的PC+1,而是通过ALU运算实现的(如PC_out,ALU_A_in,+1(ALU控制信号),ALU_out,PC_in),这一点和书上的宏观描述不同,考试要按微观的写。
⭐ IR (指令寄存器)
- 功能:存放当前正在执行的指令。
⭐ MAR (存储器地址寄存器)
- 功能:存放欲访问的存储单元地址。
⭐ MDR (存储器数据寄存器)
- 功能:存放从存储器读出或写入的数据。
⭐ PSW (程序状态字寄存器)
- 功能:存放运算结果的状态(如溢出、进位、为零等)和系统状态。
3. 通用寄存器
- 如累加器(ACC/AC)、R0-R31等,用于存放操作数。
📌 二、指令周期与时序系统(概念辨析)
要求:掌握概念的层级关系和定性描述。
1. 三个周期的层级关系
指令周期 > 机器周期 (CPU周期) > 时钟周期 (节拍/T周期)
⭐ 指令周期
- 定义:取出并执行一条指令所需的全部时间。
- 特点:定性描述,不同指令的指令周期长度不同。
⭐ 机器周期
- 定义:完成一个基本操作(如取指、取数)所需的时间。
- 特点:通常取最长操作的时间为基准。
⭐ 时钟周期
- 定义:计算机主频的倒数,是最基本的时间单位。
2. 时序控制方式
- 重点掌握:时钟周期插入法
- 以大多数指令能完成的时间为基准。
- 对于少数慢速操作,插入额外的时钟周期(T)来延长机器周期。
3. 重要提示
老师特别强调:指令周期和机器周期都是定性描述,不是定量描述。
- 不要认为所有指令周期都一样长。
- 不要认为所有机器周期都一样长(有的指令取指只要3个时钟周期,执行可能要10个)。
📌 三、数据通路与指令执行过程(大题重点)
这是本章最难、最可能出大题(写微操作序列)的地方。
1. 指令执行的阶段
⭐ 取指阶段(公共操作)
- 特点:所有指令执行的第一步都是取指。
- 微操作流程(规范写法,按PPT格式):或者更详细的写法(PC+1通过ALU实现):
① PCout,MARin,Read; ② Wait for MFC(等待主存响应); ③ MDRout,IRin; ④ PCout,ALUin,0→Y,1→C0,"+",Zin; ⑤ Zout,PCin;① PCout,MARin,Read; ② Wait for MFC; ③ MDRout,IRin; ④ PCout,Yin,1→C0,"+",Zin(PC+1运算); ⑤ Zout,PCin; - 注意:
- 取指周期是所有指令公用的,微程序控制器通常把这段微程序放在CM的起始位置。
- 必须用微命令的规范写法(如
PCout,MARin,没有下划线),不能用箭头符号(PC -> MAR)或中文描述。 Wait for MFC表示等待主存功能完成(Memory Function Complete)信号。
分析阶段
- 指令译码、计算有效地址(取数)。
执行阶段
- 完成具体运算。
2. 微操作序列编写(核心考点)
老师反复强调:
ADD @R0, R1这个例子(寄存器间接寻址)。
考点形式
- 给你一个单总线或多总线的CPU结构图,让你写出某条指令(如加法、跳转)在每个时钟周期内的微操作(Micro-operations)。
关键点
- 要分清哪个寄存器输出(Out),哪个寄存器输入(In),以及ALU的控制信号。
- 必须用微命令的规范写法(如
PCout,MARin,没有下划线),不能只用中文描述"把PC的值送给MAR",否则可能没分。 - 注意:
PC+1的操作可能是在取指时通过ALU完成的(如PCout,ALUin,0→Y,1→C0,"+",Zin)。
⚠️ 微命令格式规范(按PPT要求)
根据PPT,微命令的正确格式为:
- 微命令名称:没有下划线,如
PCout(不是PC_out),MARin(不是MAR_in) - 多个微命令:用逗号分隔,写在同一行,如
PCout,MARin,Read; - ALU控制信号:用引号,如
"+","-","AND"等 - 数据值传送:用箭头表示,如
0→Y(向Y寄存器送0),1→C0(向C0送1) - 等待信号:
Wait for MFC(等待主存功能完成) - 结束标记:
END表示微程序结束 - 编号:用①②③等编号,或用T1、T2等表示时钟周期
错误写法示例(会被扣分):
- ❌
PC -> MAR(箭头符号) - ❌
PC_out, MAR_in(有下划线) - ❌ "把PC的值送给MAR"(中文描述)
- ❌
PC + 1 -> PC(箭头符号)
正确写法示例(按PPT格式):
- ✅
PCout,MARin,Read; - ✅
PCout,ALUin,0→Y,1→C0,"+",Zin; - ✅
Zout,PCin;
⭐ 完整示例:ADD @R0, R1 的微操作序列(按PPT规范写法)
指令功能:
单总线CPU结构下的微操作序列(按PPT格式):
取指阶段(公共操作):
① PCout,MARin,Read;
② Wait for MFC;
③ MDRout,IRin;
④ PCout,ALUin,0→Y,1→C0,"+",Zin;
⑤ Zout,PCin;分析取数阶段(获取被加数):
⑥ R0out,MARin,Read;
⑦ R1out,Yin,Wait for MFC;
⑧ MDRout,ALUin,"+",Zin;执行阶段(加法运算并写回):
⑨ Zout,MDRin;
⑩ R0out,MARin,Write;
⑪ Wait for MFC;
⑫ END⚠️ 重要提示:
- 以上写法是PPT中的规范微命令格式,每个微命令都是控制信号(如
PCout表示PC寄存器输出使能,没有下划线)。 - 多个微命令用逗号分隔,写在同一行。
- ALU控制信号用引号,如
"+"。 Wait for MFC表示等待主存功能完成信号。- 数据值用箭头表示,如
0→Y,1→C0(表示向Y送0,向C0送1)。 - 不能用箭头符号(
PC -> MAR)或中文描述("把PC的值送给MAR")。
数据通路图的复习策略
第一类:必须要看懂,甚至要能默画简图的(重中之重)
- 对应内容:数据通路图(Slide 4, 5, 6)
- 为什么不能跳过? 这是"写出指令的微操作序列"大题的基础。
- 你不需要:把图里的每一根连线都背下来(考试通常会给出图)。
- 你需要:看着这张图,能用笔画出数据是怎么流动的。
- 例子:如果题目让你写
ADD R0, R1,你必须看着那个"乱七八糟"的图,脑子里有这样的路径(用规范微命令表示,按PPT格式):或者更详细的单总线结构写法:① R0out,Yin; ② R1out,ALUin,"+",Zin; ③ Zout,R0in;① R0out,Yin(暂存第一个操作数); ② R1out,ALUin,Yout(ALU的A输入端),"+",Zin; ③ Zout,R0in(结果写回R0); - 结论:这个结构图不能跳过,但不要死记硬背,要当成地图来看,学会"看图说话"。
📌 四、微程序控制器原理(核心理论)
这是现代计算机控制器设计的主流方式,也是概念题的高频区。
1. 基本概念与对应关系(重要)
⭐ 核心概念层级
- 微命令 (Micro-command) = 微操作 (Micro-operation):
- 控制硬件动作的最小单位(如打开某个门的信号)。
- 微指令 (Micro-instruction):
- 一组同时发生的微命令的集合(对应一个时钟周期)。
- 微程序 (Micro-program):
- 一系列微指令的有序集合。
- 核心结论:一条机器指令 = 一段微程序。
2. 控制存储器 (CM)
- 定义:存放微程序的地方,位于CPU内部(不是主存),通常是ROM。
3. 微指令的编码方式(操作控制字段)
直接控制法
- 特点:一位对应一个微命令。
- 优点:简单。
- 缺点:字长太长。
⭐ 字段编码法(重点)
- 原理:将微指令分为若干小段。
- 关键规则:
- 互斥的微命令放在同一段(通过译码器选择)。
- 兼容(可并行)的微命令放在不同段。
- ⚠️ 考点陷阱:
- 在计算某一段需要多少位时,必须留出一个状态(通常是000)表示"不发出任何命令"。
- 例子:如果有7个互斥的微命令,你不能只用3位(
,覆盖7个看似够了),但因为其中一个是"空操作",所以如果题目问的是"最多能表示多少个微命令",你要反应过来是 。 - 录音原话:"比如三位,它最多能表示7个不同的微命令……那个000表示不发出。"
4. 微地址的形成
入口地址
- 由机器指令的操作码 (OP) 通过"微地址形成部件"产生(如一级功能转换,操作码拼接)。
后继地址
- 通常由计数器(uPC+1)或根据状态测试(断定方式)产生。
5. 微程序控制器的基本组成(必须掌握框图)
第三类:核心部件的"黑盒子"结构(必须掌握框图)
- 对应内容:微程序控制器的基本组成(Slide 10)
- 图示:Slide 10 右上角那个框图(CM, μIR, μMAR, 微地址形成部件)。
- 为什么重要?
- 这是微程序控制的核心。
- 考试可能会考填空题或简答题,问你"微指令取出来放在哪里?(μIR)","下条微指令地址谁产生?(微地址形成部件)"。
- 结论:这个结构图不乱,逻辑很清晰,必须要背下来这个框图的组成部分和连接关系。
📌 五、流水线技术 (Pipelining)(计算题重点)
这部分主要考察性能指标的计算。
1. 基本概念
- 定义:将指令执行分解为多个子过程(如取指、译码、执行、访存、写回),让多个部件并行工作。
- 时空图:要会画指令流水线的时空图。
2. 三大性能指标计算(背公式)
老师强调:教材上这部分讲得不好,性能指标(吞吐率、加速比、效率)的计算直接看PPT上的公式,不用管书上复杂的推导。
⭐ 吞吐率 (TP)
- 定义:单位时间内完成的指令数。
- 公式:
其中: :指令条数 :流水线段数 :时钟周期(通常取瓶颈段时间)
- 理想情况:当
时,
⭐ 加速比 (S)
- 定义:不使用流水线时间 / 使用流水线时间。
- 公式:
- 理想情况:当
且各段时间相等时, (段数)
⭐ 效率 (E)
- 定义:时空图中有效面积 / 总面积。
- 公式:
(当各段时间相等时) - 理想情况:当
时, (100%)
3. 流水线冲突(冒险)
结构相关(资源冲突)
- 定义:多条指令争用同一硬件(如同时访问内存)。
- 解决:增加硬件资源(如分离的指令Cache和数据Cache)。
数据相关
- 定义:后一条指令需要前一条指令的结果。
- 类型:
- RAW(写后读):最常见
- WAR(读后写):乱序执行中可能出现
- WAW(写后写):乱序执行中可能出现
- 解决:
- 旁路技术 (Forwarding/Bypassing):最常用
- 暂停 (Stall)
控制相关
- 定义:遇到跳转/分支指令,导致流水线断流。
- 解决:
- 分支预测(静态/动态)
- 延迟槽
- 多路预测
4. 流水线部分的"瓶颈"
老师未明说的"潜台词":
课件中提到"瓶颈段",老师的意思是:木桶效应。流水线的时钟周期取决于最慢的那一段。做计算题时,一定要找那个时间最长的段作为标准周期
。
📌 六、其他结构图的复习策略
第二类:只需要懂原理,不需要背电路细节的(可以略看)
对应内容:硬布线控制器、PLA、有限状态机(Slide 6下半部分, Slide 7, 8)
- Slide 6 (组合逻辑型/硬布线):那些复杂的门电路(与门、或门堆叠)。
- 处理方式:跳过细节。你只需要知道它的特点(速度快,但设计复杂、难以修改,是"硬"的)即可。考试极少让你画一个硬布线控制器的门电路图。
- Slide 8 (多周期状态机):那个看起来像迷宫一样的状态转移图。
- 处理方式:理解逻辑。你不需要背诵这个图的每一个圆圈和箭头。你需要理解的是:为什么单周期CPU效率低?因为有的指令长有的短。多周期就是把指令切成小块(取指、译码、执行...)。
- 结论:这些"乱七八糟"的内部实现细节,只要记住优缺点和基本概念(硬布线 vs 微程序)即可。
第四类:流水线相关的复杂图(Slide 14, 15)
对应内容:解决冲突的硬件图(旁路技术/Forwarding Unit 等)
- Slide 15:那些为了解决数据相关(RAW)而增加的旁路连线。
- 处理方式:懂原理即可。
- 考试通常考的是计算(吞吐率、加速比)或者画时空图(Slide 12, 13)。
- 对于Slide 15这种复杂的硬件连线图,主要是为了解释"怎么解决冲突"。你只需要知道:遇到数据冲突了,硬件可以通过"旁路(Bypass/Forwarding)"把数据提前送过去,而不需要你画出具体的旁路电路图。
📌 七、老师特别强调的"坑"与提示
1. 最核心的"必考"实例:ADD @R0, R1
老师明确提到:"这段内容咱们教科书上是没有的……但是这才是真正落地的东西。"
- 口头重点:老师花了大篇幅讲解一条具体的加法指令(
ADD @R0, R1,即寄存器间接寻址加寄存器直接寻址)是如何拆解成微操作的。 - 具体要求:
- 不要只看书上那些宏观的描述(太虚)。
- 必须结合单总线CPU结构图(PPT上的图),能够写出每一步的微操作信号(如
PC_out,MAR_in,Read等)。 - 取指阶段是公共操作:前3-4步(取指令、PC+1)对所有指令都是一样的,这部分必须背下来。
- 颠覆性细节:老师特意强调,微观上
PC+1可能不是简单的PC+1,而是通过ALU运算实现的,必须用规范微命令写法(按PPT格式):这一点和书上的宏观描述不同,考试要按微观的写。PCout,ALUin,0→Y,1→C0,"+",Zin;Zout,PCin
2. 只有口头强调的"避坑"点:微指令编码(字段编码法)
在讲微指令的字段编码法时,老师说:"第四点大家一定要牢记"。
- 考点陷阱:在计算某一段需要多少位时,必须留出一个状态(通常是000)表示"不发出任何命令"。
- 例子:如果有7个互斥的微命令,你不能只用3位(
,覆盖7个看似够了),但因为其中一个是"空操作",所以如果题目问的是"最多能表示多少个微命令",你要反应过来是 。 - 录音原话:"比如三位,它最多能表示7个不同的微命令……那个000表示不发出。"
3. 关于教材的"吐槽"与复习方向
老师在录音开头和中间多次提到教材的问题,这对复习很重要:
- 教材与PPT:老师直言原版教材讲得不简练,建议大家看他发的清华版PPT。
- 流水线部分:老师说教材上这部分讲得不好,性能指标(吞吐率、加速比、效率)的计算直接看PPT上的公式,不用管书上复杂的推导。
- 录音原话:"直接告诉我公式,我能算出来就OK了……要么别写,要写就写全了。" —— 暗示考试注重计算结果,而非证明过程。
4. 关于考试形式的"透题"
- 大题方向:根据录音推测,第七章出**大题(10分以上)**的概率极高。
- 题型1:给出一个CPU结构图,让你写出某条指令(如加法、跳转)的微操作序列(参考
ADD的例子)。 - 题型2:流水线的计算(吞吐率、加速比),虽然可能出在填空/简答,但也属于计算类。
- 题型1:给出一个CPU结构图,让你写出某条指令(如加法、跳转)的微操作序列(参考
- 评分标准:老师提到第四章作业有人用"小学生竖式"算二进制乘法被扣分,这在第七章同理——必须用微命令(PC_out, MAR_in)的规范写法,不能只用中文描述"把PC的值送给MAR",否则可能没分。
📌 八、总结复习策略
1. 背概念(死记硬背)
- 五大专用寄存器:PC、IR、MAR、MDR、PSW的功能
- 三种周期:指令周期、机器周期、时钟周期的层级关系
- 微命令/微指令/微程序/机器指令的关系:一条机器指令 = 一段微程序
- 流水线三大性能指标公式:TP、S、E
2. 练大题(重点练习)
- 微操作序列编写:
- 找一道"数据通路"的题,练习写出取指和执行(如加法、取数)的微操作流程。
- 必须结合具体的控制信号(如
PCout,MARin,没有下划线)来写,这才是真正落实到硬件的设计。
- 流水线计算:
- 找一道"流水线"的题,练习计算TP、S、E。
- 特别注意瓶颈段的识别。
3. 懂原理(理解即可)
- 微指令的字段编码法:互斥在同段,兼容在异段。
- 数据通路的数据流向:对着图能画出数据流动路径。
- 流水线的三大冒险:结构相关、数据相关、控制相关及其解决方案。
4. 复习优先级
- 最高优先级:微操作序列的编写(对着单总线图写代码)。老师说是"最精华"、"最后一道关",且书上没有详细例子,全靠课上讲。
- 次高优先级:字段编码法的计算(记得扣除000状态)。
- 基础优先级:五大专用寄存器的功能、流水线三个指标的公式计算。
📌 九、考试重点题型预测
填空题
- 五大专用寄存器的功能
- 三种周期的定义
- 微程序控制器的组成(CM、μIR、μMAR等)
- 流水线冲突类型(结构相关、数据相关、控制相关)
简答题
- 比较硬布线控制器和微程序控制器的优缺点
- 流水线技术为什么能提高性能?
- 微指令编码方式的比较
计算题
- 字段编码法的位数计算:互斥信号分在同一段,兼容信号分在不同段,注意扣除000状态。
- 流水线的TP、S、E计算:特别注意有建立时间或排空时间的情况,以及瓶颈段的识别。
大题(10分以上)
- 微操作序列编写:
- 给出CPU结构图,写出某条指令(如
ADD @R0, R1)的微操作序列。 - 必须用规范写法(
PCout,MARin等,没有下划线,多个微命令用逗号分隔),不能用中文描述。
- 给出CPU结构图,写出某条指令(如
- 流水线时空图:
- 画出指令流水线的时空图。
- 计算吞吐率、加速比、效率。
💡 最后提醒
学会"抓大放小",区分哪些是需要"死记硬背"的,哪些是只需要"看懂逻辑"的。
- 必须死记硬背:五大寄存器、三种周期、微命令/微指令/微程序关系、流水线公式。
- 必须理解掌握:数据通路的数据流向、微操作序列的编写、字段编码法。
- 只需懂原理:硬布线控制器的电路细节、状态机的详细转移图、流水线内部连线图。
祝考试顺利! 🎯