## 《柏拉图和技术呆子》2:硬件的大智慧

如果计算机芯片这个东西不能让你由衷地赞叹，你肯定是个一无所知的人。

芯片是人类最高技术水平的呈现。一个典型的CPU上芯片的面积大概只有不到两平方厘米，而上面有十几亿个晶体管。这东西现在无处不在，所有计算机全靠CPU运行各种程序，芯片是计算机的大脑。咱们先不用考虑那么小的晶体管是怎么造出来的，我想先请你思考一个问题 ——

怎样管理十几亿个东西？

这可不是十几亿个原子或者十几亿粒沙子。所有这十几亿个晶体管都必须按照某种严格的秩序连接在一起，每一处连接都得精心安排。请问这是怎么做到的？人的认知能力非常有限，绝大多数人连500个人的名字都记不住 —— 而设计芯片，可是相当于给全中国的人安排工作。

这不是什么“工匠精神”、什么“巧干加实干”、什么“文化传承”、什么“充分发挥市场作用”或者什么“集中力量办大事”就能做的事情。你需要中外古代都没有的、现代化的一流智慧。

今天继续讲 Lee 教授的《柏拉图和技术呆子》这本书。上一讲我们提到，工程师智慧的关键词叫“模型”。芯片的秘密就在“模型”之中。

芯片，是模型的模型的模型的模型。

不知道你对“场效应晶体管”的熟悉程度如何。这个词听起来有点吓人，如果没学习过数字电路相关的课程，你可能都没听说过这种东西。下面图中的就是一个最新型的场效应晶体管 ——

