# 计算机体系结构

> 计算机科学 · CIE A-Level 9618
> 来源: https://www.owlsprep.com/zh/study/cie-9618-u3-computer-architecture/

本模块涵盖CPU核心组件、关键寄存器功能，以及两种主要计算机体系结构模型，全部是CIE A-Level计算机科学试卷1的必考核心内容。

**先修:** [对计算机硬件组件有基本了解](https://www.owlsprep.com/zh/study/cie-9618-u3-introduction-to-hardware/)

## 学习目标

- 描述CPU核心组件及其功能
- 解释关键CPU寄存器的功能
- 比较冯·诺依曼和哈佛计算机体系结构
- 识别冯·诺依曼瓶颈的成因和影响

## CPU核心组件

**中央处理器（CPU）** — 计算机的核心组件，通过执行算术、逻辑和输入输出操作来运行程序指令

*例:* 四核英特尔i5 CPU包含四个独立处理单元

CPU由三个相互连接的核心组件构成，每个组件在指令处理中都有不同的作用：

- - **算术逻辑单元（ALU）**：对数据执行所有算术（加法、减法）和逻辑（与、或、非）运算
- - **控制单元（CU）**：协调CPU活动，从内存中取出指令、对其译码，并控制组件之间的数据流
- - **寄存器**：CPU上的超高速存储单元，用于临时存储即将使用的数据和指令

**例题:** 分别说出CPU中ALU和控制单元的一个作用

1. 首先，将每个组件与其核心功能对应：
2. ALU负责计算和逻辑比较。一个有效的作用是：*计算两个用户输入数字的和时执行加法运算*
3. 控制单元协调所有CPU活动。一个有效的作用是：*协调从主存中取出下一条程序指令的过程*

> **考试提示:** 在CIE考试中，当被问到组件的作用时，一定要给出具体明确的例子才能拿满分

## 关键CPU寄存器及其功能

CIE考试经常要求考生说出并解释取指-译码-执行周期中使用的5种核心专用CPU寄存器的功能。

| 寄存器名称 | 缩写 | 核心功能 |
| --- | --- | --- |
| 程序计数器 | PC | 存储下一条待取指令的内存地址 |
| 内存地址寄存器 | MAR | 存储待访问内存单元的地址 |
| 内存数据寄存器 | MDR | 存储从内存取出或待写入内存的数据 |
| 当前指令寄存器 | CIR | 存储当前正在译码/执行的指令 |
| 累加器 | ACC | 存储ALU运算的中间结果 |

**例题:** CPU即将从内存地址0x2A读取数据。哪个寄存器保存地址0x2A，读取完成后MDR的作用是什么？

1. 首先，将题目要求对应到各个寄存器的功能：
2. 待访问内存单元的地址存储在内存地址寄存器（MAR）中。因此地址0x2A保存在MAR中。
3. 读取完成后，从内存地址0x2A取出的数据会被传输到MDR，MDR会在CPU处理该数据前临时存储它。

## 冯·诺依曼体系结构

**冯·诺依曼体系结构** — 一种计算机体系结构设计，其中程序指令和数据都存储在同一个共享主存中，并且使用同一系统总线

*例:* 大多数通用个人计算机都使用冯·诺依曼体系结构

冯·诺依曼体系结构的核心定义特征是，指令和数据共享对内存和系统总线的访问权。这种设计对于通用计算来说简单灵活，但会产生一个叫做冯·诺依曼瓶颈的性能限制。

**例题:** 解释冯·诺依曼瓶颈为什么会产生

1. 回顾冯·诺依曼体系结构的核心结构：指令和数据共享同一主存和同一系统总线。
2. 在任意时刻，共享总线上只能进行一次传输（要么是一条指令，要么是一块数据）。
3. 现代CPU处理数据的速度远快于总线传输指令和数据的速度，因此总线会成为限制整体系统性能的瓶颈。

## 哈佛体系结构与比较

**哈佛体系结构** — 一种为程序指令和数据使用独立物理内存区域和独立总线的计算机体系结构设计

*例:* 微控制器和GPU通常使用哈佛体系结构

哈佛体系结构消除了冯·诺依曼瓶颈，因为指令和数据可以通过独立总线并行读取。它最常用于嵌入式系统和图形处理，这些场景优先追求稳定的高性能而非灵活性。

**例题:** 分别说出冯·诺依曼和哈佛体系结构的一个相同点、一个不同点和一个应用场景

1. 相同点：两种体系结构都使用包含ALU、控制单元和寄存器的CPU来处理指令和数据。
2. 核心不同点：冯·诺依曼对指令和数据使用单一共享内存和总线，而哈佛对两者使用独立内存和独立总线。
3. 冯·诺依曼应用场景：通用台式机和笔记本电脑，这些场景对可变程序大小和数据需求的灵活性至关重要。
4. 哈佛应用场景：家用电器中的嵌入式微控制器，这些场景指令集固定，需要快速可预测的执行。

> **考试提示:** CIE几乎每次考试都会出一道这两种体系结构的比较题，所以一定要记住它们的区别和常见应用场景

## 常见错误

- **错误做法:** 声称程序计数器（PC）存储当前正在执行的指令
  - 原因: 学生经常混淆PC和当前指令寄存器（CIR）
  - 正确做法: PC存储下一条待取指令的内存地址；CIR才存储实际当前正在执行的指令
- **错误做法:** 混淆MAR和MDR的功能
  - 原因: 相似的名称导致学生混淆哪个保存地址、哪个保存数据
  - 正确做法: MAR = 内存*地址*寄存器，保存内存单元的地址；MDR = 内存*数据*寄存器，保存来自这些单元的实际数据
- **错误做法:** 认为寄存器是主存的一种
  - 原因: 学生混淆存储器类型的层次结构
  - 正确做法: 寄存器直接位于CPU芯片上，是速度最快的存储器类型，不属于片外主RAM
- **错误做法:** 声称哈佛体系结构在所有应用场景中都优于冯·诺依曼体系结构
  - 原因: 学生只关注并行读取的性能优势，忽略了灵活性的权衡
  - 正确做法: 哈佛更适合固定功能的嵌入式系统，而冯·诺依曼更灵活，更适合通用计算

## 速查表

| 组件/寄存器 | 核心功能 | 冯·诺依曼 | 哈佛 |
| --- | --- | --- | --- |
| ALU | 算术/逻辑运算 | 指令和数据共享内存/总线 | 指令和数据使用独立内存/总线 |
| CU | 协调指令处理 | 存在冯·诺依曼瓶颈 | 无瓶颈，可并行读取指令和数据 |
| PC | 下一条待取指令的地址 | 用于通用个人计算机/笔记本电脑 | 用于嵌入式系统、GPU、微控制器 |
| MAR | 待访问内存单元的地址 |  |  |
| MDR | 内存数据的临时存储 |  |  |
| CIR | 存储当前正在处理的指令 |  |  |
| 累加器 | 存储ALU运算中间结果 |  |  |

## 下一步

计算机体系结构是理解CPU如何执行指令的基础知识，它是CIE A-Level所有后续硬件主题的基础。这个子主题在试卷1中一直是容易得分的简答题来源，因此掌握寄存器功能和体系结构比较是性价比很高的学习重点。接下来，你将在此基础上学习分步讲解的取指-译码-执行周期，该周期会用到我们在这里介绍的所有寄存器和体系结构特征，之后再学习内存层次结构和处理器性能。

- [输入输出设备](https://www.owlsprep.com/zh/study/cie-9618-u3-input-and-output-devices/)
- [辅助存储](https://www.owlsprep.com/zh/study/cie-9618-u3-secondary-storage/)
- [处理器基础](https://www.owlsprep.com/zh/study/cie-9618-u4-overview/)

---

来自 [OwlsPrep](https://www.owlsprep.com) —— A-Level / IB / AP / IGCSE 免费学习指南，依据官方考纲编写。原页面：https://www.owlsprep.com/zh/study/cie-9618-u3-computer-architecture/
