Skip to content

计算机系统层次结构

考情分析

本章是组成原理的总纲,选择题常考冯·诺依曼机的特点、各类翻译程序的区别、ISA 的概念。2019 年考了冯·诺依曼机特点,2022 年考了源程序到可执行文件的四阶段,2024 年考了编程语言的分类。

冯·诺依曼体系结构

冯·诺依曼在研究 EDVAC 机时提出"存储程序"思想,奠定了现代计算机的基本结构。

冯·诺依曼机的核心特点:

  1. 存储程序工作方式:程序和数据预先存入主存,计算机启动后自动逐条取指并执行,无须人工干预
  2. 硬件由运算器、控制器、存储器、输入设备、输出设备五大部件组成
  3. 指令和数据以相同形式(二进制)存放在存储器中,仅凭内容无法区分
  4. 指令由操作码(指明操作类型)和地址码(指出操作数地址)组成

计算机硬件的基本组成

现代计算机将运算器、控制器集成为 CPU(中央处理器)。完整硬件系统包括:

部件功能
CPU数据通路(ALU + 寄存器组)负责运算;控制单元负责取指译码、生成控制信号
存储器主存(DRAM)存放当前程序和数据;外存(磁盘/SSD)长期保存
I/O 设备输入设备(键盘、鼠标)和输出设备(显示器、打印机)
I/O 接口设备控制器,负责外设与主机之间的通信
总线CPU、主存、I/O 接口之间传输信息的公共通路

计算机软件

系统软件 vs 应用软件

类别定义举例
系统软件管理系统资源、提供基础服务的软件操作系统、编译器、DBMS
应用软件用户为解决特定问题开发的程序Office、浏览器、游戏

软硬件逻辑功能等价性

同一功能既可用硬件实现,也可用软件实现,从用户视角看逻辑功能等价。例如浮点运算既可由硬件浮点单元完成,也可由软件子程序模拟,但硬件实现效率远高于软件。

如何划分软硬件的功能边界,是计算机体系结构研究的核心问题之一。

计算机系统的层次结构

应用程序(最终用户)

高级语言(应用程序员)

操作系统(系统管理员)

ISA — 指令集体系结构(系统程序员)

微体系结构(微架构)

物理器件(晶体管、电路)

每一层向上提供简洁接口,向下依赖更底层的功能。下层的实现细节对上层用户透明

ISA(指令集体系结构)

ISA 是软硬件之间的关键接口,定义了软件可直接使用的硬件功能:

  • 指令格式、操作类型、寻址方式
  • 可访问的寄存器等硬件资源

ISA 定义"做什么",微体系结构(微架构)决定"怎么做"。相同的 ISA 可以有多种不同的微架构实现——如 Intel 的 Skylake 和 Alder Lake 都遵循 x86 ISA,但内部组织方式不同。

编程语言与翻译程序

三种编程语言

语言层次特点硬件能否直接执行
机器语言0/1 二进制编码,与硬件直接对应
汇编语言用助记符(mov, add)代替二进制指令不能,需汇编器翻译
高级语言C/Java 等,接近自然语言不能,需编译器/解释器翻译

三种翻译程序

翻译程序输入输出特点
汇编程序(汇编器)汇编语言机器语言一对一翻译
编译程序(编译器)高级语言汇编/机器语言一次性翻译全部,生成目标程序
解释程序(解释器)高级语言逐条翻译并立即执行,不生成目标程序

存储程序工作方式

程序执行前,将指令和数据预先加载到主存。启动后,CPU 按以下流程自动执行:

取指(PC提供地址)译码取操作数执行写回结果

PC(程序计数器)的更新规则:

  • 顺序指令:PCPC+指令长度
  • 跳转指令:PC目标地址

从源程序到可执行文件

以 C 语言为例,GCC 编译器经过四个阶段生成可执行文件:

hello.c → [预处理器cpp] → hello.i → [编译器cc1] → hello.s → [汇编器as] → hello.o → [链接器ld] → hello
阶段工具输入 → 输出功能
预处理cpp.c → .i处理 #include、#define 等预处理指令
编译cc1.i → .s翻译为汇编语言
汇编as.s → .o翻译为机器语言,生成可重定位目标文件
链接ld.o → 可执行文件解析外部符号引用,链接库函数,生成可执行文件

考点清单

  • 冯·诺依曼机五大特点:存储程序、五大部件、指令和数据同形式存放、二进制编码、指令 = 操作码 + 地址码
  • 硬件能直接执行的只有机器语言
  • 编译器一次翻译全部生成目标程序;解释器逐条翻译不生成目标程序
  • ISA 是软硬件接口;微架构是 ISA 的硬件实现方式
  • 源程序到可执行文件:预处理 → 编译 → 汇编 → 链接
  • 下层实现对上层用户"透明"

真题练习