1. 从图灵机到现代CPU:计算机如何执行a=1+1
第一次拆解计算机执行1+1的过程时,我被这个看似简单的运算背后复杂的机制震撼到了。这就像观察一座精密的瑞士钟表——表面只是时针分针的转动,内部却是数百个齿轮的精密协作。让我们从最基础的图灵机开始,逐步拆解现代计算机执行a=1+1的全过程。
1.1 图灵机:计算机的理论基石
1936年阿兰·图灵提出的图灵机模型,至今仍是理解计算机工作原理的最佳起点。当我第一次用纸带和读写头模拟计算过程时,突然理解了为什么说现代计算机都是"图灵完备"的。
图灵机的核心组件其实非常直观:
- 纸带:相当于现代计算机的内存,由无限多个格子组成(实际计算机的内存是有限的)
- 读写头:就像CPU的读取指令和数据的部件
- 状态寄存器:保存当前处理中的临时数据
- 控制规则表:决定了在特定状态下读到特定符号时该如何操作
让我们用1+1的例子在图灵机上走一遍流程:
- 初始化纸带:['1', '1', '+'](实际还需要终止符)
- 读写头位于最左的'1',将其读入状态寄存器
- 右移一格,读入第二个'1',此时状态寄存器暂存两个1
- 遇到'+'时触发加法操作,状态寄存器变为2
- 结果写回纸带(通常会在右边新格子写入)
注意:实际图灵机实现会更复杂,需要处理状态转换、移动方向等。这个简化模型已经能帮助我们理解核心原理。
1.2 冯·诺依曼架构:图灵机的工程实现
1945年提出的冯·诺依曼架构,将图灵机的理论模型变成了可实现的工程方案。我在学习计算机组成原理时,曾用Verilog实现过一个简单的冯·诺依曼架构CPU,这让我对以下组件有了深刻理解:
核心五大部件:
- 运算器(ALU):执行算术和逻辑运算
- 控制器(CU):协调各部件工作
- 存储器:存放指令和数据(内存+外存)
- 输入设备:如键盘、鼠标
- 输出设备:如显示器、打印机
CPU内部关键组件:
- 寄存器组:比内存快得多的存储单元
- 通用寄存器(如EAX、EBX):暂存运算数据
- 程序计数器(PC):存放下一条指令地址
- 指令寄存器(IR):存放当前执行的指令
- 时钟发生器:提供时序
