差分机的运算部分
[attach]796276[/attach]
幸运的是,1842年这一年,巴贝奇泡到了拜伦的女儿,洛夫莱斯。她愿意为差分机这个超时代的设想投入金钱,还有她自己的才华。她很快理解了巴贝奇的设计思想,并熟练掌握了用穿孔卡片给机械计算机机编程的能力。洛夫莱斯设计了一系列计算方式,在不改变差分机基本结构的前提下,能够让差分机实现计算三角函数、级数相乘、伯努利函数等功能。在此过程中,她还通过反复使用同类卡片等方式,将子程序调用等概念引入计算机行业。如果说巴贝奇是计算机硬件行业创始人的话,洛夫莱斯就可以算是软件业的鼻祖。试想一下,软硬件行业的开山祖师居然不是在洁净的工作室里指着屏幕交流问题,而是忙于建造、调试一台烧煤炭、冒黑烟,齿轮嘎嘎作响的纯机械,和满手油污的机械工人们一起讨论技术方案,这场景未免有些怪异。但这的确是真实的历史。
1852年——那一年帆船的总吨位还是蒸汽轮船的几十倍。软件女王洛夫莱斯去世了,她的资金和才华也没有能够让巴贝奇造出差分机。但她鼓励了巴贝奇坚持自己的科研方向,坚信信息化代表了未来的发展方向。正如她在翻译巴贝奇的论文时加上的脚注所言:“……制造有编程和记忆功能的机器,具有无限的可能性。这种机器不仅可以进行复杂计算,还可以绘画和编曲……”。在她的支持下,虽然巴贝奇没有完成差分机,却在信息化的科研方向上越走越远。最终,在1871年去世之前,巴贝奇完成了更强大的计算机设计图——分析机。这是一台完全的通用计算机,现代计算机的几乎全部关键要素都可以在这台蒸汽动力的庞大机器里找到。按照巴贝奇的设想:“我本人都为这台机器的威力吃惊,一年前我还不相信能有这样的结果。这台机器可以处理100个变量,每个数可以有25位数字。假定有一个函数f(v1,v2……vn),且n小于 100,f由加、减、乘、除、开方和乘方组成,则这台机器可以决定这一函数的数值。……借助于这台机器,差不多所有有限差分的公式都能转换成表格。”。分析机将包括5万个部件,用巨大的齿轮做寄存器,还有复杂的卡片系统供使用者开发新功能。巴贝奇为它画了2000多张1:1的设计图纸,此时离1822年已经有快半个世纪,突飞猛进的技术使得程控计算机成为可能,遗憾的是巴贝奇已经无力筹集资金来完成这个伟大的计划。只能把图纸和设计思想留给后人。
分析机
[attach]796280[/attach]
毫无疑问,比起手工处理信息,卡片+机械处理器的组合要先进的多,在数字运算上的优势非常明显。至于档案分类处理这种复杂工作,机械计算机能够秒杀最勤勉的管理员。1890年,计算机第一次发威,当年美国的人口普查信息最终由一台源于巴贝奇的穿孔卡片式程控计算机汇总处理,六星期就完成了全部任务。可以做对比的是,此前的1880年人口普查则花了七年时间才处理完全部数据,导致得到的最终数据完全过时。这次胜利标志着计算机时代的来临。随着内燃机、电动机的发明和机械工业的进步,机械计算机还将覆盖更多的领域。
到20世纪中期,1911年建立的IBM已经在以每年数千台的规模生产机械计算机,用来处理数十亿的卡片信息。在继电器的加强下,利用精密液压件构成计算单元的新一代计算机也即将上市,可以每秒进行数百次基础运算。只是这已是机械计算机的最后辉煌,因为1945年,第一台用电子管组装的计算机ENIAC已经开机,它的计算速度是……每秒5000次。只有工业不那么发达的地区,比如咱们中国,直到70年代还在生产机械计算机,在老电影里常常可以看到大批的科技人员捧着手摇计算机算的天昏地暗,前辈们真是辛苦。
比起电子计算机来,机械计算机有它先天的劣势。它用宏观的机械机构储存信息,这提高了信息存取成本;用宏观机械运动传递信息,这降低了信息处理效率。因此,机械计算机在电子技术发展后很快就被淘汰了,没有足够的时间来发展成熟,成了一条技术断头路。前几天我给儿子买模型,惊讶于遥控模型竟然如此廉价。尽管人民币比80年代贬值了十来倍,但从价格上来说。2010年的遥控模型居然和20世纪的80年代差不多价钱,令我大呼便宜。回家仔细一想,原因无非是两条,一是石化工业的发展,塑胶外壳变便宜了;其二就是控制系统从机械装置和继电器变成了小小单片机,所以曾经是贵族玩具的遥控模型卖出了白菜价。从这个例子看,机械计算机被电子计算机逼进死胡同也是理所当然。
历史上类似的技术死胡同还有很多,大英帝国就曾经认真地设计过洲际飞艇航运网——未见雏形就被飞机工业的迅速进展而消灭,最早的汽车本是蒸汽机驱动,但没等到蒸汽机效率提高,就被内燃机汽车取代。虽然这些技术死胡同被更先进的工业门类淘汰了,但作为人类可能的一条技术发展方向,推演一下还是颇有意思的。比如说,电力淘汰了许多传动机构的发展方式。如果没有电力工业,我们可能需要在每个小区建立庞大的动力站,用内燃机或蒸汽机直接提供家用能源,然后通过一系列机械传动把动力传输到每栋楼房。每次我们打算洗点衣服或是开动空调,都必须开动一个齿轮离合器,把洗衣机等家用机械接到本单元的驱动主轴上。杂志上会充斥着“新型离合器,结构简单,可自行维护,适合宅男……速到苏宁内燃机械店购买”之类的家居广告。这样的蒸汽朋克式狂想虽然很荒诞,但很有助于我们理解现代工业社会的本质。现在,让我们不妨狂想一下,在一个没有电气工业、机械计算机充分发育的世界上,机械计算机会如何主导“信息化”?
蒸汽朋克时代
蒸汽机催生了巴贝奇的差分机,更强大的机械计算机显然需要更强大的能源。初中地理课本就告诉我们,原料笨重,产品轻巧的工厂应该在原料产地附近布置。大型机械计算机需要大量能源,产出的只是无重量的信息,自然要靠近能源产地。在这样的世界上,我们应该可以看到这样的新闻:
新华社消息,我国最大的机械设计院在山西落成,这个设计院装备了多台迄今为止我国最大的计算机——齿轮5型。这种计算机每台都有8万马力的功率,每秒计算 2000次,可以把2000个熟练工程师从繁重的计算工作中解脱出来,从而大大提高了我国机械工业的发展速度。为了配合设计院的工作,当地(请不要使用敏感词)征地 6000亩,修建了4条专用铁路线,附近有4个中型煤矿已先期开工,为设计院试车储备了大量煤炭……
这样耗能巨大的计算机行业,对于中国这种资源紧张的国家来说,貌似不是个好消息。但我们也不是全无优势。机械计算机的一切计算都是通过金属构件之间的接触来完成的,高速计算势必造成核心部件的高速离合。因此金属构件的精度和耐磨程度对计算机的计算速度影响极大,拥有丰富稀土资源和钨矿的中国可以敞开使用钨钢和合金钢制造易损件,应该会占很大便宜。
在没有电子计算机的世界,导弹里没法内置计算机,很难实现末端制导。飞机上也没地方安置计算机。于是,战列舰或许还在大行其道,并使用机械式计算机来修正火炮弹道——这是我们这个时空发生过的史实。因此战列舰成了是唯一一种可能把本国的计算机带到国境以外的地方。由于战列舰上的计算机代表了本国计算机的最高运算精度和小型化水平,因此被人缴获显然是很严重的问题。
第三次东亚战争中,苏联太平洋舰队第二战列舰中队的旗舰明斯克号被击沉在我国近海,这是此次战争的转折点,经此一战,中日联军终于控制了日本海的制海权。不过,这并不是我国最大的收获。上海打捞局和海军潜水员在战斗结束的当天夜晚就赶到了沉船海域,以大无畏的革命精神打捞了苏联战列舰火控计算机的残骸,随后的中日联合打捞队不过徒具形式罢了……有色金属研究总院检测了苏联计算机的合金成分,一机部从残骸中学到了苏联人领先世界的小型化技术,这使得我国第二代计算机的开发整整节省了4年时间..........苏联人撤退以前扔下了无数的深水炸弹,试图毁灭他们入侵的可耻证据,但我国的潜水员智勇双全,在(请不要使用敏感词)思想的教育下,胜利完成了打捞任务。摘自《东亚战争解密》 异时空2000年出版
……自从苏联明斯克号战列舰火控计算机被缴获,导致中国计算机技术跨越式进步以后,各国均在战列舰的中央机房安置了自毁装置。自毁装置的核心是一个小型的燃烧弹,一旦启动就会点燃已经预先放在计算机外壳里的铝热剂,用铝热剂的高温融化整个核心计算系统,同时,铝热剂里还有随意搀杂的一些金属粉,为的是防止对方分析本国计算机耐磨部件的成分……摘自《舰船知识》 异时空2010年第十期
大型机械计算机异常笨重,而且也没法通过电线或者网线来交流信息。所以需要把计算机械集中在一起才可能有效率。所以:
…… 据《参考消息》报道,目前世界信息化潮流是建设集中化、通用化的计算中心,苏联美国均已经在乌克兰盆地和阿巴拉契亚山地等能源基地建立了国家级信息基地,可以为整个工业体系服务。信息工业的这种进步节约了资源,提高了计算能力利用率,还可以建立卡片化信息储备、检索中心,为各个行业之间的交流提供了便利,应当是我国今后一段时间内发展的目标……
《十五期间我国信息产业发展计划》——引自国务院报告
……通用化计算中心是当今世界信息产业的发展趋势,毛主席曾经批示“大型计算机,我们也要搞”……苏联美国资源丰富,战略纵深大,因此可以从容选择能源基地建设信息中心,我国有独特的地理环境和战略态势,计算中心的选址、建设不可一味仿效,照搬发达资本主义国家的经验。要狠批XXX的洋奴哲学,买办思想,发展有中国特色的信息产业。
我国工业发达地区主要在东北和沿海地区,但将计算中心设在东部(一机部原拟南京或上海)和东北(经委原拟订沈阳)虽然均有一定经济上的优势,但不符合我国国民经济发展的长期趋势和国防计划……山西是资源大省,但经济落后,土地紧张,且在苏修有效空袭半径内,虽能源充足,也不适合设立国家级计算中心……经专家讨论和人大专门委员会审查,初步决定在关中或汉中选址,建设国家级计算中心,在上海和沈阳建立副中心……为此配套的工程有陇海铁路复线、秦岭隧道、XX基地等工程……预计总投资4000亿元
国家级计算中心显然会是个庞大的工程。为了达到每秒千万次的计算能力,几十平方公里的厂区内烟囱林立,锅炉轰鸣,几百万张打孔卡片在一条条传送带上来回驰骋,信息主线上则是由小型火车头拖动着装满卡片的车厢在各个车间之间奔驰。几千个机械工乘坐厂内汽车,不断的赶往信息流停滞的地方解决堵塞。几百名高级工程师和上千名高级技工在一栋漂亮的大楼里研究下一次软件调整的计划,如何做的又快又省又低碳,而来自应用部门的代表则守在大楼门厅,声嘶力竭的向厂长或上级领导争取更多的上机时间。
国家计算中心的核心车间(cpu)是最重要的车间,也是最需要保卫的车间。因此和其他地面厂房不同,CPU车间设在附近的一个秘密地下基地里,所有送到这里的卡片都由传送带送来,机械自动分检,排队处理。为了排走CPU几百万个齿轮摩擦产生的废热,几十台巨大的风扇从秘密通风口以8级风的速度换气,通向车间的隧道被军队、武装警察和安全部人员分层把守。计算中心周围,驻扎有无数的高炮团和精锐截击机中队,随时准备迎接敌人的大编队轰炸,即便是重要人物的专机,如果有迹象表明它试图通过核心厂区的上空,也会被立刻击落。厂区附近还有一个备用的地下CPU车间,通过8条传送带和主信息流相连,并及时为关键运算结果备份,随时准备投入使用,保证重要计算的连续性,这个备份车间的位置是国家的最高机密。
正面破坏国家计算中心很难,敌国免不了要想点迂回手段。比如病毒。机械式计算机上的电脑病毒貌似匪夷所思,但也并不违反计算机原理。计算机病毒无非就是通过用无效程序占用计算能力,制造死循环等方式迫使逻辑结构崩溃;或者反复运行特定部件毁坏硬件。这在机械计算机上也同样可以实现:
……在柏林危机期间,CIA设计了一种特别的计算机程序,由在高尔基机器厂潜伏多年的间谍负责把这些特别代码送入斯大林格勒计算中心。这些代码可以反复调用CPU里的特定轴承,导致这些轴承金属疲劳、提前断裂。于是,在随后的几个月里,斯大林格勒计算中心每周都会出现死机乃至大修的情况,导致了上百亿卢布的损失。苏联计算机专家在材料学研究所的协助下,花了好几个星期才在高尔基机器厂工艺流程设计的程序中找到了恶意代码。苏联人根据损坏轴承的形状把这种恶意代码命名为“蠕虫”。这是人类的第一个计算机病毒……蠕虫病毒事件发生之后,苏联人在计算中心设置了一个专门委员会,由克格勃和计算工业部共同领导,简称卡巴斯基小组,负责代码预审,对计算中心总工程师直接负责,有权拒绝一切客观上危害机器的代码,这是软件杀毒的起源。中国人则意识到对已掌握结构的恶意代码可以通过一个小型的计算机来自动辨认,于是,中国人在计算中心的厂区附近设置了一处预审车间,专门检测下个月送入主厂的程序。为了保密,这个车间根据所处的行政村命名代号,对外称金山车间……
摘自《不战而胜》尼克松著 1999年第三版。
任何新技术必定首先会被用于军事。在机械计算机的世界上,除了大型民用计算中心外,大国都会为军方建立多个隐蔽的计算机中心,负责处理大量的军事信息。为了模拟真正的战争,各国都开发了独立的兵棋推演软件。平时在国防部计算中心供军官演练,大型演习时用国家计算中心进行大规模模拟。
在机械计算机进入内燃机时代后,由于计算工业对燃油的需求上升,这个时空的石油危机更早到来。拿到大笔石油美元的中东国家也能够力于自己的军事现代化,沙特阿拉伯从美国购买了一台6万马力的军事计算机和模拟软件,还奢侈的用15台燃油锅炉和20个油井来维系它的运转。不过,他们的军官很快厌烦了美国教官的喋喋不休,决定放弃一切烦琐的程序,把所有军事单位和地形参数都尽量简化,从而缩短了冗长的军事推演,留出更多的时间去打猎,玩女人。最后,这个庞大的机器沦为年轻王储的玩物,他很开心的在指挥中心模拟着北约与华约的冲突,而国王认为这可以提高他以后的决策能力,从来不干涉这种昂贵的游戏。
顺便说一下,美国提供的缩水版军事软件的名字叫《红色警报》。
机械计算机不是什么都能干。由打孔卡片构成的信息流无法像电讯号那样瞬间传递到地球另一端,所以信息流的运行速度要受到车辆速度的限制。在这种情况下,如果要像电子计算机那样在网络上传递信息,互联网必须变成字面意思上的“信息高速公路”,或者“信息高铁”。让装满卡片的车辆在道路上飞驰。你现在关心自己的网络带宽,是按字节数来计算,到了这个世界就要按车道数或是铁轨数量来计算。
信息干线
在这样的互联网上聊天,麻烦可比现在大的多。比如说,你打算给美国的小姑娘发一张你的高清照片。你在QQ上点一下“文件传送”的按钮,这个信息迅速被写到一个打孔卡片上,传到卡片信息库。然后无数的传动带转动起来,在几亿张卡片里挑出记载着你数字相片的那几万张卡片。这些卡片被取出、复制,再放回原位。复制出来的卡片被专门的打包机器按照通讯协议塞进一个标准化数据包,顶上放上一张说明卡片。运上第一辆开往上海的车皮。上海转运站在阅读了说明卡片之后,把这个数据包和其他几十万个数据包一起,塞到去美国的货轮上。到美国后,这个过程再被反向操作一番,美国的小姑娘才可以把卡片塞进一台工程绘图仪,用半天时间复原一张你的照片。期间历时十天半个月也不一定。这倒不如你自己本人去趟美国来的干脆。
除了大型的固定计算机,还有不少小型企业也需要处理日常信息。而网络又是如此的反应迟缓,于是便有了移动计算机:
随着小型化技术的继续深入,计算机的移动性已经得到了很大提高,正在越来越多地进入国民生活的各个领域,车载计算机已经成为人民喜闻乐见的一项高科技产品。而这项技术是十年前两位党员工程师罗爱德和乔思弟(女)实现的,他们在用国产东风中型卡车装载了我国第三代小型机,并实现了汽车动力和计算机动力的共享,有效地提高了计算机性能,填补了我国在MC(MobileComputer)上的空白。
而今天已经可以见到很多个人用的MPC行驶在沿海大城市的街头,成为了一道亮丽的风景线。北方重工业公司制作的移动计算机“红旗电脑”受到了各个国企当家人和个体业主的追捧,它的运算速度和存储能力已经能够满足这些企业经验者的日常需求,并成为他们每日出行的良好伴侣。而北重工明年推出的最新的红旗5号以其1.4万次每秒计算速度以及20吨的有效卡片载重能力已经能够跻身于国际市场,显示出我国在小型计算机上的国际竞争力。虽然它的每公里油耗较大,而且所需的车载工作人员数量6名则是美国IBM公司最新型号“DrivePad”的两倍。但在我国以及很多第三世界国家,红旗电脑一直有良好的销售记录。下面请看记者从用户现场发来的报道……
——《新闻联播》2003年10月3日
今天的计算机工程师的日常工作是在电脑前枯坐编程,同时培养自己的颈椎病。在另一个时空,他们的同行倒没这个问题,他们有另外的烦恼。那里的工程师满身油污,在噪音中生活,按指令条上的单调数字来维护机器。除了计算机原理,他们还必须学习机械原理和材料力学。和机械打交道时间长了,他们说话都很机械,他们把自己的方言叫汇编语言。
“根据国家机械信息部劳保中心提供的信息,去年,位于上海附近的齿轮4型计算机的程序员工伤事故就达到了1千多起(多数都是断指事故),引起了中央重视。尤其是输出纸带部分,一年内竟然接连有48名程序员因为超负荷工作过度疲劳,把手伸入传送带而酿成断指事故,并造成合计数百公里的纸带作废。该中心说,有关部门应该加强监管,切实保证程序员福利,严格执行八小时工作制。而齿轮4型计算机管理部门一位不愿意透露姓名的工程师说,齿轮4型计算机设备老化,但计算任务反而越来越重,程序员队伍不堪重负,是造成事故多发的根本原因,不过,在明年的齿轮5型计算机启动之后,这种情况将会得到改善。”
——东方周末 2005年4月1日 第三版
也许我们该觉得幸运,由于电子工业的进步,这个幻想中的机械信息时代没有发生,因此除了阿拉伯王子,我们这群宅男也能够在电脑屏幕前玩游戏,聊天,看电影,发胖,而不用担心在计算机上切断手指头。同时,那个未曾出现的机械信息时代又是如此有趣,我们也不妨对它表示一点点遗憾。
归根结底,文明进步和我们宅男享受生活需要的是信息的存储数量和处理效率,我们不必在意信息借以存在的介质是何种物质。只要能够形成信息处理所需的逻辑结构,并足够廉价,齿轮、液压油、继电器、半导体芯片、磁盘、乃至未来经过生物工程处理的DNA都有可能成为计算机的基础元件。就像人类在几十年前淘汰掉发展了上百年的机械计算机一样,拘泥于“电子”计算机的概念只会阻碍技术的进步,在理解计算机本质的前提下,不断用各个领域的新突破来降低信息成本,增加信息处理效率才是“信息化”的本质。就在作者发狂想的这几天,威斯康星大学麦迪逊分校的研究者给出了一种新型机械计算机设计。这种机械计算机基于纳米技术,在高速运算下反而对于电子计算机有优势。因为电子芯片越小,发热散热越剧烈,越容易被电磁炸弹和宇宙射线等外来因素干扰,这导致电子计算机的性能提高存在上限。机械计算机则能在一定程度上规避这些问题。可见万事不能说绝对,或许就在几年后,我们可以看到机械计算机这条断头路重新变成一条坦途。