AI 速读
与非门是万能门:数学上功能完备,物理上更快更省,游戏与芯片都从这里开局。
上一篇认识了逻辑门全家桶。这一篇回答一个游戏开局就抛给你的问题:为什么只给一颗与非门(NAND)?
与非门是万能门#
打开《图灵完备》,开局只有一颗孤零零的与非门,没有 AND,没有 OR,更没有 XOR。游戏故意这样安排,因为这颗门有它的用处。
数学上有个概念叫功能完备(functional completeness):一个逻辑门(或门集合)如果能表达任意布尔函数,就称它是完备的。NAND 和 NOR 是仅有的两个单枪匹马就完备的门。
用与非门搭出其他门:
- 非门:把与非门的两个输入接在一起,
- 与门:与非门输出再接一个非门,
- 或门:用德摩根定律,
| 目标门 | 只用与非门怎么搭 |
|---|---|
| NOT | 两个输入短接 |
| AND | 与非门输出再接一个非门 |
| OR | 两个输入各自取反后进与非门 |
游戏想让你亲眼见证一件事:从一颗与非门出发,NOT、AND、OR、XOR 全都能「长」出来,然后是半加器、全加器、寄存器、ALU……最后是一台能跑程序的完整 CPU。这就是「图灵完备」这个名字的含义——光这一个门,就具备构造出任何计算装置的能力。
为什么不从 NOR 开始?NOR 同样是万能门。游戏选 NAND,一半是因为拼装规律简单直观,另一半是下面这个原因:现实世界的芯片也偏心 NAND。
物理世界也是这样吗#
是的,而且比你想的更彻底。教科书把 AND、OR 当「基础门」,但在真实芯片内部,AND、OR 反而是「高级门」,要靠更基础的 NAND 拼出来。
CMOS 工艺里 NAND 是主角#
现代芯片几乎全是 CMOS 工艺。在 CMOS 里,一个门的物理结构天然就是「一串晶体管」:
- NAND 门:下拉网络是两个 NMOS 串联,上拉网络是两个 PMOS 并联;
- NOR 门:正好反过来,两个 NMOS 并联,两个 PMOS 串联。
为什么这个差别如此重要?三个事实叠在一起:
- NMOS 比 PMOS 快。NMOS 靠电子导电,PMOS 靠空穴导电,电子的迁移率大约是空穴的 2~3 倍;
- 串联会拖慢速度。管子串联等于给电路加电阻,串得越多越慢;
- NAND 会分配。NAND 把快的 NMOS 串在一起承担串联的代价,让慢的 PMOS 并联避开串联的代价,又快又省面积。NOR 让慢的 PMOS 去串联,正好踩坑。
所以在同一代工艺下,NAND 比 NOR 更快、更小,自然成了芯片界的默认主力。
TTL 时代的遗产#
早在 1960 年代的 TTL 逻辑家族里,第一个批量生产的标准逻辑芯片就是 74LS00——一颗芯片上装了四个二输入与非门。整个 74 系列,包括那些封装成 AND/OR 的芯片,内部其实都是围绕与非门结构搭出来的。这颗小芯片至今还在教学和原型设计里使用。
现代 CPU 里呢#
同样。现代 CPU 的几十亿晶体管组织成标准单元库,NAND、NOR 以及 AOI/OAI(与或非复合门)才是主力,AND/OR 只是 NAND/NOR 各接一个反相器。你在游戏里从 NAND 手工搭门,和芯片设计公司在 EDA 软件里让工具自动做的那件事,其实就是同一件事。
一个彩蛋:NAND Flash#
闪存分两种,NAND Flash 和 NOR Flash,名字就来自这两个门。NAND Flash 的存储单元按「串联」方式连成一串,结构上就像 NAND 门的一串串联下拉晶体管。因为串联省面积、容量大,所以现在手机、U 盘、SSD 里的闪存几乎全是 NAND Flash。
小结#
游戏里从与非门开始,物理世界的芯片也从与非门开始。这里没有巧合——同一套物理和数学逻辑,在游戏和现实里各自重演了一遍。
下一篇进入算术层:布尔代数的定律与推导,看看「化简」怎么变成一步步可验算的算术题。