制表机:穿孔时代的到来

从1790年开始,美国每十年进行一次人口普查。百年间,随着人口繁衍和移民的增多,从1790年的400万不到,到1880年的5000多万,人口总数呈爆炸式地增长。

1790~1880年美国人口增长曲线

不像现在这个的互联网时代,人一出生,各种信息就已经电子化、登记好了,甚至还能数据挖掘,你无法想象,在那个计算设备简陋得基本只能靠手摇进行四则运算的19世纪,千万级的人口统计就已经成了当时政府的“不能承受之重”。1880年开始的第10次人口普查,历时8年才最终完成,也就是说,他们在休息两年之后就要开始第11次普查了,而这一次普查,需要的时间恐怕要超过10年,那第12次、13次呢?本来就是10年一次的统计,如果每次耗时都在10年以上,这件事情就变得没有意义了。

这可愁煞了当时的人口调查办公室,他们决定面向全社会招标,寻求能减轻手工劳动、提高统计效率的发明。正所谓机会都是给有准备的人的,一位毕业于哥伦比亚大学的年轻人赫尔曼·霍尔瑞斯(Herman Hollerith)带着他在1884年申请的专利从众多方案中脱颖而出。

赫尔曼·霍尔瑞斯(Herman Hollerith),1860-1929,美国发明家、企业家。(图片来自维基百科)

制表机

他发明的机器叫制表机(tabulator/tabulating machine),顾名思义,就是专门用来制作数据统计表的机器。制表机主要由示数装置、穿孔机、读卡装置和分类箱组成。

示数装置包含4行、10列共40个示数表盘,每个盘面被均匀地分成100格,并装有两根指针,和钟表十分相像,“分针”转一圈可计100,“时针”转一圈则计10000。可见,整个示数装置可以表达很庞大的数据。

制表机(原图来自维基百科)

制表机的工作是围绕穿孔卡片展开的:操作员先使用穿孔机制作穿孔卡片,再使用读卡装置识别卡片上的信息,机器自动完成统计并在示数表盘上实时显示结果,最后,将卡片投入分类箱的某一格中,进行分类存放,以供下次统计使用。

穿孔卡片的应用

此前的某一天,霍尔瑞斯正在火车站排队检票,目光不经意落到检票员手中咔咔直响的打孔机上。他发现,检票员会特意根据乘客的性别和年龄段,在车票的不同地方打孔。越来越多的人过检,他进一步确认了这个规律。一个灵感朝他袭来:如果有一张更大的卡,上面有更多的位置可以打孔,就可以用来表示更多的身份信息,包括国籍、人种、性别、生日等等。

这就是用在1890年人口普查中的穿孔卡片,一张卡片记录一个居民的信息。卡片设计长约18.73cm,宽约8.26cm,正好是当时一张美元纸币的尺寸,因为霍尔瑞斯直接用财政部装钱的盒子来装卡片。

霍尔瑞斯的穿孔卡片(图片来自维基百科)

卡片设有300多个孔位,与雅卡尔和巴贝奇的做法一样,靠每个孔位打孔与否来表示信息。尽管这种形式颇有几分二进制的意味,但当时的设计还远不够成熟,并没有用到二进制真正的价值。举个例子,我们现在一般用1位数据就可以表示性别,比如1表示男性,0表示女性,而霍尔瑞斯在卡片上用了两个孔位,表示男性就其中一处打孔,表示女性就在另一处打孔。其实性别还凑合,表示日期时浪费得就多了,12个月需要12个孔位,而常规的二进制编码只需要4位。当然,这样的局限也与制表机中简单的电路实现有关。

细心的读者可能发现卡片的右下角被切掉了,那不是残缺,而是为了避免放反而专门设计的,和现在的二维码只有3个角是一个道理。

这类实用的细节设计在穿孔机上表现得更为出色。下图为一位操作员正在使用穿孔机给卡片打孔的情景,她并不需要在卡片上吃力地搜寻孔位,而是直接对着孔距更大的操作面板打孔,一根杠杆将两者的孔位一一对应。操作面板还做成了弧形,颇有一分如今人体工程学键盘的风姿。

