世界算力简史(上)
2023-08-07 18:17

世界算力简史(上)

本文来自微信公众号:鲜枣课堂 (ID:xzclasscom),作者:小枣君,题图来自:视觉中国(公共领域,图为被围观的ENIAC)

文章摘要
1. 1946年2月14日,美国宾夕法尼亚州东南部的费城诞生了人类第一台通用电子计算机——ENIAC(埃尼阿克)。

2. ENIAC采用了17468根真空管,每秒能够完成5000次加法或400次乘法,标志着人类正式迈入了电子计算机时代。

3. 人类早期使用大脑作为原生算力工具,后来发明了结绳记事、文字和数字等工具来表达和记录信息。

4. 从远古时期开始,人类通过计算解决问题,逐渐发展出算力工具,如草绳、石头、算筹、算盘等。

5. 17世纪后,机械计算机开始出现,如计算尺、差分机等,为计算机的发展奠定了基础。

6. 20世纪初,电子技术的发展推动了计算机的电子化转型,如真空管、打孔卡、磁鼓存储器等的应用。

7. 1940年代,电子计算机的诞生,如ABC、Mark I和ENIAC,标志着人类算力进入了数字电子计算机时代。

1946年2月14日,在美国宾夕法尼亚州东南部的费城,人们正在像以往一样正常工作和生活。忽然,他们发现,房间里的灯暗了下来。


刚刚经历过二战的人们,对这种情况习以为常。他们心想:“是不是哪里的电力线路又坏了?”


其实,灯之所以会暗,并不是因为线路问题,而是在离他们不远的宾夕法尼亚大学,诞生了一个“庞然大物”。


这个“庞然大物”占地170平方米,重达30吨。它以电为生,功率高达150千瓦。它的启动,直接拉低了附近居民用电的电压,所以导致电灯变暗。


这个“庞然大物”究竟是什么呢?


没错,它就是人类第一台通用电子计算机——ENIAC(埃尼阿克)


ENIAC/历史图片


ENIAC采用了17468根真空管(这也是它体积大、耗电高的主要原因之一),每秒能够完成5000次加法或400次乘法,约为手工计算的20万倍。


它的诞生,对整个人类来说拥有极为重要的意义,标志着人类正式迈入了电子计算机时代。


从结绳记事到阿拉伯数字:算力的萌芽


ENIAC是一个里程碑。它将人类算力发展史分为了前后两个部分。在继续下半部分之前,我们还是先来回顾一下上半部分的历程。


从远古时期开始,人类就掌握了算力。我们的“原生”算力工具,就是大脑。


我们运用算力的过程,叫做“思考”。相对应的,我们收集信息的过程,叫做“观察”。


所谓“计算”,其实就是解决问题的过程。遇到问题,通过计算解决问题,就实现了进步和发展。


在整个过程中,人类是主体,信息是输入和输出物。经验和技术,则是方法。而完成整个计算过程的能力,就是算力(Computing Power)



动物也有大脑,也有算力,但是远远不如我们强劲。在漫长的进化过程中,我们的大脑越来越发达,最终帮助我们从万物生灵中脱颖而出,成为了地球的主宰。


在人类早期阶段,之所以需要算力,是为了生存。主要的计算内容,是如何狩猎,如何防范袭击,如何繁衍后代。


后来,有了基本的生存保障,人类就开始将更多的算力用于改善生存质量,例如搭建房屋、交易物品、制造工具等。


计算是对信息进行处理的过程。所以,如何表达和记录信息,是实施计算的第一步。


在原始社会,为了更好地描述自己观察到的信息(所见、所闻、所想),也为了更方便地进行信息沟通,就开始绘画。


原始人的壁画


后来,在绘画的基础上,又发明了文字。


文字,其实就是用表意符号对信息进行“编码”。


它是物理世界和精神世界的一种映射和表达。有了文字,信息的记录和传递效率大幅提升,人类社会有了更强的联结力,历史和文明也更易于传承。


文字里面,还有一种很特殊的符号,那就是数字。


所有的人类早期先进文明,都有自己的文字,也有自己的数字系统。例如巴比伦文明的六十进制,玛雅文明的二十进制或十八进制,中国和古埃及的十进制。


数字出现后,人们将计数和算数的过程,称为计算。(我们姑且将前面宏观的计算称为“广义的计算”,这里称为“狭义的计算”。)


古希腊在数字和计算上比较领先,很早就创立了算术、几何、代数等独立学科。


古希腊思想家、哲学家、数学家毕达哥拉斯发现并证明了勾股定理,是那一时期计算水平的标志。


毕达哥拉斯


后来,毕达哥拉斯学派主张用数来解释一切,认为不仅万物都包含数,而且“万物皆是数”。


现在看来,这种思想极具前瞻性。也有人将其改成:“万物皆比特”。


