Skip to content

从晶体管到 CPU

核心问题

计算机是怎么"思考"的? 你可能知道 CPU 是电脑的"大脑",但这个大脑到底是怎么工作的?它怎么从一堆金属和塑料变成能执行程序、处理数据的智能设备?本章带你从最底层的晶体管开始,一步步理解 CPU 的构造原理。


0. 全景图:从沙子到智能

现代计算机的"思考"能力,归根结底来自于一个简单的东西:开关

想象你有一个开关,可以控制灯的亮灭。现在,如果你有几十亿个这样的开关,并且能用它们组合出各种复杂的逻辑,会发生什么?这就是计算机的奥秘。

从沙子到智能的层次结构:

层级名称数量级作用类比
1晶体管数十亿最基本的开关单元一个开关
2逻辑门数亿实现基本逻辑运算开关组合
3功能单元数百实现特定功能(加法、存储等)功能模块
4CPU 核心1-128完整的处理器大脑

逐行解读这张表

第1层(晶体管):这是最底层的"开关"。现代 CPU 使用的是 MOSFET(金属氧化物半导体场效应晶体管),它的特点是:给栅极加电压,源极和漏极之间就导通;不加电压,就断开。这就是"用电控制电"的开关。

第2层(逻辑门):把晶体管组合起来,就能实现"与"、"或"、"非"等逻辑运算。比如 AND 门:两个输入都为 1 时输出才为 1。这就像两个串联的开关,必须都按下灯才会亮。

第3层(功能单元):把逻辑门组合起来,就能实现更复杂的功能。加法器能做加法,寄存器能存储数据,多路选择器能选择数据。这些是 CPU 的"器官"。

第4层(CPU 核心):把功能单元组合起来,加上控制器、总线等,就形成了一个完整的 CPU 核心。它能取指令、解码、执行、写回结果——这就是"计算"的全部过程。


1. 晶体管:数字世界的开关

晶体管:数字世界的开关Gate 电压决定电流能否通过
栅极输入(Gate)
通道:断开输出:0
控制端 Gate
0
↓ 控制
源极 Source
漏极 Drain
电流被阻断:无法通过通道
晶体管状态表
Gate 输入通道状态输出
0(低电压)断开0
1(高电压)导通1
点上方按钮切换 Gate,观察“通道状态”和“电流流动”如何同步变化。
① 改变 Gate 电压(0/1)
② 通道变为断开/导通
③ 输出随之变成 0/1
核心思想:晶体管本质是“电控开关”:Gate=1 时导通,Gate=0 时断开。所有数字计算都建立在这种 0/1 开关之上。

1.1 什么是晶体管?

晶体管是什么?

晶体管(Transistor) 是一种半导体器件,它可以像开关一样控制电流的通断。

生活类比:想象一个水龙头:

  • 水龙头:你用手拧开关,控制水流
  • 晶体管:用电压控制开关,控制电流

关键区别是:晶体管不是用手拧,而是用"电"来控制。这意味着一个开关可以控制另一个开关,从而实现"自动控制"。

晶体管的三个极:

名称作用类比
源极 (Source)电流入口电流从这里进入水管入口
漏极 (Drain)电流出口电流从这里流出水管出口
栅极 (Gate)控制端控制是否导通水龙头开关

1.2 晶体管如何表示 0 和 1?

计算机只认识 0 和 1,这和晶体管有什么关系?

用电压表示 0 和 1

核心思想:用电压的高低来表示 0 和 1。

  • 高电压(如 3.3V):表示 1
  • 低电压(如 0V):表示 0

这就像灯泡的亮和灭:

  • 灯亮 = 1
  • 灯灭 = 0

晶体管的作用就是"控制灯泡的亮灭"——给栅极加高电压,源极和漏极导通,"灯泡"亮了(输出 1);给栅极低电压,源极和漏极断开,"灯泡"灭了(输出 0)。

1.3 从一个开关到几十亿

你可能好奇:一个开关能做什么?答案是:一个开关做不了什么,但几十亿个开关组合起来,就能做任何计算。

现代 CPU 的晶体管数量:

年份CPU晶体管数量制程工艺
1971Intel 40042,30010μm
1993Intel Pentium310万0.8μm
2006Intel Core 22.91亿65nm
2020Apple M1160亿5nm
2023Apple M3 Max920亿3nm

什么是制程工艺?

制程工艺(如 5nm、3nm)指的是晶体管的尺寸。数字越小,晶体管越小,同样面积能容纳的晶体管越多。

  • 5nm:大约是 50 个原子的宽度
  • 3nm:大约是 30 个原子的宽度

