第一章 什么是CPU?
你有没有想过:
当你点击一个图标的时候,电脑里面到底发生了什么?
打开浏览器的时候发生了什么?
运行一个游戏的时候发生了什么?
看起来电脑似乎很聪明。
能够计算。
能够播放视频。
能够运行人工智能。
能够联网。
但实际上,电脑并不聪明。
它只是按照指令一步一步执行。
负责执行这些指令的核心部件,就是CPU。
CPU,全称 Central Processing Unit,中文叫中央处理器。
它经常被称为计算机的大脑。
你电脑里运行的每一个程序,最终都离不开CPU。
浏览网页需要CPU。
播放视频需要CPU。
打开文件需要CPU。
甚至你移动一下鼠标,背后都有CPU参与。
那么问题来了:
一块小小的硅片,是如何完成这一切的?
为什么它每秒钟能够执行几十亿次操作?
为了回答这个问题,我们必须从最底层开始讲起。
第二章 一切始于晶体管
晶体管本质上就是一个电子开关。
它只有两种状态:
开。
或者关。
可以把它想象成家里的电灯开关。
开关打开。
电流通过。
开关关闭。
电流停止。
就这么简单。
单独一个晶体管其实没什么特别。
它只能表示两个状态。
1
或者0
这也是为什么计算机使用二进制。
因为晶体管天生就适合表示两种状态。
几十亿个。
甚至上百亿个。
这些晶体管被密密麻麻地刻蚀在一块指甲大小的硅片上。
而正是这些微小的开关,构成了整个数字世界。
第三章 逻辑门
单个晶体管只能表示0和1。
那如何进行计算呢?
答案就是逻辑门。
逻辑门是由多个晶体管组成的电子电路。
最常见的逻辑门包括:
AND门
OR门
NOT门
XOR门
逻辑门接收输入。
然后产生输出。
例如AND门。
只有当两个输入都为1时。
输出才为1。
否则输出就是0。
看起来非常简单。
但实际上,整个计算机世界都建立在这些简单规则之上。
加法。
减法。
比较大小。
条件判断。
最终都可以拆解成逻辑门操作。
逻辑门就是数字计算的积木。
第四章 ALU是如何诞生的
现在我们把大量逻辑门组合起来。
会发生什么?
假设我们要计算:
0011
加
0101
计算机当然不会拿计算器。
而是通过专门的加法器电路完成。
多个加法器继续组合。
最终形成一个重要部件:
ALU。
Arithmetic Logic Unit。
算术逻辑单元。
ALU负责:
加法
减法
比较
位运算
几乎所有数学计算
当软件执行:
A+B
实际上真正干活的就是ALU。
它是CPU内部的计算工厂。
第五章 寄存器
CPU不仅要计算。
还要记住数据。
这时候就需要寄存器。
寄存器位于CPU内部。
速度极快。
甚至比内存快几十倍甚至上百倍。
可以把寄存器理解为:
CPU桌面上的工作区。
CPU正在处理的数据都会暂时放在这里。
例如:
A=15
B=27
CPU会先把这两个数字装入寄存器。
然后交给ALU计算。
得到结果42以后。
再把结果放回寄存器。
没有寄存器的话。
CPU每次都要访问内存。
速度会下降很多。
第六章 指令是什么
到目前为止。
我们已经有:
逻辑门
ALU
寄存器
但CPU仍然不知道要做什么。
谁来告诉CPU工作内容?
答案是指令。
指令其实就是命令。
例如:
加法
移动数据
比较数据
跳转到其他位置
不同CPU有不同的指令集。
例如:
x86
RISC-V
对于程序员来说。
这些指令长这样:
MOV
ADD
SUB
JMP
但对于CPU来说。
它们最终都是一串0和1。
第七章 取指、译码、执行
终于来到CPU工作的核心。
取指。
译码。
执行。
简称:
Fetch
Decode
Execute
第一步。
取指。
CPU从内存读取下一条指令。
第二步。
译码。
CPU分析这条指令是什么意思。
第三步。
执行。
CPU真正完成这条指令。
然后继续下一条。
不断循环。
一秒钟执行几十亿次。
无论是浏览器。
游戏。
Windows。
人工智能。
最终都建立在这个循环之上。
第八章 程序计数器
那么CPU怎么知道下一条指令在哪里?
答案是程序计数器。
Program Counter。
简称PC。
它保存下一条指令的地址。
例如:
0x1000
执行完以后。
变成:
0x1004
然后:
0x1008
继续向前推进。
如果遇到跳转指令。
PC会直接跳到新的地址。
这使得程序能够:
做判断
执行循环
运行不同代码路径
如果没有Program Counter。
软件根本无法存在。
第九章 流水线
早期CPU一次只能执行一条指令。
效率很低。
后来工程师借鉴了汽车流水线。
汽车工厂里:
一个工人装轮胎。
一个工人装车门。
一个工人装发动机。
同时工作。
CPU也一样。
第一条指令正在执行。
第二条正在译码。
第三条正在取指。
多个阶段同时进行。
这就是流水线技术。
Pipeline。
它大幅提高了CPU性能。
现代处理器几乎全部依赖流水线。
第十章 高速缓存
CPU速度非常快。
但内存很慢。
如果CPU每次都等待内存返回数据。
性能会崩溃。
于是工程师发明了Cache。
高速缓存。
Cache位于CPU附近。
容量很小。
但速度极快。
经常使用的数据会放在这里。
CPU访问数据时:
先查Cache。
找到了直接使用。
找不到再访问内存。
现代CPU通常有:
L1 Cache
L2 Cache
L3 Cache
距离CPU越近。
速度越快。
Cache是现代CPU高性能的重要原因之一。
第十一章 多核时代
过去提高性能的方法很简单。
提高频率。
让CPU跑得更快。
后来遇到了问题。
发热太严重。
功耗太高。
于是工程师换了思路。
不再做一个超级核心。
而是做多个核心。
今天的CPU可能有:
4核
8核
16核
32核
甚至更多。
每个核心都可以独立工作。
你浏览网页的时候。
一个核心可能在处理浏览器。
另一个核心在播放音乐。
第三个核心正在下载文件。
多核设计彻底改变了计算机世界。
第十二章 现代CPU为什么如此复杂
到目前为止。
我们讲的其实只是简化版本。
真正的现代CPU远比这复杂。
里面还包括:
乱序执行
分支预测
推测执行
SIMD并行计算
虚拟内存
安全模块
功耗管理
等等。
一颗现代CPU里面。
可能有上百亿个晶体管同时工作。
它是人类历史上最复杂的机器之一。
总结
CPU看起来复杂。
但核心思想其实很简单。
晶体管构成逻辑门。
逻辑门构成电路。
电路构成寄存器和ALU。
指令告诉CPU该做什么。
CPU不断进行:
取指
译码
执行
所有的软件。
所有的网站。
所有的操作系统。
甚至今天的人工智能。
最终都建立在这个基础之上。
下次当你打开一个程序的时候。
请记住。
在你看不见的地方。
数百亿个晶体管正在不断开关。
搬运数据。
执行计算。
让软件拥有生命。
这就是CPU工作的原理。