人类社会不断进步,计算需求也变得越来越复杂。仅仅依靠大脑这个“原生”算力工具,不太够用。即便是用上手指、脚趾,也不行。所以,我们开始借助外部算力工具。


最早期,我们使用的外部算力工具是草绳、石头,也就是所谓“结绳记事”


中国关于结绳记事的记载出自《易经》中的《系辞下》:“上古结绳而治,后世圣人易之以书契。” 我们现在常见的中国结,也源于“结绳记事”。


后来,文明继续发展,我们有了算筹(一种用于计算的小棍子)


在中国,算筹诞生于春秋战国时期。我们经常用到的成语,例如运筹帷幄、一筹莫展、技高一筹等,都是和算筹有关。


公元480年,祖冲之把圆周率精确计算到小数点后第七位(3.1415926),采用的工具就是算筹。他的这一记录,保持了900多年。


祖冲之


除了算筹之外,我们还有一个更知名的算力工具,那就是算盘


算盘的具体诞生时间已经无从考证。有人说是秦朝,也有人说是东汉。东汉时期徐岳的著作《数术记遗》中,最早出现了“珠算”这个字眼。


算盘的历史价值不需要我多说。直到现在,我们还能看到它的身影。


公元3世纪,笈多王朝的古印度人发明了阿拉伯数字,意义重大。后来,阿拉伯帝国崛起,将阿拉伯数字带到了欧洲。


同样被带到欧洲的,还有我们中国四大发明之一的造纸术


前面我提到,图画和文字是人类表达信息的方式。这些信息,肯定是需要载体的。早期的载体,是龟甲、兽骨、兽皮、竹简、木牍、缣帛。这些载体要么稀少,要么昂贵,要么无法长期保存。


西汉时期,造纸术在中国出现,但工艺简陋,质量不佳。后来,东汉元兴元年(105年),宦官蔡伦总结前人经验,对造纸工艺进行改进,显著提升了纸的质量,也为纸的普及奠定了基础。


蔡伦


纸的出现和普及,大大方便了信息的记录和传递,有利于文化传播,也提升了生产效率。


阿拉伯数字和造纸术传入欧洲,前者取代了冗长的罗马数字,后者取代了昂贵的羊皮和小牛皮。再加上后来,中国的印刷术又传了过去,大大促进了欧洲文化的发展。


这一切,也为后来的文艺复兴和科技萌芽铺平了道路。


从计算尺到差分机:算力的蓄力


公元14世纪,正如大家所知道的那样,欧洲开启了文艺复兴,人文主义的思潮占据主流,人们开始倡导通过观察和实验来认识世界。


到了16世纪,欧洲的科技就开始爆发了。


那一时期,整个欧洲群星璀璨,艺术和科学领域硕果累累,生产力水平直线上升。


数学作为所有科学学科的基础,取得的研究进展是最大的。解析几何学、微积分等,都诞生了。一大堆天才数学家,输出了海量的研究成果,不仅为其它学科的腾飞奠定了基础,还直接促成了后来的工业革命。


当时,为了更好地服务于数学计算,人们发明了新型的算力工具。例如1625年,英国数学家威廉·奥特雷德(William Oughtred)发明了计算尺。1642 年,法国数学家布莱兹·帕斯卡(Blaise Pascal)发明了人类最早的机械计算机。


这些发明,可以辅助完成对数计算、三角函数计算、开根计算等复杂任务,提升计算效率。


后来,17世纪末到18世纪中,德国数学家戈特弗里德·威廉·莱布尼茨(Gottfried Leibniz)等人,先后设计和制造了能够计算乘法的设备,将算力工具提升到更高的层级。


莱布尼茨


18世纪60年代,第一次工业革命爆发,将人类带入蒸汽时代。


动力机械崛起,开始取代手工劳动,成为主要生产力。算力工具,也开始向更先进的机械化方向演进。


算力工具想要机械化,首先要解决信息表达方式的问题。因为机器是不识字的,先要发明让机器看得懂的“语言”,才能让机器按命令工作。


这个早期的机器语言表达方式,就是“打孔”


1725年,法国人巴斯勒·布乔(Basile Bouchon)发明了打孔卡(穿孔卡),用于织布机。


织布机在编织过程中,编织针会往复滑动。根据打孔卡上的小孔,编织针可以勾起经线(没有孔,就不勾),从而绘制图案。换言之,打孔卡是存储了“图案程序”的存储器,对织布机进行控制。


这一发明,标志着人类机械化信息存储形式的开端。


1801年,法国织机工匠约瑟夫·马里尔·雅卡尔(Joseph Marie Jdakacquard)对打孔卡进行了升级。


他将打孔卡按一定顺序捆绑,变成了带状,创造了穿孔纸带(Punched Tape)的雏形。这种纸带,被应用于提花织机。



