Appearance
408 > ### 计算机组成原理 > #### CO-05-01 CPU的功能与基本结构
一、定位信息
| 项目 | 内容 |
|---|---|
| 所属章节 | 第5章 中央处理器 |
| 知识单元编号 | CO-05-01 |
| 主题 | CPU的功能与基本结构 |
| 考纲要求 | 掌握CPU的功能、组成及工作原理 |
| 历年考查频率 | 高频(选择题为主,偶尔综合题) |
| 预计分值 | 2-4分(选择)/ 8-12分(综合) |
二、知识点讲解
1. CPU的基本功能
CPU(中央处理器)是计算机的核心部件,其本质功能可概括为指令控制、操作控制、时间控制、数据加工四大方面。
指令控制:程序的执行本质上是按照程序中指令的排列顺序依次执行。CPU负责控制程序的执行流程,确保指令按正确顺序被取出和执行。在遇到转移指令时,CPU需要修改程序计数器PC的值以实现程序跳转。
操作控制:一条指令的执行往往需要多个操作信号的配合。CPU需要产生各种操作控制信号,并将这些信号送往相应的部件,使各部件按指令要求协同工作。例如,一条加法指令需要控制取指、译码、取操作数、运算、写回等多个步骤。
时间控制:CPU需要对各种操作实施严格的时间控制。何时取指令、何时读写数据、何时进行运算,都必须有精确的时间安排。这由时序系统来保证,时钟信号是整个系统同步的基础。
数据加工:CPU的核心功能是对数据进行算术运算和逻辑运算。运算器(ALU)是执行这些运算的部件,能够完成加减乘除、与或非异或、移位等操作。
2. CPU的基本组成
现代CPU主要由运算器和控制器两大部分组成。
运算器包括:
- 算术逻辑单元ALU:执行算术和逻辑运算
- 累加器ACC:暂存运算结果或操作数
- 通用寄存器组(R0-Rn):存放操作数和中间结果
- 状态/标志寄存器PSW:记录运算状态(溢出、进位、零、符号等)
- 数据缓冲寄存器DR:暂存从内存读出或要写入内存的数据
控制器包括:
- 程序计数器PC:存放下一条要执行的指令地址,具有自动+1功能
- 指令寄存器IR:存放当前正在执行的指令
- 指令译码器ID:对指令的操作码进行译码,产生控制信号
- 时序发生器:产生时序信号,控制各操作的时序
- 操作控制信号形成部件:综合译码结果和时序信号,产生微操作控制信号
3. CPU的工作过程
CPU的基本工作流程可以概括为取指→译码→执行→访存→写回的循环:
- 取指阶段:PC将指令地址送往MAR(存储器地址寄存器),通过地址总线访问内存,取出指令经MDR(存储器数据寄存器)送入IR。同时PC自动+1(或更新为下条指令地址)。
- 译码阶段:IR中的操作码送入指令译码器进行译码,确定需要执行的操作类型及操作数来源。
- 执行阶段:根据译码结果,控制器产生相应的控制信号,指挥运算器和其他部件完成指令规定的操作。
- 访存阶段(如有需要):若指令需要访问内存操作数,则在此阶段完成。
- 写回阶段:将运算结果写回目标寄存器或内存。
4. 用户可见寄存器与不可见寄存器
| 类别 | 寄存器 | 说明 |
|---|---|---|
| 用户可见 | 通用寄存器(R0-Rn) | 可被程序员直接使用 |
| 用户可见 | 程序计数器PC | 指向下条指令地址 |
| 用户可见 | 累加器ACC | 部分架构中可见 |
| 用户可见 | 状态标志寄存器PSW | 记录条件码 |
| 用户不可见 | 指令寄存器IR | 存放当前指令,用户无法直接访问 |
| 用户不可见 | 存储器地址寄存器MAR | 存放访存地址 |
| 用户不可见 | 存储器数据寄存器MDR | 存放访存数据 |
| 用户不可见 | 指令译码器ID | 硬件逻辑,不直接可见 |
三、记忆辅助
"指操时加"口诀:CPU四大功能——指令控制、操作控制、时间控制、数据加工。谐音"指操时加"(指着操场上加数)。
"PC指路IR记,DR传数据译码器解":PC指向下条指令地址(指路),IR记住当前指令(记录),DR传递数据,译码器解读指令含义。
"运控两兄弟":CPU = 运算器(干活的)+ 控制器(指挥的)。运算器核心是ALU,控制器核心是CU(控制单元)。
寄存器分层记忆法:用户可见的寄存器(PC、通用寄存器、PSW)是"对外接口";用户不可见的寄存器(IR、MAR、MDR)是"内部零件"。
四、例题精解
例题1
题目:下列关于CPU的叙述中,正确的是( )。 A. 程序计数器PC对程序员是透明的 B. 指令寄存器IR对程序员是可见的 C. CPU中PC和IR都属于控制器 D. CPU中的通用寄存器属于控制器
四步解题:
第一步:审题——本题考查CPU中寄存器的归属和可见性。
第二步:分析各选项:
- A选项:PC(程序计数器)是用户可见寄存器,程序员可以通过转移指令修改PC值,所以PC对程序员不是透明的。A错误。
- B选项:IR(指令寄存器)存放当前正在执行的指令,属于CPU内部寄存器,对程序员不可见。B错误。
- C选项:PC存放下条指令地址,IR存放当前指令,两者都是控制器的组成部分。C正确。
- D选项:通用寄存器属于运算器部分,不属于控制器。D错误。
第三步:验证——PC和IR确实都归控制器管辖,这是CPU组织结构的基本知识点。
第四步:答案——选 C。
例题2
题目:CPU中不包括( )。 A. 存储器地址寄存器MAR B. 算术逻辑单元ALU C. 程序计数器PC D. 存储器数据寄存器MDR
四步解题:
第一步:审题——本题考查CPU的组成部件,需要注意CPU与主机的边界。
第二步:分析各选项:
- MAR(存储器地址寄存器):在某些教材体系中,MAR属于CPU与主存的接口部件,归入CPU范围内;但在另一些体系中,MAR和MDR被认为属于主存或总线系统。在408标准下,通常认为MAR和MDR在逻辑上属于CPU(位于CPU与主存之间)。
- ALU是运算器核心,属于CPU。PC是控制器核心部件,属于CPU。
- 按照唐朔飞教材体系,CPU包括运算器和控制器,MAR和MDR属于CPU。
第三步:验证——此题的关键在于区分不同教材对MAR/MDR归属的定义。在408考试中,通常采用"CPU包含MAR和MDR"的观点,因此四个选项都是CPU的组成部分。
第四步:答案——此题在不同教材下答案可能不同。按408主流观点,如果题目要求选"不包括",则需要关注题目具体的教材依据。若按唐朔飞版,四者均属于CPU,此题可能需要结合具体选项设置判断。通常此类题目的标准答案是考察MAR/MDR是否属于CPU这一边界问题。
例题3
题目:在CPU中,跟踪指令后继地址的寄存器是( )。 A. 主存地址寄存器MAR B. 程序计数器PC C. 指令寄存器IR D. 状态标志寄存器PSW
四步解题:
第一步:审题——关键词"跟踪指令后继地址",即存放下一条指令的地址。
第二步:分析——PC(Program Counter)的功能就是存放下一条要执行的指令的地址。每次取指后PC自动递增(或被转移指令修改),始终"跟踪"着指令的后继地址。
第三步:验证——MAR存放的是当前访存的地址,IR存放的是当前正在执行的指令内容,PSW存放的是程序状态字,均不符合题意。
第四步:答案——选 B。
五、考情分析
| 维度 | 说明 |
|---|---|
| 考查题型 | 以选择题为主,偶尔出现在综合题的子问题中 |
| 考查重点 | CPU的功能分类、寄存器的归属与可见性、CPU的工作流程 |
| 命题趋势 | 近年倾向于将CPU基本结构与流水线、数据通路结合出题 |
| 分值预估 | 选择题2分,综合题中作为基础子问题3-5分 |
| 复习建议 | 需要熟练掌握CPU各部件的功能和归属,特别注意用户可见/不可见的区分 |
六、易错点
PC的透明性误区:PC(程序计数器)对程序员是可见的(非透明的),因为程序员可以通过转移指令(如JMP、BEQ等)修改PC值。而IR(指令寄存器)对程序员是不可见的(透明的)。很多考生会将两者混淆。
MAR/MDR归属问题:不同教材对MAR和MDR的归属存在分歧。在408考试中,需要明确以指定教材(唐朔飞版)为准,通常认为MAR和MDR属于CPU。但也有观点认为它们属于主存接口,做题时需要看具体题目语境。
通用寄存器属于运算器而非控制器:通用寄存器组(如R0-R7)属于运算器部分,而PC、IR、译码器属于控制器部分。很多考生会把所有寄存器都归入控制器,这是错误的。
CPU ≠ 运算器:CPU包含运算器和控制器两部分,不能将CPU等同于运算器。ALU只是CPU中运算器的核心部件。
PSW属于运算器:状态标志寄存器PSW(程序状态字)记录的是运算结果的状态(溢出、进位、零标志等),通常归入运算器部分,但有些教材将其视为运算器与控制器的共享部件。408考试中需要注意教材的具体定义。
七、来源标注
| 来源 | 说明 |
|---|---|
| 主要教材 | 唐朔飞《计算机组成原理》第3版,第5章 |
| 辅助教材 | 袁春风《计算机组成与系统结构》第3版 |
| 考纲依据 | 全国硕士研究生招生考试计算机学科专业基础综合考试大纲(408) |
| 补充参考 | Patterson & Hennessy《计算机组成与设计》(RISC-V/ARM版) |