L6·10^11 – 10^12

计算机组成

Computer Organization

核心抽象冯·诺依曼机

CPU + 内存 + IO = 一台完整的冯·诺依曼计算机。

学习进度:
What

计算机组成(Computer Organization)研究如何将 CPU、内存、IO 设备通过总线(Bus)连接成完整的冯·诺依曼系统。核心组件包括:CPU(执行指令)、主存(存储程序和数据)、IO 设备(键盘、显示器、磁盘等)、总线(数据总线、地址总线、控制总线)。指令周期包括取指(Fetch)、译码(Decode)、执行(Execute)、访存(Memory)、写回(Writeback)。中断(Interrupt)机制允许 IO 设备在需要服务时通知 CPU,避免 CPU 轮询等待。DMA(Direct Memory Access)允许 IO 设备直接与内存交换数据,不经过 CPU。

Why

CPU、内存、IO 设备单独存在时无法完成有用的计算。计算机组成将这些独立组件整合为协调工作的系统,实现存储程序(Stored Program)概念:程序和数据以相同方式存储在内存中,CPU 按顺序执行指令。中断机制使 CPU 能够响应外部事件(如键盘输入、网络数据包),而不需要不断轮询。DMA 减轻 CPU 负担,使 IO 操作与计算并行。

How

程序员通过系统调用(System Call)与 IO 设备交互。操作系统提供设备驱动程序,屏蔽硬件细节。理解计算机组成有助于理解:为什么 IO 操作是异步的(中断驱动);为什么 DMA 对高性能 IO 至关重要;为什么系统调用比函数调用慢(需要上下文切换到内核态)。嵌入式系统程序员可能需要直接操作 IO 端口和中断控制器。

Bottom-up:由下层如何构建

本层建立在以下层级之上:

Top-down:向上暴露什么接口

总线IO 系统中断

Programmer View:程序员视角

我能操作吗?

通过系统调用(read/write/open/close)访问 IO 设备。操作系统提供统一的文件抽象。底层可通过设备驱动程序直接控制硬件。

成本模型

指标量级备注
系统调用开销~1000-2000 周期上下文切换到内核态
中断响应延迟~1-10 μs从中断发生到处理程序执行
DMA 传输速率数 GB/s取决于总线带宽(PCIe 3.0: ~16 GB/s)

常见陷阱

  • !IO 阻塞:同步 IO 操作会阻塞进程,直到数据就绪。高并发服务器应使用异步 IO(epoll、io_uring)
  • !中断风暴:IO 设备频繁触发中断会导致 CPU 过载。应使用中断合并(Interrupt Coalescing)或轮询模式
  • !总线争用:多个设备同时访问总线会导致性能下降。现代系统使用点对点连接(如 PCIe)替代共享总线