首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

他参与指导建造全自动计算机,与IBM决裂,培养大批精英,他是谁呢?

当贝尔实验室的斯蒂比兹已经在打造复数计算机,比他更早提案开发数位计算机的艾肯还在苦等。好不容易 IBM 愿意开发,美国又卷入二次大战战局,究竟艾肯能否如愿完成梦想……?

艾肯锲而不舍,IBM终于同意开发第一部通用型计算机

1937 年 11 月,还是博士生的艾肯带着企划书到 IBM 简报,希望能说服他们也为科学家开发计算机。是的,很多科学家与艾肯一样深受计算之苦,IBM 听完之后深表同意。不过他们希望艾肯先去哥伦比亚大学看看,也许他会在那裡发现他想要的东西。

原来早在 1933 年,IBM 就曾接受天文学教授埃克特 (Wallace Eckert) 的提案,为他改造 IBM 601 商用计算机,用来计算天文物理的方程序。埃克特随后还自己设计一套控制系统,将改造的 IBM 601、印表机与打孔机连接起来,成为近乎全自动的机器。如果艾肯可以接受这套系统,IBM 就不用另外开发设计了。

IBM 601 商用计算机

艾肯拜访之后,发现这套系统运作过程还是需要人工介入,不是全自动化。而且这台改造的 IBM 601 主要在于求取内插值,与他设想的通用型计算机相去甚远,因此仍坚持得重新开发设计。

IBM 要求他与工程师先拟出详细规格与研发成本,才能评估是否要投入开发。好不容易报告完成,IBM 高层又争辩许久,无法取得共识。与此同时,哈佛大学自己内部也有不少的反对声浪,质疑购置新型计算机的必要性。

直到 1939 年 2 月,IBM 董事长沃森 (Thomas Watson) 才终于亲自拍板定案,承诺无偿为哈佛大学开发艾肯所规划的“自动循序控制计算机”(Automatic Sequence Controlled Calculator,简称 ASCC )。恰好此时艾肯也已拿到博士学位,并在哈佛大学取得教职,便顺理成章代表哈佛,继续与 IBM 的团队合作,自五月开始展开研发工作。

哈佛架构 vs.冯诺依曼架构

ASCC 沿用 IBM 原有的打孔卡片机制来输入程序,但因为它是通用型计算机,所要执行的程序可能会很长,因此将打孔卡片改为打孔纸带。打孔纸带上的程序并不会先载入记忆单元,而是一次读入一个指令,控制单元马上根据指令动作。这么做的好处是不占用记忆单元,可以节省成本。但缺点是运算速度受限于读取打孔纸带的机械动作,结果 ASCC 做一次乘法要费时 6 秒,比楚泽 1941 年就造好的 Z3 还慢。

现代电脑采用的是“冯诺依曼架构”,程序与数据都先全部载入记忆单元,然后再开始运作。像 ASCC 这样,程序与数据分开,不共用记忆单元的架构,后来就称为“哈佛架构”。

ASCC的程序用打孔纸带输入

ASCC 的运算方式仍是十进位制,因此对 IBM 的工程师而言,只要稍加修改原有运算单元就可以处理加减法。困难点在于 ASCC 要涵盖三角函数、微分方程、递归函数、……等所有数学运算,但这些工程师对高深数学并不在行,无从想像如何设计。艾肯因此扮演关键的角色,必须一一拆解运算的步骤,讲述给他们了解。

问题是,艾肯给予的只是描述性的说明,而不是数位逻辑,工程师还是得自己想出对应的逻辑电路。没想到这竟为日后 IBM 与哈佛的决裂埋下了祸根。

艾肯入伍服役,三年后代表海军徵用 ASCC

1939、1940 这两年暑期,艾肯全程都待在 IBM 提供咨询。但到了 1941 年,他被徵召到海军服役,无法继续参与研发,只能委托物理系一位研究生接手他的工作。与此同时,IBM 的工程师也改以国防任务为先,无法全心投入 ASCC 的开发,结果原本预计两年的工程拖到 1943 年底才完成。

