CPU结构与功能
计算机科学· 第4单元:处理器基础,主题1· 25 分钟阅读
1. CPU主要组件及其功能★★☆☆☆⏱ 8 min
CPU(中央处理器)是计算机的核心处理组件,负责执行所有程序指令。它有三个核心组成部分:算术逻辑单元(ALU)、控制单元(CU)和板载寄存器。
算术逻辑单元(ALU)
CPU中负责执行指令执行所需的所有算术运算(加、减、乘)和逻辑运算(与、或、非、比较)的组件。
例:
对寄存器中存储的两个值相加,或判断一个数是否大于另一个数。
控制单元(CU)协调CPU内部的所有活动。它对取出的指令进行译码,并向其他组件发送控制信号以触发所需操作。寄存器是直接内建于CPU的小型高速存储单元,用于存储当前正在立即处理的数据和地址。
一名学生认为ALU负责对指令译码。找出该错误,并陈述CPU主要组件的正确作用。
- 1
步骤1:找出错误:指令译码不是ALU的功能,而是控制单元的功能。
- 2
步骤2:陈述每个核心组件的正确作用:
- 3
- ALU:对数据执行所有算术和逻辑运算
- 4
- 控制单元:对指令译码,协调CPU运行活动
- 5
- 寄存器:存储立即处理的临时数据、地址和指令
Exam tip:
在带示意图的题目中,一定要将每个组件与其正确功能对应,才能拿满分。
2. CPU专用寄存器★★★☆☆⏱ 7 min
寄存器是计算机系统中速度最快的存储器,远快于缓存或RAM。大多数寄存器在指令执行过程中具有专属特定作用,CIE 9618要求你熟记最常见专用寄存器的功能。
程序计数器(PC)
存放下一条要从主存取出的指令的内存地址的专用寄存器。每次取指后它会自动递增,指向序列中的下一条指令。
内存地址寄存器(MAR): 存放CPU想要读写的内存位置的地址。
内存数据寄存器(MDR): 存放刚从内存读出的数据,或等待写入内存的数据。
当前指令寄存器(CIR): 存放刚取出、等待译码的当前指令。
累加器(ACC): 存储ALU计算得到的中间结果。
解释CPU从主存读取数据时,MAR和MDR的作用差异。举一个例子说明。
- 1
步骤1:阐明MAR的作用:MAR仅存储CPU需要访问的内存位置的地址,从不存储实际数据。
- 2
步骤2:阐明MDR的作用:MAR将地址发送到主存后,该地址处的数据会返回并存储在MDR中,等待处理。
- 3
步骤3:举例:如果CPU需要读取存储在内存地址 $20A 处的指令,地址 $20A 会被加载到MAR中。存储在 $20A 处的指令从内存取出后存储在MDR中,准备译码。
3. 系统总线★★☆☆☆⏱ 5 min
总线是共享的通信通路,用于在CPU组件之间,以及CPU和主存之间传输数据和控制信号。共有三种主要类型的系统总线,每种都有专属功能和传输方向。
系统总线
连接CPU与主存和其他外设的三类主要总线的统称。
地址总线: 从CPU向主存传输内存地址。它是单向的(仅从CPU流向内存)。
数据总线: 在CPU和主存之间传输实际数据。它是双向的(数据可双向流动)。
控制总线: 从CU向其他组件传输控制信号(例如读/写信号)。它是双向的,允许状态信号返回CPU。
某条总线传输了一个表示CPU想要向特定内存地址写入数据的信号。这是哪种类型的总线?解释为什么不是另外两种总线。
- 1
步骤1:识别信号类型:这是一个表示CPU正在执行的操作类型的控制信号。
- 2
步骤2:匹配正确总线类型:该信号由控制总线传输。
- 3
步骤3:解释为什么不是另外两种总线:地址总线仅传输内存地址,不传输控制信号。数据总线仅传输实际传输的数据,因此二者都不传输操作类型信号。
4. 取指-译码-执行周期★★★☆☆⏱ 5 min
取指-译码-执行周期是CPU对每条程序指令执行的重复流程。从系统开机到关机,它持续运行,在基础的非流水线CPU中,每个完整周期处理一条指令。
取指-译码-执行周期
CPU从主存获取、译码并执行每条程序指令的顺序流程。
概述基础CPU中一个完整取指-译码-执行周期的全部步骤顺序。
- 1
取指步骤1:程序计数器(PC)中存储的地址被复制到内存地址寄存器(MAR)
- 2
取指步骤2:MAR中地址对应的指令从主存取出,存入内存数据寄存器(MDR)
- 3
取指步骤3:PC的值加1,指向待取出的下一条指令的地址
- 4
译码步骤1:MDR中的指令被复制到当前指令寄存器(CIR)
- 5
译码步骤2:控制单元对指令的操作码译码,确定需要执行的操作
- 6
执行步骤:控制单元向相关组件发送控制信号执行指令,所有结果存储在累加器或寄存器中
Exam tip:
当被要求描述该周期时,一定要提到每个寄存器在每个步骤中的作用才能拿满分。
5. 常见陷阱
错误做法:
认为程序计数器存储当前指令,而非下一条指令的地址
原因:
常见的PC和当前指令寄存器功能混淆
正确做法:
PC = 下一条指令的地址;CIR = 存储当前正在译码的指令
错误做法:
认为地址总线是双向的,或数据总线是单向的
原因:
这是考试常考的总线方向性质混淆点
正确做法:
地址总线 = 单向(CPU → 内存);数据总线 = 双向(CPU ↔ 内存)
错误做法:
认为MDR存储内存地址
原因:
一直存在的MAR和MDR功能混淆
正确做法:
MAR存储内存地址;MDR存储从该地址取出的实际数据/指令
错误做法:
忘记提到取指步骤后递增PC
原因:
考生经常在考试答案中漏掉这个步骤,丢失容易拿的分数
正确做法:
一定要明确说明取指后PC会递增,以指向下一条指令
错误做法:
认为ALU对指令译码
原因:
常见的ALU和控制单元功能混淆
正确做法:
控制单元对指令译码;ALU执行算术和逻辑运算
6. 速查表
组件 | 核心功能 |
|---|---|
ALU | 执行算术和逻辑运算 |
控制单元 | 对指令译码,协调CPU活动 |
PC | 存储待取出的下一条指令的地址 |
MAR | 存储待访问内存位置的地址 |
MDR | 存储从内存读出/要写入内存的数据/指令 |
CIR | 存储当前正在译码的指令 |
ACC | 存储计算中间结果 |
地址总线 | 传输内存地址,单向 |
数据总线 | 传输实际数据,双向 |
控制总线 | 传输控制信号,双向 |
真题中的出现
AI 根据考纲规律估算的考点位置,请对照官方真题核实准确性。仅作复习重点参考。
- 2022 · 12
描述CPU核心组件
- 2023 · 11
解释取指-译码-执行周期
- 2024 · 12
比较系统总线类型
深入阅读
下一步
理解CPU结构与功能是所有处理器基础主题的核心知识,几乎每次都会在CIE 9618的试卷1中考查,通常是一道4-6分的简答题。掌握这里讲解的寄存器功能和取指-译码-执行顺序,是理解更高级的性能优化主题的基础,这些主题都建立在本内容之上。接下来你将学习CISC和RISC CPU设计的区别、缓存如何提高CPU访问速度,以及流水线和并行处理如何提高指令吞吐量。
