Skip to content

第七章 中央处理器(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格式)
    ① PCout,MARin,Read;
    ② Wait for MFC(等待主存响应);
    ③ MDRout,IRin;
    ④ PCout,ALUin,0→Y,1→C0,"+",Zin;
    ⑤ Zout,PCin;
    或者更详细的写法(PC+1通过ALU实现):
    ① 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,微命令的正确格式为:

  1. 微命令名称没有下划线,如 PCout(不是 PC_out),MARin(不是 MAR_in
  2. 多个微命令:用逗号分隔,写在同一行,如 PCout,MARin,Read;
  3. ALU控制信号:用引号,如 "+""-""AND"
  4. 数据值传送:用箭头表示,如 0→Y(向Y寄存器送0),1→C0(向C0送1)
  5. 等待信号Wait for MFC(等待主存功能完成)
  6. 结束标记END 表示微程序结束
  7. 编号:用①②③等编号,或用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规范写法)

指令功能M[(R0)]+(R1)M[(R0)](以R₀内容为地址,从主存取被加数,与R₁相加,结果存回)

单总线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→Y1→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位(23=8,覆盖7个看似够了),但因为其中一个是"空操作",所以如果题目问的是"最多能表示多少个微命令",你要反应过来是 2n1
    • 录音原话:"比如三位,它最多能表示7个不同的微命令……那个000表示不发出。"

4. 微地址的形成

入口地址

  • 由机器指令的操作码 (OP) 通过"微地址形成部件"产生(如一级功能转换,操作码拼接)。

后继地址

  • 通常由计数器(uPC+1)或根据状态测试(断定方式)产生。

5. 微程序控制器的基本组成(必须掌握框图)

第三类:核心部件的"黑盒子"结构(必须掌握框图)

  • 对应内容:微程序控制器的基本组成(Slide 10)
  • 图示:Slide 10 右上角那个框图(CM, μIR, μMAR, 微地址形成部件)。
  • 为什么重要?
    • 这是微程序控制的核心。
    • 考试可能会考填空题或简答题,问你"微指令取出来放在哪里?(μIR)","下条微指令地址谁产生?(微地址形成部件)"。
  • 结论:这个结构图不乱,逻辑很清晰,必须要背下来这个框图的组成部分和连接关系。

📌 五、流水线技术 (Pipelining)(计算题重点)

这部分主要考察性能指标的计算。

1. 基本概念

  • 定义:将指令执行分解为多个子过程(如取指、译码、执行、访存、写回),让多个部件并行工作。
  • 时空图:要会画指令流水线的时空图。

2. 三大性能指标计算(背公式)

老师强调:教材上这部分讲得不好,性能指标(吞吐率、加速比、效率)的计算直接看PPT上的公式,不用管书上复杂的推导。

⭐ 吞吐率 (TP)

  • 定义:单位时间内完成的指令数。
  • 公式TP=nmT+(n1)T其中:
    • n:指令条数
    • m:流水线段数
    • T:时钟周期(通常取瓶颈段时间)
  • 理想情况:当 n 时,TP=1T

⭐ 加速比 (S)

  • 定义:不使用流水线时间 / 使用流水线时间。
  • 公式S=nmT(m+n1)T=nmm+n1
  • 理想情况:当 n 且各段时间相等时,S=m(段数)

⭐ 效率 (E)

  • 定义:时空图中有效面积 / 总面积。
  • 公式E=nm+n1(当各段时间相等时)
  • 理想情况:当 n 时,E=1(100%)

3. 流水线冲突(冒险)

结构相关(资源冲突)

  • 定义:多条指令争用同一硬件(如同时访问内存)。
  • 解决:增加硬件资源(如分离的指令Cache和数据Cache)。

数据相关

  • 定义:后一条指令需要前一条指令的结果。
  • 类型
    • RAW(写后读):最常见
    • WAR(读后写):乱序执行中可能出现
    • WAW(写后写):乱序执行中可能出现
  • 解决
    • 旁路技术 (Forwarding/Bypassing):最常用
    • 暂停 (Stall)

控制相关

  • 定义:遇到跳转/分支指令,导致流水线断流。
  • 解决
    • 分支预测(静态/动态)
    • 延迟槽
    • 多路预测

4. 流水线部分的"瓶颈"

老师未明说的"潜台词"

课件中提到"瓶颈段",老师的意思是:木桶效应。流水线的时钟周期取决于最慢的那一段。做计算题时,一定要找那个时间最长的段作为标准周期 Δt