穿孔机使用场景(原图来自维基百科)

在制表机前,穿孔卡片(或纸带)多用于存储指令而不是数据。比较有代表性的,一是雅卡尔提花机,用穿孔卡片控制经线提沉;二是自动钢琴,用穿孔纸带控制琴键压放。美剧《西部世界》中,每次故事循环的开始,都会给一个自动钢琴的特写,弹奏起看似宁静安逸、实则诡异违和的背景乐。

是霍尔瑞斯将穿孔卡片作为数据存储介质推广了开来,并开启了一个崭新的数据处理纪元。后来人们也把这类卡片称为霍尔瑞斯卡片,穿孔卡片和穿孔纸带作为输入输出载体,统治了计算领域整整一个世纪。

统计原理

打好了孔,下一步就是将卡片上的信息统计起来。读卡装置的组成如下图所示,其外形和使用方式有点类似现在的重型订书机,将卡片置于压板和底座之间,按压手柄,就完成了对这张卡片的信息读取。

制表机读卡装置组成结构(原图来自美国专利395781)

原理上,通过电路通断识别卡上信息。底座中内嵌着诸多管状容器,位置与卡片孔位一一对应,容器里盛有水银,水银与导线相连。底座上方的压板中嵌着诸多金属针,同样与孔位一一对应,针的上部抵着弹簧,可以伸缩,压板的上下面由导电材料制成。这样,当把卡片放在底座上,按下压板时,卡片有孔的地方,针可以通过,与水银接触,电路接通,没孔的地方,针就被挡住。

这一基本原理与雅卡尔提花机类似,不难理解。重头戏是,如何将电路通断对应到所需要的统计信息呢?霍尔瑞斯在专利中给出了一个简单的例子,如下图所示。这是涉及性别、国籍和人种3项信息的统计电路图,虚线为控制电路,实线为工作电路。

制表机信息统计电路图示例(图片来自美国专利395781)

图顶有7根金属针,从左至右标的分别是:G(类似于总开关)、Female(女)、Male(男)、Foreign(外国籍)、Native(本国籍)、Colored(有色人种)、White(白种人)。

工作电路中分散着标识为m1~m10的电磁继电器。

图底从右至左为标识为M1、M2、M3、M4、M5和M6的6组电磁铁,所对应的统计信息为(为贴合穿孔的形象,我特意选择使用圆圈进行标记):

Female Male Foreign Native Colored White 描述
M1 本国白种男人
M2 本国白种女人
M3 外国白种男人
M4 外国白种女人
M5 非白种男人
M6 非白种女人

以M1为例,如果表示Native、White和Male的针同时与水银接触,接通的控制电路:

Native-White-Male控制电路通路示意图

这一示例首先展示了针G的作用,它把控着所有控制电路的通断,目的有二:

  • 在卡片上留出一个专供G通过的孔,以防止卡片没有放正(照样可以有部分针穿过错误的孔)而统计到错误的信息。
  • 令G比其他针短,或者G下的水银比其他容器里少,从而确保其他针都已经接触到水银之后,G才最终将整个电路接通。众所周知,电路通断的瞬间容易产生火花,这样的设计可以将此类元器件的损耗集中在G身上,便于后期维护。

不得不感慨,这些发明家做设计真的特别实用、细致。

控制电路的接通引起图中标有橘黄色箭头的3个电磁继电器m1、m3和m5闭合,进而接通M1所在的工作电路:

M1工作电路通路示意图

最终,通电的M1将产生磁场,牵引相关杠杆,拨动齿轮完成计数,最终体现到示数表盘上指针的旋转。虽然霍尔瑞斯的专利中没有给出这一计数装置的具体结构,可以想象,从17世纪开始,机械计算器中的齿轮传动技术已经发展到足够成熟的水平,霍尔瑞斯无需重新设计,完全可以使用现成的装置,正如他在专利中所说的“any suitable mechanical counter”(任何合适的机械计数器都可以)。