1944 年初,ASCC 在哈佛大学的物理研究室完成安装,长达十五公尺,高两米四,有 4.3 吨重,零件多达 765,000 个,是当时最大的计算机,直到一年半后才被贝尔实验室的 Model V 超越。

ASCC 的左半部

安装好才两个月,艾肯便在当年四月重返哈佛,不过这次他是以海军少校的身份回来接管 ASCC。战争时期国事为先,海军决定徵用 ASCC,交由最熟悉的艾肯全权负责,带领随行人员计算雷达、磁场等军舰遭遇的问题。

事实上,在海军徵用前一个月,ASCC 就曾经为国效力。冯诺依曼带着两位数学家前来,用 ASCC 计算原子弹的内爆模型,只是当时曼哈顿计画仍属绝对机密,哈佛与 IBM 的人员都不知道与原子弹有关。

艾肯独揽发明之功,IBM愤而与哈佛决裂

尽管 ASCC 已被海军徵用,但这毕竟是 IBM 投入大量金钱与人力为哈佛开发的,预订的捐赠典礼还是要照常举办,而艾肯自然是负责筹办的最佳人选。捐赠典礼于 1944 年8 月举行,不料艾肯准备的新闻稿中,竟然只将自己一人列为 ASCC 的发明者,完全没有提及与他一起研究的那几位 IBM 工程师。

IBM 董事长沃森勃然大怒,删除原本要给哈佛大学日后维持机器运作的经费,双方的合作就此画上句点,哈佛大学也干脆将 ASCC 重新命名为“哈佛马克一号”(Harvard Mark I)。

二次大战结束后,艾肯退役回归教职。即使没有 IBM,他仍分别于 1947 年与 1949 年,为海军开发出功能更强的哈佛马克二号与马克三号。

第一宗有bug的真实案例,程序 debug的由来

值得一提的是,1947 年 9 月 9 日这一天,海军的程序设计师发现马克二号总是出错,他们检查了半天,最后发现原来是一支蛾在继电器上造成短路。他们把这支蛾取下,用胶带贴在工作日志上,除了注明是在 F 板块的第 70 号继电器发现,还戏谑地写上“发现第一宗bug的真实案例”(“First actual case of bug being found”)。

原来打从 1870 年代开始,虫 (bug) 这个字就用来形容机器中的瑕疵。如今竟然是一支真正的昆虫造成程序执行发生错误,而将它移除后就恢复正常,从此电脑程序的排错工作就叫 ”debug” 了。

“发现第一宗bug的真实案例”

艾肯心血虽成昨日黄花,百年树人影响更久远

其实艾肯代表海军徵用哈佛马克一号时,美国陆军委托另一批人马打造的计算机已在祕密进行中,所用的真空管开关速度远胜继电器,艾肯这些机电式计算机很快就要被电子计算机淘汰。尽管如此,哈佛马克一号仍是电脑史上一个重要的里程碑。它是第一部真正全自动化的计算机,只要用打孔纸带输入程序与数据,就能自动完成计算,并将计算结果印制成表格,过程中完全不需人力介入。

对艾肯而言,他也成功担起传承的使命,实现百年之前巴贝奇未圆的分析机梦想。

其实艾肯更大的贡献在于教育英才。除了直接教导出霍普 (Grace Hopper) 、王安、……等举足轻重的人物(霍普当年是海军少尉,跟著艾肯去接管哈佛马克一号,她后来写出第一个编译器,还领头开发出第一个高阶商用电脑语言“COBOL”;王安则是创办“王安电脑”,首创电脑文书处理。),艾肯还首开先例,在哈佛大学开设可攻取硕士与博士学位的计算机学科,引领美国大学设立计算机科系的风潮。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20201029A0A0PW00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券