跳转至

计算机体系结构概述

什么是计算机体系结构

计算机体系结构研究的是计算机系统的组织方式——CPU 怎么执行指令、内存怎么存取数据、各个部件怎么协同工作。它回答的核心问题是:计算机是怎么运行你写的程序的?

为什么要学计算机体系结构

知道程序为什么快或者慢。 同样的算法,用数组实现比链表快得多——原因是缓存局部性。不理解体系结构,你只能靠经验猜;理解了,你就能做出有依据的优化决策。

理解"抽象泄漏"。 编程语言提供了很多抽象,但这些抽象不总是可靠的。整数溢出、浮点精度、并发竞争——这些问题的根源都在硬件层面。

为嵌入式和系统编程打基础。 如果你将来做嵌入式开发、驱动程序、编译器、性能优化,体系结构是绕不开的必修课。

面试和考研的重点。 指令流水线、Cache 原理、总线仲裁——这些是 408 考研的核心考点。

核心知识模块

数据表示

  • 二进制、十六进制
  • 整数表示:原码、反码、补码
  • 浮点数表示:IEEE 754 标准
  • 字符编码:ASCII、UTF-8

指令系统

  • 指令集架构(ISA):CISC vs RISC
  • 常见指令类型:算术、逻辑、控制流、访存
  • 汇编语言基础:x86 或 RISC-V

CPU 设计

  • 数据通路(Datapath):ALU、寄存器、总线
  • 控制单元:怎么从指令到控制信号
  • 指令流水线:取指、译码、执行、访存、写回
  • 流水线冒险:数据冒险、控制冒险、结构冒险

存储层次

  • 缓存(Cache):L1/L2/L3 缓存的工作原理、映射方式、替换策略
  • 主存(DRAM):内存组织、带宽、延迟
  • 虚拟内存:地址转换、TLB、页面置换
  • 存储局部性:时间局部性和空间局部性

总线与 I/O

  • 总线类型:数据总线、地址总线、控制总线
  • I/O 方式:程序查询、中断、DMA

并行处理

  • 指令级并行(ILP):超标量、乱序执行
  • 数据级并行:SIMD、GPU
  • 线程级并行:多核处理器、共享内存

怎么学

从 C 语言和汇编入手。 写一些简单的 C 程序,用 gcc -S 看生成的汇编代码,建立从高级语言到硬件的直觉。

做模拟实验。 用 Ripes 或 Venus 模拟 RISC-V 处理器的运行过程,观察每一步的数据流动。

画数据通路图。 CPU 的数据通路是体系结构的核心。画出指令执行过程中数据在各个部件之间的流动。

本模块资源

资源 类型 说明
Berkeley CS61C 课程 Berkeley 体系结构课程,RISC-V 实验
Nand2Tetris 课程 从与非门到操作系统的完整实践
CS:APP 教材 深入理解计算机系统,实践性极强
计算机体系结构:量化研究 教材 体系结构经典教材