电磁铁不单控制着计数装置,还控制着分类箱盖子的开合。将分类箱上的电磁铁接入工作电路,每次完成计数的同时,对应格子的盖子会在电磁铁的作用下自动打开,熟练的操作员甚至不用转头去看,就可以顺手将卡片投到正确的格子里,由此完成卡片的快速分类。

每天工作的最后一步,就是将示数表盘上的结果誊抄下来,置零,第二天继续。

分类箱侧视图(图片来自美国专利395781)

单元记录时代

在制表机的高效运转下,1890年的人口普查只花了6年时间。1896年,霍尔瑞斯成立制表机公司(The Tabulating Machine Company)并不断改进自己的产品,先后与英国、意大利、德国、俄罗斯、澳大利亚、加拿大、法国、挪威、美国波多黎各、古巴、菲律宾等多个国家和地区合作开展了人口普查。到1914年,制表机公司每天生产的穿孔卡片多达200万张。
不多久,一些竞争对手逐渐起家,历史迎来了繁荣的数据处理时代。它们的产品也不再局限于人口普查,逐渐扩展到会计、库存管理等一些同样需要跟大数据打交道的领域,这些机器作为制表机的后裔被统称为单元记录设备(unit record equipment)。围绕穿孔卡片的制卡、读卡、数据处理和卡片分类是它们的标准功能,穿孔机、读卡器、分类器是它们的标准配置。这些部件的自动化程度越来越高,比如手动的读卡装置很快被自动读卡机所取代,读卡速度从每分钟100张逐步提高至每分钟2000张。随着识别精度的提高,卡片的孔距也越来越小,具有80~90列孔位的卡片成为主流,有些卡片的孔位甚至多达130列。

20世纪典型的80列穿孔卡片(图片来自维基百科)

机器的功能也逐渐强大,不再只是简单地统计穿孔数目,减法、乘法等运算能力陆续登场。1928年,哥伦比亚大学的科学家们甚至用单元记录设备计算月球的运行轨迹,他们在50万张卡片上打了2000万个孔,彰显着单元记录设备的无限潜力。

机器的电路实现越来越复杂,但同时也越来越通用。1890年所用的那台制表机的线路是固定的,遇到新的统计任务,改造起来十分麻烦。1906年,霍尔瑞斯便引入了接插线板(plugboard)——一块布满导电孔的板卡,可通过改变导线插脚在板上的位置改变线路逻辑。试想一下,接插线板的内部已经布好了具有各种功能的线路,但它们都处在断开状态,各自连接着接插线板上的某两个孔位,像一窝嗷嗷待哺的小鸟长大着嘴巴,外部的导线就像美味的虫子,当虫子的头尾分别与小鸟的上喙和下喙接触,线路就被导通,这只小鸟就开始工作了。如此,每次使用就可以激活不同的“小鸟”,从而完成不同的任务。这已经是一种可编程性的体现。

接插线板(图片来自维基百科)

1911年,制表机公司与另外3家公司合并成立CTR公司(Computing-Tabulating-Recording Company),制表机公司作为其子公司继续运营到1933年。1924年,CTR更名为国际商业机器公司(International Business Machines Corporation),就是现在大名鼎鼎的IBM公司。可见,在如今众多年轻的IT公司中,拥有百年历史的IBM是位当之无愧的前辈,它完整地参与和见证了整个现代计算机的发展史。IBM保持了制表机公司在单元记录市场的龙头地位,到1955年,其每天生产的穿孔卡片多达7250万张。

1937年开始,单元记录设备逐步电子化,与电子计算机的界线渐渐模糊,并最终为后者让路。随着1976年IBM一型最核心的单元记录产品的停产,短暂的单元记录时代也宣告谢幕,它仿佛是电子计算时代来临前的预演和铺垫,许多设计被沿用下来,比如穿孔卡片和接插线板。

有趣的是,即使电子计算机逐渐普及,许多机构由于用惯了单元记录设备,迟迟不愿更换,少数机构甚至一直用到了21世纪。

参考文献

禁止转载,如需转载请通过简信或评论联系作者。

推荐阅读更多精彩内容