计算机系统

  1. 计算机**本质上在做什么**?
  2. 软件与硬件**如何通过稳定契约协作**?
  3. 性能、结构与复杂度**为何必然如此演进**?

一、第一性原理:计算机系统的本质

1.1 计算机是什么?

计算机是一台可被程序控制的状态机。

从第一性原理看,所有复杂系统行为,最终都可还原为:状态读取 → 状态计算 → 状态写回


1.2 程序的本质

程序不是“软件文件”,而是:

对系统状态转移规则的编码描述

因此:

这一定义在 70 年内从未改变。


二、冯诺依曼模型:稳定不变的系统原型

2.1 冯诺依曼模型解决了什么问题?

核心思想:存储程序(Stored Program)

这是软件能够存在的根本原因。


2.2 冯诺依曼模型的抽象结构

从抽象而非器件角度,可归纳为五个功能单元:

功能本质角色
运算器状态变换
控制器状态转移调度
存储器状态载体
输入状态注入
输出状态外显

所有现代计算机,无一例外仍然服从该模型


三、哈佛结构与冯诺依曼结构:冲突与权衡

3.1 冯诺依曼瓶颈的本质

指令流与数据流争用同一存储与总线资源

这是一个物理资源冲突问题,而非思想缺陷。


3.2 哈佛结构的解法

但代价是:


3.3 现代系统的真实形态

现代 CPU 是“逻辑冯诺依曼 + 物理哈佛”的折中体

这是工程理性而非理论变更。


四、抽象边界:计算机系统的三层稳定契约

4.1 软件与硬件的契约:ISA

指令集架构(ISA)是最重要的稳定边界。

ISA 定义了“能做什么”,而非“如何做”。


4.2 体系结构 vs 组成原理

层次回答的问题
体系结构系统对外暴露什么能力?
组成原理这些能力如何被实现?

这是 What / How 的根本分离。


4.3 系统软件的真实角色

系统软件不是“工具集合”,而是:

对硬件能力的抽象、隔离与调度系统


五、性能的第一性原理模型

5.1 唯一重要的性能公式

CPU 时间 = 指令数 × CPI × 时钟周期

这是所有性能分析的起点。


5.2 性能因素的责任归属

因素决定层
指令数算法 + 编译器
CPI微架构
时钟周期工艺 + 架构

没有跨层"银弹"。


5.3 为什么主频不等于性能?

这正是复杂架构存在的原因。


六、从静态模型到系统演进

6.1 多核的本质

并行不是免费午餐。


6.2 存储层级的必然性

存储墙是物理现实,而非设计失败。


6.3 操作系统的系统意义

操作系统不是"软件",而是系统秩序的实现者

关联内容(自动生成)