制程越小,CPU 性能越强、功耗越低。但制造难度也指数级增加。


2. 逻辑门:用开关做运算

2.1 从晶体管到逻辑门

一个晶体管只是一个开关,但把多个晶体管组合起来,就能实现"逻辑运算"。

逻辑门:用开关做运算切换输入 A / B,同屏观察四种门的输出
点按钮切换 0 / 1,右侧四个门同步更新:
输入 A
输入 B
当前:A=0,B=0
ANDA && B
串联:都为 1 才输出 1
输出0(假 / 断开)
ORA || B
并联:任一为 1 就输出 1
输出0(假 / 断开)
NOT!A
取反:0→1,1→0
输出1(真 / 导通)
XORA ⊕ B
判异:不同为 1,相同为 0
输出0(假 / 断开)
四种门真值表对照(高亮行 = 当前输入)
ABANDORNOT(A)XOR
000010
010111
100101
111100
核心思想:逻辑门用晶体管的"开关"组合实现基本运算——AND 像串联、OR 像并联、NOT 取反、XOR 判异。所有复杂计算都由这四种基础操作构建而来。

2.2 基本逻辑门详解

AND 门(与门)

  • 规则:两个输入都为 1,输出才为 1
  • 生活类比:串联的两个开关,必须都按下灯才亮
  • 应用:判断"多个条件是否同时满足"

OR 门(或门)

  • 规则:任一个输入为 1,输出就为 1
  • 生活类比:并联的两个开关,按任意一个灯就亮
  • 应用:判断"是否满足任一条件"

NOT 门(非门)

  • 规则:输入和输出相反
  • 生活类比:反相器,开变关、关变开
  • 应用:取反操作

XOR 门(异或门)

  • 规则:两个输入不同时输出 1
  • 生活类比:判断"两个值是否不同"
  • 应用:比较、加法运算

2.3 用逻辑门做加法

加法器:用逻辑门做二进制加法点击蓝色位按钮切换 0/1,观察进位如何逐位传递
A = 被加数B = 加数S = 和(Sum,本位结果)C = 进位(Carry,传给下一位)
A(被加数)
= 3
+
B(加数)
= 2
=
0101(十进制 5)
逐位计算过程(从最低位开始)
第 0 位(最低位)
A1
B0
半加器
Half Adder
S1
Cout0
无进位
第 1 位(次低位)
A1
B1
Cin0
全加器
Full Adder
S0
Cout1
进位 1 传给第 2 位 →
第 2 位(次高位)
A0
B0
Cin1
全加器
Full Adder
S1
Cout0
无进位
第 3 位(最高位)
A0
B0
Cin0
全加器
Full Adder
S0
Cout0
二进制结果0101
十进制验证3 + 2 = 5
核心思想:每位全加器接收 A、B 和上一位的进位(Cin),输出本位的和(S)与向上传递的进位(Cout)——和我们手算竖式加法"逢二进一"完全一致。

💡 加法器是怎么工作的?

半加器:处理两个 1 位二进制数相加

  • 输入:A、B(各 1 位)
  • 输出:和(S)、进位(C)
  • 公式:S = A XOR B,C = A AND B

全加器:处理两个 1 位二进制数相加,加上上一位的进位

  • 输入:A、B、Cin(进位输入)
  • 输出:和(S)、Cout(进位输出)

多位加法器:把多个全加器级联起来

  • 第 1 位加法器的进位输出,连接到第 2 位加法器的进位输入
  • 就像我们手算加法时"逢二进一"

3. 功能单元:逻辑门的组合

3.1 常见功能单元

单元功能组成类比
加法器做加法多个全加器级联计算器的加法功能
多路选择器选择数据AND 门 + OR 门多选一开关
译码器解码指令多个 AND 门翻译器
寄存器存储数据触发器(锁存器)临时笔记本
计数器计数触发器级联计分牌
寄存器:存储状态的功能单元改变输入不会改变存储值——必须主动"写入"
输入值
存储值:0输出:0
输入(Data)
0
点左侧按钮切换
写入触发
D 触发器(寄存器核心)
0
保持 (Hold)
输出
输出(Output)
🌑
灭(0)
操作步骤说明
点"输入值"按钮切换输入(0/1)
此时存储值不变——这就是寄存器的意义
点"写入寄存器",输入值才被锁入
写入后再改输入,存储值依然保持不变
当前输入
0
存储值
0
(当前相同)
核心思想:寄存器只在"写入"信号触发时更新,其余时刻持续锁定当前值。这就是 CPU 能在计算过程中稳定保存中间结果的原因。

3.2 寄存器:存储 1 位数据