📌 六、其他结构图的复习策略

第二类:只需要懂原理,不需要背电路细节的(可以略看)

对应内容:硬布线控制器、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位(23=8,覆盖7个看似够了),但因为其中一个是"空操作",所以如果题目问的是"最多能表示多少个微命令",你要反应过来是 2n1
    • 录音原话:"比如三位,它最多能表示7个不同的微命令……那个000表示不发出。"

3. 关于教材的"吐槽"与复习方向

老师在录音开头和中间多次提到教材的问题,这对复习很重要:

  • 教材与PPT:老师直言原版教材讲得不简练,建议大家看他发的清华版PPT
  • 流水线部分:老师说教材上这部分讲得不好,性能指标(吞吐率、加速比、效率)的计算直接看PPT上的公式,不用管书上复杂的推导。
    • 录音原话:"直接告诉我公式,我能算出来就OK了……要么别写,要写就写全了。" —— 暗示考试注重计算结果,而非证明过程。

4. 关于考试形式的"透题"

  • 大题方向:根据录音推测,第七章出**大题(10分以上)**的概率极高。
    • 题型1:给出一个CPU结构图,让你写出某条指令(如加法、跳转)的微操作序列(参考 ADD 的例子)。
    • 题型2:流水线的计算(吞吐率、加速比),虽然可能出在填空/简答,但也属于计算类。
  • 评分标准:老师提到第四章作业有人用"小学生竖式"算二进制乘法被扣分,这在第七章同理——必须用微命令(PC_out, MAR_in)的规范写法,不能只用中文描述"把PC的值送给MAR",否则可能没分。

📌 八、总结复习策略

1. 背概念(死记硬背)

  • 五大专用寄存器:PC、IR、MAR、MDR、PSW的功能
  • 三种周期:指令周期、机器周期、时钟周期的层级关系
  • 微命令/微指令/微程序/机器指令的关系:一条机器指令 = 一段微程序
  • 流水线三大性能指标公式:TP、S、E

2. 练大题(重点练习)

  • 微操作序列编写
    • 找一道"数据通路"的题,练习写出取指和执行(如加法、取数)的微操作流程。
    • 必须结合具体的控制信号(如 PCout, MARin没有下划线)来写,这才是真正落实到硬件的设计。
  • 流水线计算
    • 找一道"流水线"的题,练习计算TP、S、E。
    • 特别注意瓶颈段的识别。

3. 懂原理(理解即可)

  • 微指令的字段编码法:互斥在同段,兼容在异段。
  • 数据通路的数据流向:对着图能画出数据流动路径。
  • 流水线的三大冒险:结构相关、数据相关、控制相关及其解决方案。

4. 复习优先级

  1. 最高优先级微操作序列的编写(对着单总线图写代码)。老师说是"最精华"、"最后一道关",且书上没有详细例子,全靠课上讲。
  2. 次高优先级字段编码法的计算(记得扣除000状态)。
  3. 基础优先级:五大专用寄存器的功能、流水线三个指标的公式计算。

📌 九、考试重点题型预测

填空题

  • 五大专用寄存器的功能
  • 三种周期的定义
  • 微程序控制器的组成(CM、μIR、μMAR等)
  • 流水线冲突类型(结构相关、数据相关、控制相关)

简答题

  • 比较硬布线控制器和微程序控制器的优缺点
  • 流水线技术为什么能提高性能?
  • 微指令编码方式的比较

计算题

  • 字段编码法的位数计算:互斥信号分在同一段,兼容信号分在不同段,注意扣除000状态。
  • 流水线的TP、S、E计算:特别注意有建立时间或排空时间的情况,以及瓶颈段的识别。

大题(10分以上)

  • 微操作序列编写
    • 给出CPU结构图,写出某条指令(如 ADD @R0, R1)的微操作序列。
    • 必须用规范写法(PCout, MARin等,没有下划线,多个微命令用逗号分隔),不能用中文描述。
  • 流水线时空图
    • 画出指令流水线的时空图。
    • 计算吞吐率、加速比、效率。

💡 最后提醒

学会"抓大放小",区分哪些是需要"死记硬背"的,哪些是只需要"看懂逻辑"的。

  • 必须死记硬背:五大寄存器、三种周期、微命令/微指令/微程序关系、流水线公式。
  • 必须理解掌握:数据通路的数据流向、微操作序列的编写、字段编码法。
  • 只需懂原理:硬布线控制器的电路细节、状态机的详细转移图、流水线内部连线图。

祝考试顺利! 🎯