机电式计算机
# 机电式计算机
电、电路形成了机电式计算机
# 制表机:穿孔时代的到来
从1790年开始,美国每十年进行一次人口普查。百年间,随着人口繁衍和移民的增多,从1790年的400万不到,到1880年的5000多万,人口总数呈爆炸式地增长。
1880年开始的第10次人口普查,历时8年才最终完成,也就是说,他们在休息两年之后就要开始第11次普查了,而这一次普查,需要的时间恐怕要超过10年,那第12次、13次呢?本来就是10年一次的统计,如果每次耗时都在10年以上,这件事情就变得没有意义了。
因此,政府向全社会招标,寻找解决办法。赫尔曼·霍尔瑞斯,发明了制表机(tabulator/tabulating machine),顾名思义,就是专门用来制作数据统计表的机器。制表机主要由示数装置、穿孔机、读卡装置和分类箱组成。
制表机的工作是围绕穿孔卡片展开的:操作员先使用穿孔机制作穿孔卡片,再使用读卡装置识别卡片上的信息,机器自动完成统计并在示数表盘上实时显示结果,最后,将卡片投入分类箱的某一格中,进行分类存放,以供下次统计使用。
这就是用在1890年人口普查中的穿孔卡片,一张卡片记录一个居民的信息。卡片设计长约18.73cm,宽约8.26cm,正好是当时一张美元纸币的尺寸,因为霍尔瑞斯直接用财政部装钱的盒子来装卡片。
卡片设有300多个孔位,与雅卡尔和巴贝奇的做法一样,靠每个孔位打孔与否来表示信息。
统计的原理:当穿孔了,按下压板时,卡片有孔的地方,针可以通过,与水银接触,电路接通,没孔的地方,针就被挡住。然后电路就可以统计对应孔位的数据
在制表机的高效运转下,1890年的人口普查只花了6年时间。随着机器的改进,历史迎来了繁荣的数据处理时代。制表机也不再局限于人口普查,逐渐扩展到会计、库存管理等一些同样需要跟大数据打交道的领域。读卡速度也从每分钟100张逐步提高至每分钟2000张。随着识别精度的提高,卡片的孔距也越来越小,具有80~90列孔位的卡片成为主流,有些卡片的孔位甚至多达130列。机器的功能也逐渐强大,不再只是简单地统计穿孔数目,减法、乘法等运算能力陆续登场。
小历史
1911年,制表机公司与另外3家公司合并成立CTR公司(Computing-Tabulating-Recording Company),制表机公司作为其子公司继续运营到1933年。1924年,CTR更名为国际商业机器公司(International Business Machines Corporation),就是现在大名鼎鼎的IBM公司。可见,在如今众多年轻的IT公司中,拥有百年历史的IBM是位当之无愧的前辈,它完整地参与和见证了整个现代计算机的发展史。IBM保持了制表机公司在单元记录市场的龙头地位,到1955年,其每天生产的穿孔卡片多达7250万张。
2020年12月份,我国开始了第七次人口普查;2021年5月11日,第七次全国人口普查结果公布,仅仅用了4,5个月。
# 祖思机:第一台二进制可编程计算机
祖思出生于柏林,长大后在一家交通行业公司工作。在负责飞机在飞行过程中的受力分析,要解各种各样的微分方程。这份在外人眼中的高智商工作,在祖思看来却无异于体力劳动,他被大量的重复运算损耗着精力,无暇顾及更有价值的创造性设计。1936年,祖思便辞职回家,决定建造一台更便捷的计算机器,后来称为祖思机。祖思一生中几乎是独立完成了计算机的建造,并逐步改进。
这是第一代祖思机Z1:这是一台纯机械的机器,由成千上万的金属片和金属杆组成,靠电动马达驱动运转。Z1是二进制的,在组成上已初具现代计算机的特点,主要包括控制器、存储器、运算器、输入设备(穿孔带读取器和十进制输入面板)和输出设备(十进制输出面板)5大部分。
Z1是世界上第一台二进制可编程计算机,其设计是极富开创性的,其中许多理念都被现代计算机所沿用:
- 将数据存储和指令处理分开,正是现代计算机的做法。
- 奠定了二进制计算的基调,引入了实现二进制计算的基本要素——逻辑门。
- 二进制数的规格化表示简洁而优雅,如今已被纳入IEEE标准。
- 有了明确的机器周期概念,马达每转1圈,负责驱动金属片在4个方向上平移1圈,最终回到原位。加法运算最为简单,耗时1个机器周期;乘法运算最为复杂,耗时20个周期。以完成加法的1个机器周期为例,4次平移分别完成读数、计算部分和、计算进位和计算最终结果。原Z1的工作频率为4Hz,即每秒完成4个机器周期(马达每秒运转4圈);复制品的工作频率仅有1Hz,完成一次乘法运算需要20秒。
在后来几代祖思机中,祖思开始用电磁继电器逐步改进,大大减轻了机器的重量,工作频率也提高了,在后来还打算用真空管,只可惜因成本原因没有继续。
第4代祖思机,Z4以40Hz的频率工作,一次加法仅需0.4秒,平均每小时可完成约1000次浮点运算。
# 哈佛机:纸带上的编程
踏足机电计算领域的还有哈佛大学。当时,一名在校的物理学博士生——霍华德·艾肯(Howard Hathaway Aiken),和当年的祖思一样,被手头繁复的计算困扰着,一心想建台计算机,于是从1937年开始,抱着方案四处寻找愿意合作的公司,最终是IBM伸出了橄榄枝。
1944年,Harvard Mark I(哈佛马克1号)完成建造,是当年的大型计算机。它由约765000个机电元件组成,内部电线总长达800公里。机器长约15.5米,高约2.4米,重达5吨,撑满了整个机房的墙面。机器左侧的玻璃柜中,是2个30行24列的置数旋钮阵列(图中只出镜了一半),可输入60个23位十进制数(留出1位表示正负,0表示正、9表示负);中间部分是更为壮观的计算阵列,由72个计数器组成,每个计数器包括24个机电计数轮,共可存放72个23位十进制数;机器的右侧部分是若干台穿孔式输入输出装置,包括2台读卡器(用于输入相对固定的经验常数)、3台穿孔带读取器(分别读取存有常数表、插值系数和控制指令的3种穿孔带)、1台穿孔机和2台自动打字机。
控制机器运行的穿孔带上每一行有24个孔位,使用时分成3组,每组8位,用于表示数据地址或操作指令
艾肯继续在哈佛大学研制了Mark II~Mark IV,它们延续了Mark I的架构,在材料上进行了升级。1947年的Mark II是全继电器的,并使用了BCD编码;1949年的Mark III用5000个真空管和1500个晶体二极管取代了部分继电器,并引入了磁鼓、磁带等存储介质;1952年的Mark IV则已是纯电子计算机,并用性能更好的磁芯存储器替代了磁鼓。
继电器还有一个问题:这些巨大,黑色,温暖的机器也会吸引昆虫。1947年9月,哈佛马克2型的操作员从故障继电器中。拨出一只死虫。
Grace Hopper曾说“从那时起,每当电脑了问题,我们就说它出了bug虫子,这就是术语”bug”的来源。
与同时期其他“重复制造轮子”的先驱不同,艾肯“站在了巨人的肩膀上”,他深入研究了帕斯卡、莱布尼茨、巴贝奇、霍尔瑞斯等前人的工作,并对他们寄予了极高的评价。他充分参考了他们的成果,也将他们的失策引以为戒——正是有了巴贝奇的前车之鉴,艾肯选择直接利用IBM现成的制表机零件,而没有走自己生产元件的弯路。
也正得益于这份扎实的调研基础,艾肯对计算机科学有着更系统、更深刻的理解。1947年,他在哈佛大学开设了计算机专业的硕士学位,成为世界上第一位计算机科学教授,培养出一众出色的计算机学家。而几近10年之后,其他大学才陆续开设这一专业,并模仿着艾肯的教学体系。
# 贝尔机:编码的魅力
# 小结
显然,用电子管建造计算机在理论上是完全可行的。不过这样的想法在早期被多数人视为天方夜谭,因为那时的电子管不但体积大、能耗高、价格昂贵,可靠性还差,常以极少的数量应用在无线电设备中,用成千上万的电子管建造计算机几乎是不可能完成的任务。然而,还是有一批不惧困难的极客在历史的关键时刻接下了这个任务,用一根根灯丝的微弱之光,点亮了电子计算的前途。
二进制在计算中的应用,既是布尔代数计算理论的探索成果,也是穿孔技术和开关电路在硬件上的“倒逼”使然。比起追逐可靠性的机械时期,恰逢现代化战争伊始的机电时期将计算速度视为更重要的指标,这一需求敦促着先驱者们不断尝试新的材料和技术,为电子时期的到来埋下了伏笔。