大家应该能看出来,打孔其实就是一种信息编码方式。它比文字和数字更加简单,让人与机器可以进行“沟通”。


1811年,20岁的英国发明家查尔斯·巴贝奇(Charles Babbage)从提花织机中获得灵感,开始设计制造一台名叫“差分机”的设备。


巴贝奇


十年后,这台“差分机”制造完成,可以进行多种函数运算,运算精度达到了6位小数。


在这个成就的鼓舞下,巴贝奇又启动了第二台“差分机”的研究,精度将达到20位。英国政府也资助了他的研究。


可惜的是,因为这个机器的设计太过超前(有25000多个零件,主要零件的误差不得超过每英寸千分之一),当时的机械制造水平,很难达到精度要求。所以,在历经二十年,耗费了巨额资金之后,这个“差分机”还是未能制造出来。


后人复刻的差分机二号,验证了可以正常工作


在这个过程中,1834年,巴贝奇还提出了一个更大胆的想法——设计一个以蒸汽为动力的通用数学计算机,能够自动解算有100个变量的复杂算题,每个数可达25位,速度可达每秒钟运算一次。


巴贝奇把这种新的设计叫做“分析机”。


“分析机”和第二台差分机一样,最终未能制造成功。但“分析机”中包含的很多设计,例如送入和取出数据的机构、以及“存储库”和“运算室”,和一百多年后的计算机如出一辙。


因此,“分析机”被后人称为世界上第一台计算机。而巴贝奇,则被誉为计算机鼻祖。


值得一提的是,与巴贝奇进行技术合作的,有一个小姐姐,名字叫阿达·奥古斯塔(Ada Augusta)。她是诗人拜伦的独生女。当时,她负责为“分析机”编程。她也因此被称为世界上第一个“程序员”。


阿达·奥古斯塔


1878年,瑞典发明家奥涅尔在俄国发明了一种齿数可变的齿轮计算机,也算是机械计算机的代表之一。


到了1885年,已经有越来越多的计算机在欧美国家诞生,成为一种风潮。


1890年,一个牛人的出现,让打卡孔技术进一步发扬光大。这个人,就是德裔美国人——赫尔曼·何乐礼(Herman Hollerith)


赫尔曼·何乐礼


赫尔曼·何乐礼在打孔卡的基础上,发明了打孔卡制表机,专门用于收集并统计人口普查数据。


打孔卡制表机


打孔卡制表机的统计速度更快。


根据史料记载,在1890年的美国人口普查中,通过打孔制片和打孔机,仅6周就完成了统计工作,得出了准确的数据(62622250人)。而此前1880年的美国人口普查,数据全靠手工处理,历时7年才得出最终结果。


如此巨大的效率提升,使得制表机在各个行业迅速普及。它标志着半自动化数据处理时代的开始。


打孔卡技术,直到1960年代都还在使用


后来,1896年,赫尔曼·何乐礼创办了制表机器公司(Tabulating Machine Company)。这家公司,就是IBM公司的前身。


从图灵机到ENIAC:算力的崛起


进入20世纪后,随着电子技术的飞速发展,计算机就开始了由机械向电子的过渡。


机械时代的计算机,可以通过齿轮或者带刻度的圆柱,进行数字的标记。到了电子时代,这样做就不太合适了。电的特点是有(通电)和无(不通电),它比较适合的,显然是二进制。


17世纪后半叶,德国数学家莱布尼茨率先提出了二进制。(是的,又是他。他也是微积分的发明人。)他形象地用1表示上帝,用0表示虚无,上帝从虚无中创造出所有的实物。


19世纪中叶,英国数理逻辑学家乔治·布尔(George Boole)提出了逻辑代数(后来被人们称为“布尔代数”)


乔治·布尔


他通过二进制,将算数和简单的逻辑统一起来,通过使用与、或、非等逻辑运算符,以及基于真和假的二值逻辑,为我们提供了一种理解和操纵逻辑关系的工具。


布尔代数为计算机的二进制、开关逻辑电路的设计铺平了道路,并最终为现代计算机的发明奠定了数学基础。


除了逻辑基础之外,硬件当然也要跟上。


1904年,英国人约翰·安布罗斯·弗莱明(John Ambrose Fleming)发明了真空电子二极管,可以实现单向导电,检波、整流。1906年,美国人德·福雷斯特(Lee De Forest)在二极管的基础上加以改进,发明了真空三级电子管,可以实现信号放大。


德·福雷斯特


真空管的出现,推动人类电子技术向前迈了一大步,补足了硬件短板。


那一时期,信息存储技术也有了很大进步。


1898年,丹麦工程师瓦蒂玛·保尔森(Valdemar Poulsen)在自己的电报机中首次采用了磁线技术,使之成为人类第一个实用的磁声记录和再现设备。