![图片](https://piccdn3.umiwi.com/img/201807/09/201807091759130788508408.jpg)

它最细微处的结构尺度只有10纳米 —— 也就是一亿分之一米，相当于20个硅原子并在一起的宽度！

场效应晶体管涉及到精深的物理学，但是在计算机芯片上，它只有一个非常简单的功能 —— 当你听说晶体管的时候，你只需想到一个东西：开关。

我们可以用下面这张简化图代表一个晶体管 ——

![图片](https://piccdn3.umiwi.com/img/201807/09/201807091759534512019869.jpg)

它有三个“级”，代表电流的输入和输出。左边那个叫做“栅极（Gate）”，上下一个叫“源极（Source）”，一个叫“漏极（Drain）”。晶体管的运行规则很简单：

* 如果栅级的电压高，源极和漏极之间就会联通，相当于开关打开；

* 如果栅级的电压低，源极和漏极之间就会断开，相当于开关关闭。

还有一种叫做“互补”晶体管，如下图所示 ——

![图片](https://piccdn3.umiwi.com/img/201807/09/201807091800311642106179.jpg)

注意图中连接栅极的线段有个空心的圆圈。互补晶体管的区别在于，它是栅极电压高的时候关闭，栅极电压低的时候打开。

我们看，源极和漏极之间有时候导电有时候不导电，所以这是个“半导体” —— 晶体管是半导体物理学的伟大成就……其实准确地说，是工程师为了研发更好的晶体管而发展了半导体物理学。

但是在这里你不需要理解半导体物理学。你只需知道晶体管是个开关。

开关。这么简单的东西，就能实现一切计算功能！

说到这里我们必须再次请出大神克劳德·香农（Shannon）。我们在《一个基于信息论的人生观》这期专栏已经用过一次“香农的洞见”这个小标题，当时提到他是信息论的祖师爷。而这种祖师爷级别的洞见，香农有不止一个。

![图片](https://piccdn3.umiwi.com/img/201807/09/201807091802198730799980.jpg)

1940年的香农才22岁，在麻省理工学院获得硕士学位，毕业时他写了一篇硕士学位论文。这可能是历史上应用最广泛的一篇硕士论文。在这篇论文里，香农解释了怎么用最简单的开关，实现*一切*逻辑运算。

那时候还没有晶体管这种东西，大概只有电子管、甚至可能是一些用机械方式来实现的开关。而香农已经看出来了，只要你有开关，你就能有一切。

这个思想的关键是分层。咱们一层一层解说。

首先我们要用一个晶体管和一个互补晶体管来实现一个叫做“非门”的东西。所有信息都可以只用0和1两个数字编码。非门的功能就是你给它输入0它给你输出1，你输入1它输出0。我们用高电压代表1，低电压代表0。只要把一个晶体管和一个互补晶体管像下图这样连在一起，就是一个非门 ——

![图片](https://piccdn3.umiwi.com/img/201807/09/201807091803088968613017.jpg)

比如你在输入端（in）接一个3伏的高压（代表1），像图中中间的情况，我们知道下面的晶体管会“开”，所以输出（out）会和下面的低压相连接，输出就是低压（代表0）。反过来说如果你输入的是低压，那就是图中右边的情况，上面的互补晶体管会开，输出就会和上面的高压相连接，输出就是高压。

“非门”是一个逻辑门。一般来说，所谓逻辑门的功能就是对输入的0或者1进行操作，形成输出。逻辑门可以有两个输入。比如所谓“与门”，就是当且仅当输入的A和B都是1的时候，它才会输出1，否则一律输出0。类似地，还有“或门”、“与非门”、“异或门”等等。

![图片](https://piccdn3.umiwi.com/img/201807/09/201807091804327127606923.jpg)

上面这张图中列举了几个基本的逻辑门，你根本不需要记住它们 —— 但是你应该记住香农告诉我们的两件事。

第一，所有这些基本逻辑门都可以用晶体管搭建。第二，用这些逻辑门组合，就可以实现各种运算。

下面这张图就是用67个逻辑门组成的一个“运算器（ALU）”，制作这些逻辑门总共用了大约400个晶体管。

![图片](https://piccdn3.umiwi.com/img/201807/09/201807091805255325887577.jpg)

这个运算器允许你输入A和B两个二进制的4位数，它能判断A和B是否相等，还能计算A+B和A-B。 香农在他的那篇硕士论文里就设计了一个类似的运算器。

运算器是计算机 CPU 的一部分，CPU 中还有“数字同步逻辑”之类的组件，但是不管 CPU 有多复杂多高级，它也是用各种逻辑门组成的，而逻辑门是用开关做的。所以整个 CPU 就是一个开关网络！

开关的功能是如此的简单。它只能根据两种命令完成两个动作，它是纯机械化地事，没有任何智能。但是亿万个这样的开关组成在一起，就是 CPU，就能运行软件，就能实现人工智能。

我们总结一下，这整个过程包含了四层的模型 ——

1. 最底层的是半导体物理学，

2. 晶体管开关，是建立在半导体物理学上的模型，

3. 逻辑门，是建立在开关上的模型，

4. CPU，是建立在逻辑门上的模型。

这个层级系统很像是人类的组织：中央管省，省管市，市管区，区管基层单位。人类组织是人类“想象的共同体”，CPU 的层级结构也是工程师想象的共同体。

晶体管能做多小，这是物理学决定的。但是除此之外，CPU 就跟物理学没啥关系了。剩下的事都是工程师的头脑里的设计，所以叫“模型”。从开关往上一层一层的构建，都是人为设计的，只受到想象力的限制。而且这种设计肯定不是唯一的 —— 今天的计算机是历史的产物，保留了香农的个人风格，已经成了一个文化 —— 如果计算机起源于中国，从晶体管到CPU也许会是非常不同的设计。

但是请注意，这种分层的大结构，这种每一层模型是建立在前一层的基础之上的思想，很可能已经是最好的办法。

这种结构的好处是，在每一层上搞设计，你都只需考虑它紧挨着的下一层。设计逻辑门不需要考虑半导体物理学，设计运算器不需要考虑晶体管。

像这样的“层”，可以称为“平台” —— 给你搭一个平台，设计者可以在平台上随便唱戏。

有人说平台的好处就是给了设计者“免于选择的自由（freedom from choice）”。比如“得到”就是个平台 —— 我写好文章就把文本交给主编，你想留言就直接输入文字 —— 咱俩都没有办法选择发布位置、格式和字体等等细节，但这也意味着咱们不用操心这些。每一层平台都在减少上一层的选项。选项变少了，集中精力创作才成为可能。最后程序员只需要对一块 CPU、而不是十几亿个晶体管编程。

以我之见，这种层级平台之间的合作，和亚当·斯密说的那种人与人横向的劳动分工不是一个故事。想要发明铅笔这种东西，你是先看看世界上都有些什么，把不同东西拼凑在一起综合成一个新东西。而 CPU 的平台结构则完全是工程师的顶层设计！

除了最底层是物理学给的之外，其他每一层都首先是工程师想出来的模型。CPU 是个硬件，而设计 CPU 却几乎全是理论 —— 就好像艺术创作一样。

这可不是自然界的逻辑。你可以把生物体分成好多层，比如分为器官、组织、细胞，但是这种分层跟设计 CPU 可不一样。自然界有很多所谓“涌现”现象，也就是整体会表现出个体运动解释不了的性质 —— 哪怕你把这一层研究透彻了，你也无法解释下一层是怎么回事。

只有 CPU 这种人为设计的分层，才有那么清楚的逻辑结构。这个逻辑结构不但给了设计师自由，而且保证了通用性。

比如2001年，加州大学伯克利分校的华人教授胡正明和人合作发明了一种新的晶体管，叫“鳍式场效应晶体管（FinFET）” —— 就是最前面那张图上的那个晶体管 —— 已经被用在了英特尔的 Haswell 系列 CPU 上。这种晶体管跟以前的非常不一样，但是英特尔并不需要专门为它重新设计 CPU，用户除了发现速度更快能耗更低，完全感受不到晶体管的不同 —— 因为往上每一层的做法都是完全一样的。

最底层的硬件可以随时变，但是每一层的逻辑范式可以长期不变。这大概也是为什么想在芯片领域“破坏性创新”如此困难。香农以来的芯片结构已经被历史积累成了一个文化。

下一讲咱们再说软件。

![图片](https://piccdn3.umiwi.com/img/201807/09/201807091914281781052590.jpg)
