1936 年,一个年轻人用笔在纸上定义了「可计算」;十年后,一屋子发烫的玻璃灯泡把它变成了现实;再后来,指甲盖大小的硅片上住进了上千亿个开关。这条路上有六块里程碑:图灵机、真空管、ENIAC、冯·诺依曼架构、晶体管,以及今天的现代计算机。
先建立全局地图——所有后续章节,都是把其中一段放大细讲。
1936 年。它没有电、没有零件,只是纸上的一套规则——却是整个计算机科学的地基。
1936 年,数学家希尔伯特提出一个终极拷问:是不是任何「有明确规则的问题」都能被机器解决?(判定性问题)。当时没人能严格定义「计算」和「机器」。
24 岁的艾伦·图灵用一篇论文回答了这个问题:他先发明一台最简单的抽象机器,然后证明:这台机器能做的,就是「可计算」;做不到的,就是人类逻辑的边界。
本质只有三件事:读 → 按规则改写 → 移动,循环往复。
图灵机是「可计算性」的裁判:能模拟成图灵机的问题 = 可计算。同时它也证明了有些问题永远算不出来(如停机问题),为计算科学划出了逻辑边界。
图灵最惊人的发明:一台能读取「描述其他机器」的数据,然后模拟那台机器的特殊图灵机。这意味着——程序本身也可以当作数据存放。这是「软件」概念的思想源头。
任何能力达到「通用图灵机」的机器,都被称为图灵完备。你的手机、电脑、甚至很多编程语言、游戏(如《我的世界》里的红石电路)——都是图灵完备的。
现代计算机就是一台被工程化、电气化的通用图灵机:内存 = 纸带,CPU = 读写头,指令集 = 规则表。图灵写下的规则,至今一字未改地运行在每一颗芯片里。唯一的区别是:纸带换成 DRAM,读写头快了一亿亿倍。
有了图灵机这个「思想」,还需要能执行它的「零件」。1904 – 1906,真空管登场。
图灵机提出的「开关」,最初只能靠机械继电器实现:电磁铁吸合金属触点。它每秒最多动作几十次,而且触点会磨损、火花四溅、噪声震天。要造一台大型计算机,继电器要用几千个——慢得无法忍受。
1883 年,爱迪生发现:灯泡里的灯丝烧热后,附近的金属片竟能测到电流——电子竟然「飞出」了灯丝!1904 年弗莱明据此做出真空二极管;1906 年德福雷斯特在灯丝与阳极之间加了一个栅极,做出真空三极管——可以用微小电压控制强大电流,既能当放大器,也能当开关。
真空管就是一只能「听话」的灯泡:玻璃壳里抽成真空(防止灯丝被氧化烧断),内部靠「烤热金属放出电子」导电。在灯丝和阳极之间插一块栅极金属网,就能用一个小电压控制一个大电流——这就是 20 世纪上半叶所有电子设备的心脏。
1943 – 1946,宾夕法尼亚大学。真空管时代的巅峰,也是它的绝唱。
ENIAC(电子数值积分计算机),由莫奇利和埃克特团队在美国军方资助下建造,最初用于计算炮弹弹道。1946 年正式启用,是世界上第一台通用电子计算机——在此之前,机器要么只能算特定问题,要么根本不用电子元件。
ENIAC 用十进制计数(每个数字用 10 只真空管表示 0-9),而不是二进制。原因很朴素:设计团队最初只想做一台「超级计算器」给军方算弹道,没想过逻辑门和通用计算。结果是浪费了真空管——二进制本可以把同样的管子数量变成更大的计算能力。
ENIAC 的「程序」是插线板 + 旋钮开关:工程师把几千条线插到不同的插座上,拨好开关,机器才会按固定步骤运行。换一个计算任务,就要重新插拔接线、耗时数天。这正好把「图灵机把程序当数据」的思想逼上了台面——下一章的主角因此登场。
ENIAC 不是「第一台计算机」,而是第一台通用电子计算机。图灵机的抽象更早(1936),阿塔纳索夫-贝瑞计算机(ABC,1942)等电子机器也更早但不可编程通用。ENIAC 的独特地位在于:通用 + 电子 + 可编程——它第一次让人们相信,电子计算机可以取代人做海量计算。
1945 年。一次思想的飞跃:让机器「读自己要做的事」,而不是「被接线决定要做的事」。
把指令(程序)和数据一样,统统放进内存。CPU 从内存取出一条指令 → 执行 → 再取下一条……机器要做什么,完全由内存里的数据说了算。换程序 = 换内存内容,而不是换插线。1945 年冯·诺依曼在 EDVAC 报告中系统阐述了这一方案,因此被称为「冯·诺依曼架构」(同时期英国、宾大团队也有类似贡献,它本质是时代的共同结晶)。
指令和数据共享同一根总线、同一块内存,CPU 必须排队等着取数据——内存访问速度成为系统的天花板。为此工程师发明了缓存(Cache)、流水线、多级存储体系来「骗过」这个瓶颈。今天的计算机仍带着这个经典架构的基因。
1947 年 12 月,贝尔实验室。一只比米粒还小的器件,终结了真空管的统治。
巴丁、布拉顿、肖克利在贝尔实验室做出第一只点接触晶体管。它基于半导体(锗/硅)的物理特性:掺入杂质形成 N 型、P 型区,用电场控制电子能否流过——不需要加热灯丝、不需要真空、没有会烧断的零件。
三人因这一发明同获 1956 年诺贝尔物理学奖。从此「开关」从厘米级的灯泡,变成微米级、纳米级的固体。
| 对比项 | 真空管 | 晶体管 |
|---|---|---|
| 原理 | 加热灯丝烤出电子,真空内电场控制 | 半导体电场控制导电,固体内部切换 |
| 体积 | 灯泡大小(厘米级) | 微米/纳米级 |
| 单机数量 | ENIAC:1.8 万个占一房间 | 单芯片上千亿个 |
| 功耗 | 整机十几万瓦,如烤炉 | 数瓦,手机可捧手心 |
| 开关速度 | 微秒级 | 纳秒/皮秒级(GHz) |
| 寿命 | 灯丝易烧,天天换管 | 固态结构,理论寿命数十年 |
| 量产 | 手工逐个组装 | 光刻批量「印刷」 |
| 0/1 开关逻辑 | 导通=1 / 截止=0 | 导通=1 / 截止=0(规则没变) |
二进制、存储程序思想从 1945 年诞生后沿用至今,一字未改。晶体管解决的只是工程问题:做出极小、超快、廉价、可海量复制的 0-1 开关。图灵机的规则、冯·诺依曼的架构、晶体管的开关——三者各司其职,共同构成现代计算机。
1971 年至今。一台现代电脑 = 图灵机的思想 + 冯·诺依曼的架构 + 晶体管的零件。
定义了「计算」与「可计算」的边界。你写下的每一行代码,最终都翻译成图灵机规则表的执行。
决定了「计算机长什么样」:内存 + CPU + 输入输出。指令与数据同池存储,程序可加载、可替换、可升级。
决定了「开关能多快多小」:纳米级、GHz 级、千亿级。没有它,现代计算机仍是占满大楼的真空管巨兽。
你刷到的这条页面:图灵机定义了「能否计算」——能;冯·诺依曼架构指挥 CPU 取指-执行——每秒数十亿次;上千亿个晶体管在 3nm 硅片上疯狂开关——而这一切,都能追溯到 1936 年那张纸上写下的三行规则。
把一百年的历史压成一张图、几句话。
| 维度 | 图灵机(1936) | ENIAC(1946) | 现代计算机(今天) |
|---|---|---|---|
| 形态 | 纸上的抽象模型 | 30 吨的真空管巨兽 | 纳米级硅片芯片 |
| 「程序」 | 写在规则表里 | 靠插线板+旋钮接线 | 存进内存(存储程序) |
| 进位数制 | 任意符号 | 十进制 | 二进制 |
| 速度 | 概念机(无速度) | 每秒 5000 次加法 | 每秒数万亿次运算 |
| 开关载体 | — | 18000 只真空管 | 上千亿个晶体管 |
| 意义 | 定义「可计算」 | 证明电子计算可行 | 普惠地装进每个人的口袋 |
从图灵机到智能手机,「思想」从未变过,变的只是「零件」。图灵用纸定义了计算,冯·诺依曼把程序请进了内存,真空管证明了这条路走得通,晶体管让这条路走到底——今天你口袋里那个每秒运算数千亿次的小东西,本质上仍是 1936 年那台纸上的机器,只是快了一亿亿倍。