1928年,德国工程师弗里茨·普弗勒默(Fritz Pfleumer)发明了录音磁带。1932年,奥地利工程师古斯塔夫·陶谢克(Gustav Tauschek)发明了磁鼓存储器。磁性存储时代正式开启。


1937年,英国剑桥大学的阿兰·图灵(Alan M. Turing)提出了被后人称之为“图灵机”的数学模型。这为现代计算机的逻辑工作方式指引了方向。


阿兰·图灵


同样是1937年,贝尔试验室的乔治·斯蒂比兹(George Stibitz)展示了用继电器表示二进制的装置。尽管仅仅是个展示品,但却是第一台二进制电子计算机。


二战爆发后,军事需求大大刺激了算力的发展。军方需要更加强劲的算力,完成密码加密解密、火炮弹道计算甚至火箭发射等重要任务。


1941年12月,德国人康拉德·楚泽(Konrad Zuse)制作完成了世界上第一台可编程电子计算机——Z3。这台计算机用于空气动力学计算,使用了大量的继电器和真空管,每秒钟能作3到4次加法运算,一次乘法需要3到5秒。后来,Z3毁于柏林轰炸。


康拉德·楚泽和Z3(复刻版)


1942年,美国爱荷华州立大学物理系副教授阿塔纳索夫(John V.Atanasoff)和他的学生克利福德·贝瑞(Clifford Berry)设计制造了世界上第一台电子计算机,名为“ABC”(Atanasoff-Berry Computer),也被称为“珍妮机”。


ABC使用了IBM的80列穿孔卡作为输入和输出,使用真空管处理二进制格式的数据。数据的存储,则是使用的再生电容磁鼓存储器(Regenerative Capacitor Memory)


虽然ABC无法进行编程(仅用于求解线性方程组)但使用二进制数字来表示数据、使用电子元件进行计算(而非机械开关)、计算和内存分离等特点,都足以证明它是一台现代意义上的数字电子计算机。


1944年,在IBM公司的支持下,哈佛大学博士霍华德·艾肯(Howard Aiken)成功研制了通用电子计算机——Mark I,也称ASCC(Automatic Sequence Controlled Calculator,自动控制序列计算器)


霍华德·艾肯与MARK I


Mark I长16米,重4.3吨,拥有75万个零部件,使用了800公里长的电线,300万个连接、3500个多极继电器、2225个计数器。


它可以在一秒钟内进行3次加法或减法。乘法需要6秒,除法需要15.3秒,对数或三角函数需要超过1分钟。当时,它被用来为美国海军计算弹道火力表。


值得一提的是,第一个在Mark I上运行的程序是由冯·诺依曼(John von Neumann)于1944年3月29日发起的。当时,冯·诺依曼正在研究曼哈顿计划,需要确定内爆是否是原子弹的可行选择。


冯·诺依曼


还需要提一句,Mark I的研究团队中,有一位名叫格蕾丝·霍珀(Grace Hopper)的海军预备役女军官。“bug”这个词,就是她引入的。


1945年,Mark II在运行过程中,飞进了一只飞蛾,导致出现故障。霍珀消灭了飞蛾,解决了问题,成为第一个“调试(debug)”计算机的人。


这只飞蛾还被贴在Mark II的日志上


终于,到了1946年2月,如本文开头所说,ENIAC诞生了。


正在操作ENIAC的女程序员


这里需要澄清一下,虽然人们一贯将ENIAC称为世界上第一台数字式电子计算机,但这个说法其实是有争议的。前面提到的ABC,就是这个称谓的有力争夺者。


ENIAC甚至称不上第二。那一时期问世的数字电子计算机很多,严格来说,ENIAC只能排第11。国外主流观点认为,ENIAC的设计者盗窃了ABC的设计。1973年,美国法院也裁定,取消了ENIAC的专利,认定ENIAC专利是ABC的衍生品。


关于谁是第一,我们就不讨论了。反正,1945年左右,电子计算机诞生的浪潮,标志着人类算力正式进入了数字电子计算机时代。


波澜壮阔的信息技术革命,即将开启。


参考文献

1、《计算机的发展历史汇总》,网络;

2、《算力发展简史》, 庐山真容;

3、《谁发明了 Mark I 计算机?》,thoughtco.com;

4、《机械史上的巅峰之作!来看看差分机》,前沿数控技术;

5、维基百科、百度百科。


本文来自微信公众号:鲜枣课堂 (ID:xzclasscom),作者:小枣君

本内容为作者独立观点,不代表虎嗅立场。未经允许不得转载,授权事宜请联系hezuo@huxiu.com
如对本稿件有异议或投诉,请联系tougao@huxiu.com
正在改变与想要改变世界的人,都在 虎嗅APP
赞赏
关闭赞赏 开启赞赏

支持一下   修改

确定