前言:我公众号做了近7年,一直在发布半导体行业供应商数据和景气度指数研究报告,似乎有些单调了。最近在学习和调试AI Agent的时候突发奇想,能否就用它来做一个半导体的科普资料?于是尝试了一下,生成效果还算凑合。所以,我打算做一个大系列,给非半导体行业人士和行业新人做个科普 ...
上周发布了第一章。最近刚完成了第二章的内容,所以放上来供大家参考。如果您有任何建议,欢迎和我私信交流后续章节章节还在制作当中,后续会抽样发布。
完整文档会作为会员福利放到我知识星球的云盘里。欢迎大家加入获取另外,由于文中插图也是用AI生成的,部分图片排版有些问题,甚至不太准确。麻烦大家谅解了。后续我看看如何优化
开场:走进"开关的城市"
第1章结尾我们说:芯片 = 开关的城市。这一章,我们进城看看——城市里到底在发生什么?
旅程分五站,从一间房走到整座城:
1. 一间房:晶体管(2.1)——城市的最小单元;
2. 一条街:逻辑门(2.2)——几个开关拼成的"约定";
3. 一个区:组合电路与存储(2.3、2.4)——没有记忆的接线员 + 会记事的档案室;
4. 一座城:CPU 与 GPU(2.6、2.7)——整座城市如何"听指挥"地运转。
中间还会路过一个特别的街区(2.5):模拟电路——它是数字城市与真实世界的唯一联络口。
准备好了吗?进城。
2.1 晶体管:开关的物理真相
第1章我们把晶体管比作水龙头:手拧龙头,水就流过。但晶体管里那只"手"到底是什么?答案是——电场。
隔空指挥:场效应
现代晶体管叫MOSFET(金属-氧化物-半导体场效应管),名字里的"场效应"三个字就是关键:栅极不需要碰到硅,只要加上电压,就能在硅里"感应"出一条导电通道。
类比:不碰水面,用一块磁铁隔着玻璃吸动水下的铁屑——栅极就是那块"磁铁",电场就是它伸出的"无形的手"。控制信号与电流通道之间隔着一层绝缘层,只指挥、不掺和。
所以晶体管的工作原理一句话:栅极有电压 → 导电通道打开,电流流过;栅极没电压 → 通道关闭,电流断开。这是一个完美的开关:可靠、快速、且几乎不消耗控制能量。
图2-1 晶体管开关机制:电压控制通断
PN结 → MOSFET:开关是怎么"长"出来的
第1章讲过掺杂:在纯硅里掺入微量杂质,得到 N 型(多电子)和 P 型(少电子)两种硅。把 N 型和 P 型拼在一起,交界处就形成PN结——一个单向阀:只允许电流从一个方向流过。
MOSFET 就是在 PN 结构造上"加装闸门"的结果:用一块栅极盖在通道上方,通过电压控制通道的通断。单向阀保证了方向,闸门实现了控制——两者一组合,一个可控的开关就诞生了。
图2-2 PN结 → MOSFET:三步演化
为什么"越小越好"
如果开关是理想的,那做多大都行——但现实里有两个问题:
• 越大越慢:信号要从一头跑到另一头,跑得越远越慢;
• 越大越费电:每个晶体管都有寄生电容,开关一次要给它充放电,越大充放电越费劲。
所以芯片厂拼命把晶体管做小——小 = 快 + 省电。这就是摩尔定律背后最朴素的物理动机。至于小到纳米级会遇到什么麻烦,那是第4、8章的故事。
2.2 门级逻辑:从晶体管搭出逻辑
单个开关只能"通/断"。但把几个开关按特定方式组合,就能实现逻辑——这就是逻辑门。
CMOS:几乎不耗电的组合方式
现代芯片用CMOS(互补金属氧化物半导体)方式组合晶体管:一对互补的管子(一个 P 型、一个 N 型)永远处于"一个开、一个关"的状态。
好处是:稳态时电流无法从电源直接流到地——几乎不耗电。只有开关切换的瞬间才消耗一点点能量。这就是为什么几十亿个晶体管塞在一颗芯片里还能不烧掉的原因。
从反相器到与非门:用数字说话
• 反相器(NOT):输入 1 输出 0,输入 0 输出 1——2 个晶体管(1P+1N);
• 与非门(NAND):两个输入,只有"两个都是 1"时输出 0——4 个晶体管(2P+2N);
• 其他门都可以由它们组合出来:与门 = 与非门 + 反相器;或门、异或门同理。
逻辑门的"说明书"叫真值表——列出所有输入组合对应的输出:
图2-3 CMOS 反相器:2 个晶体管实现"取反"
图2-4 逻辑门符号与真值表
一句话总结:逻辑门 = 开关的"约定组合"。芯片设计者的工作,就是把这些"约定"像乐高一样拼起来——一颗现代 CPU 里有几十亿个晶体管,本质上是几亿个逻辑门的组合。
2.3 组合电路:没有记忆的"接线员"
把逻辑门再组合起来,就得到组合电路:它的特点是输出只由当前输入决定,没有记忆——输入一变,输出立刻变。像一位"接线员":你拨哪个号,它就接哪条线。
加法器:计算的起点
• 半加器:两个门(异或+与)就能算 1 位二进制加法,输出"和"和"进位";
• 全加器:把两个半加器拼起来,多一个"接收上一位进位"的入口;
• 加法器:一串全加器首尾相连,就能算任意多位数的加法——64 位加法器大约由几千个晶体管构成。
第1章说过:计算机本质上只做加法。减法用补码、乘法用连加、除法用连减,更复杂的运算全部拆解成加法+逻辑——加法器就是这座"开关城市"的算盘。
图2-5 半加器 → 全加器 → 加法器
选路与翻译:MUX 和译码器
• 多路选择器(MUX):好几路输入,用一个"选择信号"挑一路放行——像铁路道岔;
• 译码器:输入一个"地址编号",点亮对应的那一路输出——像门牌号点亮一扇门。
它们本身不算数,但没有它们,数据在 CPU 里就"找不到路"。
图2-6 多路选择器与译码器
2.4 时序与存储:给电路装上"记忆"
组合电路有个致命缺陷:它不记事。算完 1+1,结果放哪?计算过程中的中间值怎么办?于是需要时序电路——输出不仅取决于当前输入,还取决于之前的状态。
触发器:1 位的记忆
把两个逻辑门的输出交叉接回对方的输入,形成一个回环:状态一旦建立就会"自我维持"——这就是触发器(第1章的"记忆环"正式版)。
• 一个触发器 = 记住1 位(0 或 1);
• 时钟信号(2.6 详讲)让所有触发器同步地"记住/更新",整个芯片才能步调一致。
图2-7 触发器:交叉耦合的"记忆环"
寄存器:一组触发器
把几十个触发器并排放在一起,就是一个寄存器——CPU 里能存一个数(比如 64 位)的"格子"。第1章说的"小纸条"就是它。
三种存储器:各司其职
存储器的核心矛盾是:快的不持久,持久的不快。于是有三种主流方案:
图2-8 三种存储单元对比
深一层:DRAM 的电容会漏电,所以它必须每秒成千上万次地"刷新"(读出来再写回去)——这就是"内存一断电就清零"的物理原因;闪存则把电荷关进一道"浮栅"里,即使断电电荷也跑不出来——这就是 U 盘"断电不忘"的秘密。存储器的全部学问,就是和"遗忘"赛跑。
2.5 模拟电路:与真实世界打交道
到目前为止我们看到的全是数字世界:0 和 1。但真实世界是连续的——声音、温度、光线、压力,都是平滑变化的模拟信号。两者之间,需要"翻译官"。
从真实世界到芯片:一条完整的链
声音(模拟)→ 麦克风 → ADC → CPU 处理 → DAC → 喇叭 → 你听到的声音。
• ADC(模数转换器):把连续的模拟信号切成一个个"台阶",量化为 0/1——模拟 → 数字;
• DAC(数模转换器):把数字台阶还原成连续的波形——数字 → 模拟。
图2-9 模拟信号 vs 数字信号
图2-10 ADC / DAC:模拟与数字的"翻译桥"
运放与电源管理
• 运算放大器(运放):把微弱的信号放大成千上万倍——模拟世界的"顺风耳";
• 电源管理 IC:把电池/电源的电压转换成数字电路需要的稳定电压——模拟世界的"心脏"。你手机里的充电、续航管理,全靠它。
为什么模拟设计这么难?
数字电路错了可以"重算",但模拟信号错了就是错了。模拟设计难在三个地方:
1. 噪声:信号本身是连续的,任何一点干扰都会混进去、被放大;
2. 温度漂移:温度一变,晶体管的特性就变,电路参数跟着漂;
3. 工艺偏差:同一批造出来的晶体管,每一个都有微小差异——数字电路能容忍,模拟电路可能直接失真。
所以业内有一句话:数字工程师是"建筑师",模拟工程师是"手艺人"。这也是第1章思考题里"为什么模拟芯片无法靠堆晶体管数量进步"的答案。
2.6 CPU:指令如何执行
有了门、有了存储,最后的问题来了:一座开关的城市,怎么"跑程序"?
指令集:芯片听得懂的语言
芯片听不懂"中文"也听不懂"Python",它只听得懂指令——每条指令是一串 0/1(比如 0100 0011 代表"把两个数加起来")。一台芯片支持的指令全集,叫指令集(ISA)。x86(电脑)、ARM(手机)、RISC-V(开源新贵)就是几套不同的"语言"。
取指 → 译码 → 执行:一条指令的旅行
1. 取指(Fetch):从内存里把下一条指令读出来;
2. 译码(Decode):翻译成电路能懂的控制信号——"哦,这是一条加法指令";
3. 执行(Execute):指挥 ALU 真的去算,把结果写回。
图2-11 取指 → 译码 → 执行
CPU 内部对应三个核心部件:
• 控制单元:总指挥,负责取指和译码,向全城发号施令;
• ALU(算术逻辑单元):干活的,负责加减和逻辑运算(2.3 的加法器就住在里面);
• 寄存器:CPU 手边的"小纸条",极快地暂存中间结果。
图2-12 CPU 内部结构
时钟:全城的节拍器
CPU 里所有动作必须步调一致——靠时钟信号:它像节拍器一样每秒发出固定次数的脉冲,所有电路在每个节拍上"踩点"前进。时钟每秒跳动的次数叫主频:3GHz ≈ 每秒 30 亿拍,每拍完成一小步,一条指令就这样一步步走完。
图2-13 时钟节拍
让流水线不空转:流水线与分支预测
• 流水线:像工厂流水线一样,上一条指令还在执行,下一条已经取指了——多条指令重叠处理;
• 分支预测:遇到"如果……否则……"的指令,先猜一个方向继续跑,猜错了再回头——现代 CPU 的猜中率超过 90%。
存储层次:让数据离 CPU 近一点
数据从硬盘到 CPU,路上每一站都比上一站快一点、贵一点:寄存器 → 缓存 → 内存 → 硬盘/闪存(最快/最贵 → 最慢/最便宜)。
为什么不全用最快的?因为快=贵。所以设计成"金字塔":把最常用的数据放在最快最贵的存储里,把不常用的放在慢但便宜的存储里——数据离 CPU 越近,电脑越快。
图2-14 存储层次金字塔
深一层:你有没有发现,电脑的主频十几年没怎么涨了?不是做不快,是做快了会烧——主频翻倍,发热翻好几倍,功耗墙把频率死死按住了。这条"功耗墙"是摩尔定律最大的敌人之一,第8章我们专门聊它。
2.7 GPU:为什么它能并行
CPU 很聪明,但有一种任务它干得很吃力:海量的简单计算同时做——比如游戏渲染、AI 训练。这时候需要GPU。
CPU vs GPU:特种兵 vs 普通兵
• CPU:十几个"特种兵"——每个核心都很强,什么复杂任务都能干;
• GPU:几千个"普通兵"——每个核心很弱,但人多力量大,特别适合"同一件事重复做几千遍"。
图2-15 CPU vs GPU:特种兵 vs 普通兵
SIMT:齐步走
GPU 用SIMT(单指令多线程)的方式工作:一条指令,同时驱动上千个核心执行——像军队齐步走,指挥官喊一声"齐步走",几千人同时迈左脚。
• 适合:矩阵乘法、图像像素、神经网络——天然并行的任务;
• 不适合:复杂的条件判断、串行依赖的任务——这些 GPU 反而干得慢。
为什么 AI 训练用 GPU
神经网络的核心运算就是矩阵乘法:一层网络 = 一个超大矩阵乘加。矩阵乘法天然可以切成千万个小块同时算——正好是 GPU 的主场。
图2-16 AI 训练:并行计算
深一层:GPU 也不是万能——它强在"并行的重复劳动",弱在"复杂的决策"。所以未来芯片的方向之一,是让不同的任务各找各的"特种部队"(第8章:Chiplet、存算一体)。
小结:从晶体管到系统
把这一章的旅程倒过来看:晶体管(开关)→ 逻辑门(约定)→ 组合电路(计算)→ 时序电路(记忆)→ 模拟电路(对话)→ CPU(跑指令)→ GPU(并行)。
第1章说"芯片 = 开关的城市"——现在你知道了这座城市如何运转:门做逻辑,环做记忆,时钟定节拍,指令定任务。一切计算,都是开关在听话。
预告:这些电路是怎么被"造"出来的?几十亿个开关,怎么被"印"到一小片硅上?——第3章,我们从一粒沙子出发,旅程正式开始。
338