我们知道世界上第一台电子计算机是埃尼亚克(UNIVAC)。注意计算机前面的定语,它是电子计算机。其实在它之前有很多非电子计算机,比如巴贝奇设计的差分机,其实就是一个机械计算机。下图是该计算机的实物图,它现存于伦敦科学博物馆。

最天才的科学家马克(聊聊第一台机械电子计算机-哈佛马克I)(1)

除了上述差分机外,还有很多机械计算机,比如帕斯卡加法器和莱布尼兹计算器等等。本文这里就不再罗嗦了,今天我们主要介绍一下半电子化的计算机,也就是同时具备机械装置和电子器件的计算机。

最早的半电子化的计算机是IBM发明的ASCC(Automatic Sequence Controlled Calculator),自动序列控制计算机。它于1944年发明并在哈佛大学安装使用,因此也称为哈佛马克I。

该计算机长51英尺(15.5米),有5吨重,可以看出来确实是一个大家伙。而该计算机由75万个零件组成,包含72个累加器和60组旋转开关。其中每一组旋转开关可以作为一个常量寄存器来使用。除了上述组件外,还包括读卡器,打卡机,纸带读取器和打字机。因为这个大家伙是通过卡片打孔的方式编程的,因此称为自动序列控制计算机。也就是它是通过打孔卡片的方式来控制的。

最天才的科学家马克(聊聊第一台机械电子计算机-哈佛马克I)(2)

整个计算机的运行通过一个很长的轴来控制。一个加法运算需要花费1/3秒的时间,而一个乘法运算则要花费1秒的时间。相对于现在的计算机来说,这个老古董确实弱爆了,但在当时确实最先进的计算机。下面让我们认识一下每个组件吧。

常量开关

这个面板在整个计算机的最左边,它用于输入数字。这些开关用于表示一些常量,它在程序运行之前设置,并且一直到程序运行结束。可以看出上述旋转开关都是0-9的数字,也就是他们组成了10进制的数字。

最天才的科学家马克(聊聊第一台机械电子计算机-哈佛马克I)(3)

寄存器

下面是由IBM设计改良的加法器,由72个单元组成。它作为机器的存储器,根据打孔卡片上的指令进行读取和操作。

最天才的科学家马克(聊聊第一台机械电子计算机-哈佛马克I)(4)

读卡器

读卡器是哈弗马克I的核心部件,正式由于该部件的存在才使得哈佛马克I成为可编程的计算机。这些是霍华德·艾肯(Howard Aiken)的主要设计的。 读卡器从纸带上读取指令,一次取一行,然后一步执行相应的指令。

最天才的科学家马克(聊聊第一台机械电子计算机-哈佛马克I)(5)

驱动轴

哈弗马克I由一台电动机驱动,该电动机通过一个长轴将运动传递到其所有机械部件。 这样可以确保其所有组件以相同的速度工作,这对于在单个组件之间传输指令和数据是必不可少的。

最天才的科学家马克(聊聊第一台机械电子计算机-哈佛马克I)(6)

打孔机

打孔机用于实现标准打孔卡中编码的问题,也就是给卡片打孔的。这个类似与我们目前编程的过程。输出也可以是打孔卡格式,也可以是打字机键入的直接可读的数字。

最天才的科学家马克(聊聊第一台机械电子计算机-哈佛马克I)(7)

虽然这种古董计算机非常笨重,工作效率也非常低。但是,这种计算机却是目前大规模晶体管计算机的鼻祖,现代计算机的核心理念也都是来自于该计算机的。本文主要是想让广大程序员同学了解一下计算机的历史,也是让更多人认识到现代计算机的强大之处。

,