💡 寄存器是怎么存储数据的?

寄存器使用触发器电路来存储数据。触发器的特点是:一旦设置了状态,就能保持住,直到下一次改变。

生活类比:想象一个跷跷板:

  • 推一下左边,左边就沉下去,右边翘起来
  • 即使你松手,跷跷板也会保持这个状态
  • 只有再推一下,才会改变状态

触发器就是这样的"电子跷跷板",能"记住"上一次被设置的状态。


4. CPU 架构:从功能单元到处理器

4.1 CPU 的核心组件

CPU 架构全貌从功能单元到完整核心
核心组件一览(静态展示)
🎮控制器(CU)
负责取指、解码和发出控制信号
像指挥员,安排每个模块何时工作
📊ALU
执行加减与、或、比较等运算
像计算器,完成核心算术与逻辑处理
📁寄存器组
保存当前最常用的数据和中间结果
像桌面便签,读写速度远高于内存
🚌内部总线
在模块间传输数据、地址和控制信息
像高速通道,把各组件连接成整体
一条指令在 CPU 内部的流动
1取指控制器从缓存/内存取来指令
2解码识别指令类型与需要的操作数
3执行ALU 或其他单元完成具体运算
4写回结果写入寄存器,供后续指令使用
核心思想:CPU 不是单一部件,而是多个功能单元的有序协作:控制器负责调度,ALU 负责计算,寄存器负责高速暂存,总线负责连接与传输。

4.2 CPU 是如何执行指令的?

CPU 执行一条指令,需要经过四个阶段:

阶段名称做什么类比
1取指 (Fetch)从内存读取指令从书架上取书
2解码 (Decode)分析指令要做什么阅读书的内容
3执行 (Execute)执行运算按书中的指示行动
4写回 (Write Back)把结果存回寄存器把结果记在笔记本上

💡 指令周期

这四个阶段组成一个指令周期。CPU 不断重复这个周期,一条一条执行指令,就实现了"计算"。

现代 CPU 使用流水线技术,让多个指令的不同阶段并行执行:

  • 第 1 条指令在执行时
  • 第 2 条指令在解码
  • 第 3 条指令在取指

这就像工厂流水线,大大提高了效率。

4.3 CPU 性能的关键指标

指标含义影响典型值
主频每秒执行多少个时钟周期主频越高,执行越快3-5 GHz
核心数独立的处理器数量核心越多,并行能力越强4-64 核
缓存CPU 内部的高速存储缓存越大,访问内存越少8-64 MB
指令集CPU 能理解的指令集合决定兼容性和功能x86、ARM

5. 总结:从沙子到智能

让我们回顾一下从晶体管到 CPU 的完整路径:

全景图:从沙子到智能每一层都是对下一层的抽象封装
🏖️
沙子(硅)
地球上最丰富的元素之一,提炼出高纯度硅
原材料
↓ 提纯 → 切割成晶圆
💿
硅晶圆
直径 30cm 的单晶硅片,表面极其光滑
基底
↓ 光刻 → 蚀刻 → 掺杂
晶体管(开关)
Gate=1 导通,Gate=0 断开,用电压控制电流
数百亿个 / 芯片
↓ 组合成逻辑电路
🔌
逻辑门
AND / OR / NOT / XOR,实现基本布尔运算
数十亿个
↓ 组合成功能模块
🔧
功能单元
加法器、寄存器、多路选择器……各司其职
数百个
↓ 集成为完整处理器
🧠
CPU 核心
ALU + 控制器 + 寄存器组,执行取指→解码→执行→写回
1 ~ 128 核
↓ 软件编程
💻
软件应用
操作系统 / AI 模型 / 游戏 / 网页……一切皆指令
无限可能
核心思想:计算机的本质是"开关的组合"。通过一层层的抽象封装,最底层的物理材料最终变成了能执行任意逻辑的通用计算平台。

核心启示

计算机的本质是"开关的组合"

  • 一个开关做不了什么
  • 但几十亿个开关,按特定方式组合,就能执行任何计算
  • 这就是"量变引起质变"的最好例证

理解这一点,你就会明白:

  • 为什么计算机只认识 0 和 1
  • 为什么编程语言最终都要翻译成机器码
  • 为什么算法效率如此重要(因为每一步操作都需要大量晶体管参与)

延伸阅读

  • 计算机组成原理:深入了解 CPU、内存、I/O 的工作原理
  • 数字电路:学习逻辑门、触发器、时序电路的设计
  • 计算机体系结构:研究 CPU 的性能优化、流水线、缓存等
  • 汇编语言:直接和 CPU 对话,理解指令执行过程