{"name":"计算机系统","id":"计算机系统-计算机系统","content":"# 计算机系统\n\n> 1. 计算机**本质上在做什么**？\n> 2. 软件与硬件**如何通过稳定契约协作**？\n> 3. 性能、结构与复杂度**为何必然如此演进**？\n\n---\n\n## 一、第一性原理：计算机系统的本质\n\n### 1.1 计算机是什么？\n\n**计算机是一台可被程序控制的状态机。**\n\n* **状态**：存储器中全部可寻址的二进制信息\n* **转移规则**：指令所描述的确定性操作\n* **控制方式**：程序按顺序或条件改变状态\n\n> 从第一性原理看，所有复杂系统行为，最终都可还原为：\n> **状态读取 → 状态计算 → 状态写回**。\n\n---\n\n### 1.2 程序的本质\n\n**程序不是“软件文件”，而是：**\n\n> **对系统状态转移规则的编码描述**\n\n因此：\n\n* 程序 = 指令（控制） + 数据（操作对象）\n* 执行 = 按地址取指 → 译码 → 执行 → 写回\n\n这一定义在 70 年内从未改变。\n\n---\n\n## 二、冯诺依曼模型：稳定不变的系统原型\n\n### 2.1 冯诺依曼模型解决了什么问题？\n\n**核心思想：存储程序（Stored Program）**\n\n* 程序与数据统一存储\n* 指令可以被当作数据处理\n* 控制逻辑不再“写死在硬件中”\n\n> 这是软件能够存在的根本原因。\n\n---\n\n### 2.2 冯诺依曼模型的抽象结构\n\n从抽象而非器件角度，可归纳为五个功能单元：\n\n| 功能  | 本质角色   |\n| --- | ------ |\n| 运算器 | 状态变换   |\n| 控制器 | 状态转移调度 |\n| 存储器 | 状态载体   |\n| 输入  | 状态注入   |\n| 输出  | 状态外显   |\n\n所有现代计算机，**无一例外仍然服从该模型**。\n\n---\n\n## 三、哈佛结构与冯诺依曼结构：冲突与权衡\n\n### 3.1 冯诺依曼瓶颈的本质\n\n> **指令流与数据流争用同一存储与总线资源**\n\n这是一个**物理资源冲突问题**，而非思想缺陷。\n\n---\n\n### 3.2 哈佛结构的解法\n\n* 指令存储与数据存储物理分离\n* 提高并行访问能力\n\n但代价是：\n\n* 系统复杂度上升\n* 灵活性下降\n\n---\n\n### 3.3 现代系统的真实形态\n\n> **现代 CPU 是“逻辑冯诺依曼 + 物理哈佛”的折中体**\n\n* ISA 视角：统一地址空间\n* 微架构视角：多级 Cache 分离\n\n这是工程理性而非理论变更。\n\n---\n\n## 四、抽象边界：计算机系统的三层稳定契约\n\n### 4.1 软件与硬件的契约：ISA\n\n**指令集架构（ISA）是最重要的稳定边界。**\n\n* 上层：编译器、操作系统、程序\n* 下层：任意实现方式的硬件\n\n> ISA 定义了“能做什么”，而非“如何做”。\n\n---\n\n### 4.2 体系结构 vs 组成原理\n\n| 层次   | 回答的问题       |\n| ---- | ----------- |\n| 体系结构 | 系统对外暴露什么能力？ |\n| 组成原理 | 这些能力如何被实现？  |\n\n这是 **What / How** 的根本分离。\n\n---\n\n### 4.3 系统软件的真实角色\n\n系统软件不是“工具集合”，而是：\n\n> **对硬件能力的抽象、隔离与调度系统**\n\n* 操作系统：资源虚拟化与仲裁\n* 编译器：语义到指令的映射\n* 网络系统：状态的跨节点扩展\n\n---\n\n## 五、性能的第一性原理模型\n\n### 5.1 唯一重要的性能公式\n\n```text\nCPU 时间 = 指令数 × CPI × 时钟周期\n```\n\n这是所有性能分析的起点。\n\n---\n\n### 5.2 性能因素的责任归属\n\n| 因素   | 决定层      |\n| ---- | -------- |\n| 指令数  | 算法 + 编译器 |\n| CPI  | 微架构      |\n| 时钟周期 | 工艺 + 架构  |\n\n> 没有跨层\"银弹\"。\n\n---\n\n### 5.3 为什么主频不等于性能？\n\n* 主频只影响\"时钟周期\"\n* CPI 与指令数可能急剧上升\n\n这正是复杂架构存在的原因。\n\n---\n\n## 六、从静态模型到系统演进\n\n### 6.1 多核的本质\n\n* 多个状态机并行执行\n* 一致性问题不可避免\n\n并行不是免费午餐。\n\n---\n\n### 6.2 存储层级的必然性\n\n* 物理速度差异 → 层级结构\n* Cache 是时间换空间的工程解法\n\n存储墙是物理现实，而非设计失败。\n\n---\n\n### 6.3 操作系统的系统意义\n\n> 操作系统不是\"软件\"，而是**系统秩序的实现者**。\n\n* 控制权分配\n* 资源抽象\n* 故障隔离\n\n## 关联内容（自动生成）\n\n- [/计算机系统/程序结构和执行/处理器体系架构.md](/计算机系统/程序结构和执行/处理器体系架构.md) 深入讲解了CPU的内部结构、指令执行过程、流水线技术、超标量设计等，与本文档中冯诺依曼模型、性能分析等内容密切相关\n- [/计算机系统/程序结构和执行/存储器层次结构.md](/计算机系统/程序结构和执行/存储器层次结构.md) 详细介绍了存储器层次结构的设计原理，包括缓存、主存、磁盘等，与本文档中存储层级的必然性、性能分析等内容相关\n- [/计算机系统/数字逻辑电路.md](/计算机系统/数字逻辑电路.md) 介绍了数字逻辑电路的基本概念，包括逻辑门、组合逻辑、时序逻辑等，是理解计算机硬件实现的基础，与本文档中计算机本质、冯诺依曼模型等内容相关\n- [/操作系统/操作系统.md](/操作系统/操作系统.md) 介绍了操作系统的基本概念、核心模型、能力体系等，与本文档中操作系统作为系统秩序实现者的观点相关\n- [/计算机系统/程序结构和执行/优化程序性能.md](/计算机系统/程序结构和执行/优化程序性能.md) 从计算模型、编译器模型、处理器模型三个角度分析程序性能优化，与本文档中性能的第一性原理模型相关\n- [/计算机系统/程序结构和执行/指令系统.md](/计算机系统/程序结构和执行/指令系统.md) 介绍指令系统的基本概念，包括指令格式、寻址方式、指令类型等，与本文档中ISA作为软硬件契约的内容相关\n- [/计算机系统/程序结构和执行/总线.md](/计算机系统/程序结构和执行/总线.md) 介绍总线的基本概念、分类、控制方式等，是连接计算机各部件的重要组成部分，与冯诺依曼模型中的连接部分相关\n- [/计算机系统/程序结构和执行/运算方法与运算器.md](/计算机系统/程序结构和执行/运算方法与运算器.md) 介绍运算方法和运算器的设计原理，与本文档中运算器作为状态变换功能单元的内容相关\n- [/计算机系统/在系统上运行程序/异常控制流.md](/计算机系统/在系统上运行程序/异常控制流.md) 介绍异常控制流的概念和实现机制，与本文档中程序执行和状态转移相关\n- [/计算机系统/在系统上运行程序/链接.md](/计算机系统/在系统上运行程序/链接.md) 介绍链接的基本概念和实现机制，是程序从源码到可执行文件的重要环节，与本文档中程序的本质相关\n","metadata":"tags: ['计算机系统', '思维方法论', '性能']","hasMoreCommit":false,"totalCommits":4,"commitList":[{"date":"2026-02-12T14:07:03+08:00","author":"MY","message":"doc: 整理标签","hash":"290b3e8ad18f48832ac282290238d020fc030a88"},{"date":"2026-01-12T11:05:04+08:00","author":"MY","message":"feat(computer-system): 重构计算机系统文档引入第一性原理视角","hash":"96a0ce3cfe4b20413e7c4b5ab8c394056e17f855"},{"date":"2024-12-02T19:28:47+08:00","author":"MY","message":"📦计算机系统","hash":"120847197a4799fd4df9146d1579b956be153cae"},{"date":"2022-06-21T21:33:19+08:00","author":"MY","message":"✏️更新 计算机系统","hash":"810a75eea5bf186333223134886032aa458c0d76"}],"createTime":"2022-06-21T21:33:19+08:00"}