擦掉一个比特,要花多少焦耳
这本书里所有的量都是无量纲的——比特是个纯数。这一章会出现全书唯一一个有物理单位的常数,而它把信息论和热力学焊死在了一起。
现代 CPU 里一次晶体管开关消耗的能量,大约是「擦掉一个比特的物理下限」的多少倍?
一只 150 岁的妖怪
1867 年,麦克斯韦提出了一个思想实验,目的是攻击热力学第二定律。
一个盒子,中间有一道隔板,隔板上有一扇小门。左右两边都是同样温度的气体。
门口坐着一只小妖怪。它观察每一个飞过来的分子:快的就放到右边,慢的就放到左边。
过一段时间,右边全是快分子(热),左边全是慢分子(冷)。温差凭空出现了,而妖怪没有做功(开关一扇无摩擦的门不耗能)。
有了温差就能驱动热机做功。第二定律被违反了。
这只妖怪困扰了物理学界一百多年。人们试过各种解释——「观察分子要用光,光要能量」(Szilard 1929 的思路),但都不够彻底。
真正的答案在 1961 年由 IBM 的 Rolf Landauer 给出,而它来自一个完全不同的方向:
在温度 T 的环境中,擦除一个比特的信息,至少要向环境散掉 k·T·ln2 的能量。
注意它说的不是「计算」,是「擦除」。这个区别是整件事的关键。
算一下这个数:
E = k · T · ln2 k = 1.380649 × 10⁻²³ J/K # 玻尔兹曼常数(2019 年起是精确定义值) T = 300 K # 室温,约 27 ℃ ln2 = 0.6931471806 # 「一个比特」换成自然对数 E = 1.380649e-23 × 300 × 0.693147 = 【2.871 × 10⁻²¹ 焦耳】 = 2.871 泽普托焦耳(zJ) = 0.01792 电子伏特
为什么是「擦除」而不是「计算」
这是这一章最重要的一点,而且它一点都不显然。
考虑两个操作:
操作一:NOT 0 → 1, 1 → 0 可逆。给我输出,我能倒推输入。 状态数:2 进,2 出。【没有信息被销毁。】 操作二:AND (0,0)→0 (0,1)→0 (1,0)→0 (1,1)→1 不可逆。输出 0 时,你不知道输入是三种里的哪一种。 状态数:4 进,2 出。【一个比特被销毁了。】
热力学第二定律说:孤立系统的熵不减。
当你把 4 个状态压成 2 个,系统本身的熵少了 1 比特。而第二定律不允许总熵减少,所以这 1 比特必须跑到环境里去——变成热。
而「1 比特的熵」换算成热力学单位,正好是 k·ln2 焦耳每开尔文;在温度 T 下散掉,就是 k·T·ln2 焦耳。
所以那个 ln2 不是凑出来的,它就是「比特换成奈特」的换算因子。第 4 章说信息熵和热力学熵是同一个量的两套单位——这个公式就是那句话的收据。
妖怪是怎么死的
Charles Bennett 在 1982 年用兰道尔原理彻底解决了麦克斯韦妖:
妖怪必须【记住】每个分子的快慢,才能决定开不开门。
它的记忆是有限的。
记忆满了之后,它必须【擦掉】旧记录才能继续工作。
而每擦一个比特,要散掉 k·T·ln2 的热。
算总账:妖怪通过分拣得到的可用能量,
恰好【不多于】它擦除记忆必须散掉的热。
第二定律安然无恙。
妖怪不是败在「观察要花能量」上——Bennett 证明了观察原则上可以做到不耗能。
它败在「记忆是有限的,而忘记要付钱」上。
信息不是一个抽象的记账概念,它是一种物理资源。你脑子里、硬盘上、寄存器里的每一个比特,都占着这个宇宙里的一点点热力学额度。而清空它,要向宇宙缴税。
惠勒那句著名的 "It from bit"(万物源自比特),说的就是这一层。这句话常被过度解读成某种神秘主义,但它有一个非常朴素的版本:信息不能脱离物理载体存在,所以关于信息的定律必然也是物理定律。
这个数被测出来了
2012 年,一个法德联合团队(Bérut 等人)在《自然》上发表了兰道尔极限的直接实验验证。
做法很巧妙:用光镊在液体里困住一个直径几微米的胶体小球,用两个光阱做成一个「双势阱」——球在左边势阱代表 0,在右边代表 1。然后通过操纵势阱,强制把球从「随机在某一边」变成「一定在右边」——这就是一次比特擦除。
测量整个过程中耗散的热量,结果确实收敛到 kT·ln2,而且擦得越慢越接近这个下界(快速擦除会有额外耗散,这也符合理论)。
一个 1961 年的理论预言,五十一年后在一个胶体小球上被量出来了。
离现实还有多远
| 一次操作 | 大致能耗 | 是兰道尔极限的 |
|---|---|---|
| 兰道尔极限(300 K,擦 1 比特) | 2.87 × 10⁻²¹ J | 1 倍 |
| 一次 CMOS 晶体管开关(量级估计) | ~10⁻¹⁷ J | 3483 倍 |
| 一次 64 位整数加法(量级估计) | ~10⁻¹³ J | 约 3500 万倍 |
| 一次 DRAM 访问(量级估计) | ~10⁻¹¹ J | 约 35 亿倍 |
(这些是数量级参考,具体数值随工艺和电压差异很大。)
说它大:三四个数量级意味着理论上还有一千到一万倍的能效提升空间。这不是小数目。
说它小:芯片能效在过去几十年提升了很多个数量级,而现在剩下的余量只有三四个。按历史速度,这点余量撑不了很久。而且实际上你永远碰不到极限——在接近 kT 的能量尺度上工作,热噪声会让电路频繁出错。
所以真实的工程边界比兰道尔极限高得多。要在噪声中可靠地区分 0 和 1,通常需要能量势垒远高于 kT(一般认为要几十倍以上),否则数据会自己翻转——这正是第 14 章那个 BSC 在物理层的来源。
可靠性要花钱。这句话在信息论里是「码率要低于容量」,在物理里是「能量势垒要远高于 kT」。同一件事。
可逆计算:一条尚未走通的出路
如果只有「擦除」要付钱,那么原则上——一台只做可逆操作的计算机,可以不耗能。
这不是幻想,是有理论基础的:
- Toffoli 门和 Fredkin 门是通用的可逆逻辑门,任何计算都能用它们搭出来。
- Bennett 证明:任何计算都能改造成可逆的,代价是要保留中间结果(占空间),最后再「反向计算」把它们清掉。
- 绝热电路 / 自适应电荷回收是可逆计算的工程尝试,实验室里有原型。
但它至今没有实用化,原因很实在:可逆计算要求过程足够慢(趋于准静态),而慢就意味着性能差。目前看,用速度换能效在绝大多数场合不划算。
量子计算天然是可逆的(幺正演化必然可逆),这是它和兰道尔原理最直接的关联——但量子计算的能耗优势并不来自这里,而且测量本身仍然是不可逆的。
现实中计算耗能,是因为我们用的逻辑门(AND、OR)都是不可逆的,而且我们不停地在覆盖寄存器、清空缓存——每一次覆盖都是一次擦除。
另一个相关的错误直觉:
「数据中心的能耗主要花在存储上。」 静态存储原则上不耗能(硬盘上一个静止的磁畴不需要持续供能)。耗能的是读写、传输、和维持状态所需的刷新(DRAM 要不断刷新,这才是它耗电的原因)。这本书里 ln2 出现了三次,在三个完全不同的领域:
1. 第 4 章:热力学熵 ↔ 信息熵的换算
S = k · ln W vs H = log₂ n
比值 = k · ln2
2. 第 18 章:通信的能量下界
E_b / N₀ ≥ ln2 = −1.59 dB
3. 这一章:擦除一个比特的能量下界
E = k · T · ln2
它们全都来自同一件事:「一个比特」这个单位,是以 2 为底定义的,而物理世界的统计力学用的是自然对数。
所以每次一个信息论的量要换成物理单位,就会掉出一个 ln2。这个常数是两个世界之间的汇率。
选 A 的人高估了我们离极限有多近,选 D 的人低估了半导体工艺已经走了多远。
3500 倍这个数字的价值在于它同时说了两件相反的事:还有很大空间(三四个数量级),但空间是有限的(不是无穷)。摩尔定律的能效版本有一个明确的、由物理定律给出的终点——而我们离它已经不算太远了。
这一章的一句话
擦掉一个比特,宇宙向你收 kT·ln2 焦耳。这个价格杀死了麦克斯韦妖,也证明了信息熵和热力学熵是同一个东西——而只有「忘记」要付钱,「计算」本身不用。
下一章讲第二种边界,而它不是物理的,是控制的。
会有两条定律:一条说「你压不住你分辨不出来的东西」,另一条说「任何一个好的调节器,必然是被控对象的一个模型」。而这两条定律会顺手解释一件你可能一直觉得只是「人性问题」的事——为什么 KPI 一旦成为目标,就不再是好指标。