6

计算机史最疯狂一幕:豪赌50亿美元,“蓝色巨人”奋身一跃

 2 years ago
source link: https://my.oschina.net/oneflow/blog/5348640
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

计算机史最疯狂一幕:豪赌50亿美元,“蓝色巨人”奋身一跃 - OneFlow深度学习框架的个人空间 - OSCHINA - 中文开源技术交流社区

c5961132-6a28-4926-95b8-1bc03108121e.png

“Go big or go home. ”是美国人的一句习语,经常会在赛场上听到,NBA球迷应该很熟悉,翻译过来就是“要不变强大,要不滚回家”。在1960年初期的计算机行业,IBM正站在这样一个十字路口。

凭借刚发布不久的能彻底替代穿孔卡片分析机的1401大型机,IBM本可以在市场上轻松躺赚两年,但总裁小托马斯·沃森(Thomas J. Watson Jr.)还不想“躺平”,他从父亲手上继承到这一职位已有四年。

整个行业发展正在加速,但IBM却进入平台期,增长放缓,公司两个计算机部门的“内卷”竞争让产品线变得混杂,而最新产品线的竞争壁垒并不高,这些危机感让他催促手下的IBM高管通过更大的产品创新来提升营收。

彼时,计算机厂商的产品线互不兼容,客户要升级到新机器时,很容易改用其他厂商的产品:基本每个产品都有自己的ISA、软件堆栈、I/O系统和利基市场(分别针对小企业、大企业、科研应用)。各种主机需要量身定做操作系统,兼容性、系统升级等操作无从谈起,定制化系统所耗费的大量人力、财力甚至会超过主机本身。

很快,经过副总裁文森特·利尔森(T. Vincent Learson)等人来回争论后,最终敲定他们需要开发一种系统,以简化产品线、降低研发成本,提高竞争力。沃森也希望能尽早淘汰过时的晶体管计算机,要求着手研制由集成电路组成的机器。

但让所有人始料未及的是,这几乎是一个让IBM搭上全部身家性命的抉择。

b3f22a5e-7948-4022-a6d1-e86105142c92.png

在日夜兼程制造新机器的四年里,IBM总计为新机器的研发投入了50亿美元(按购买力计算,相当于今天至少400多亿美元),是他们一开始预估费用6.75亿美元的7.4倍。其中,45亿美元用于建造新设施以及购买和租赁设备,最头疼的软件系统花了5亿美元,是一开始3000万美元预算的近17倍,而系统研发最终耗费了大约5000人年(指5000人工作1年或500人工作10年的工作总量),而OneFlow此前介绍过的具有450万行代码的Windows NT系统不过才花了1000人年。

其中,最多时有2000名顶级工程师参与了软件编写,最终写出了百万级代码量的操作系统。当然,以现代眼光来看,写一个类似的软件似乎已不是什么了不起的事,也根本用不到上千人,但在当时绝对开创了先河。

这个新机器就是IBM System/360,为了制造这一庞然大物,IBM不可避免地走了不少弯路。它让IBM的开发资源、运营流程和商业战略经历了一场彻底的洗礼,在技术不稳定、执行混乱、充满不确定性的情形下摸着石头过河,以一种他们自己都未曾想到的创业方式,踏上了一场前无古人后无来者式的冒险之旅。

幸运的是,IBM的“豪赌”大获成功。在回忆录里,小沃森称这是他一生中所做的“最大、最富冒险的决策和最辉煌的胜利”,这场胜利让这家企业蜕变成真正的“蓝色巨人”,在整个行业独领风骚至少二十年。领导开发System/360系统设计和工程实施的弗利德利克·布鲁克斯(Frederick Brooks)等人也因此获得了图灵奖等极高声誉,其技术创新和影响决定了数十年的计算机历史进程。它也被视为美国迄今最伟大的三大商业成就之一,与福特的Model T汽车和波音的首款喷气式客机707齐名。

“Go big or go home. ”听起来是道二选一的选择题,但对勇者而言,选择往往只有一个:干就完了。IBM奋身一跃,就此掀起计算机史上的一场滔天巨浪。

1

新机器的野心

1960年代初期,计算机的存储容量与运行速度增加了10倍,有效性能由此提高100倍,但这超出了软件设计人员的驾驭能力,机器之间互不兼容是普遍现象,软件技术几乎止步不前。

当时,IBM共有八款晶体管计算机和一些真空管计算机,还有六款晶体管计算机正在开发中,但它们的内部结构、处理器、程序设计软件和外部设备不尽相同,功能和性能也不同,一款计算机对应一个系统,无法扩展或升级。

互不兼容带来了两大弊端。一方面,这严重制约了计算机厂商的生产力。大部分工程师不得不做没什么技术含量的重复劳动,比如把一台磁带机设计出来后,技术人员必须做同一台磁带机与各种机型匹配的大量改造工作。

另一方面,这让客户的使用体验极其糟糕。当客户想换机器时,不仅需要更换机器本身,还需要更换外部设备,重编程序。尤其当时大部分程序是用汇编语言编写而成,移植工作量很大,而且即便把程序移植到性能快一倍的机器上,实际速度却不会增加多少,还需等厂商的技术人员来做专门匹配优化。总之,费时、费力又费钱。

小沃森得知,IBM的现有产品还能在市场上挣扎两年,因此必须在两年内推出高增值的新产品才能在竞争中大幅领先。而在利尔森看来,坐以待毙确实是一种风险,他性格强硬,执行力和好胜心极强,在整个职业生涯都在关注如何将新产品推向市场,所以当决定要做新产品时,他会雷厉风行地将其推行下去。

在公司内部,还面临着一场部门间的暗斗,由于最新的1401在市场上大受欢迎,一些工程师团队比较抵触开发更庞大的计算机。同时,正在研发中的机器还有IBM 8000,但刚刚担任这一团队工程经理的鲍伯·伊万斯(Bob O. Evans)认为,8000的设计自始至终都没有将科学应用和商业应用结合起来,因此要求暂停该产品的研发,现在应该要做相互兼容的新机器,还提议未来所有系统采用最新的固态逻辑技术(SLT),使IBM的机器更具竞争力。

但这遭到了领导设计8000系列机器的布鲁克斯团队的反对,他认为,重新研发新机型意味着至少还要花两年时间才有结果。好几个月争论不休,有一次伊万斯甚至给布鲁克斯打电话,悄悄提到后者要加薪,但后者说了几句感谢的话后,伊万斯直截了当地说这事跟他没关系。

于是,利尔森引入了第三方部门的高级工程师杰瑞·哈达德(Jerrier A. Haddad)分别研究了他们各自的提议,最终哈达德建议采用伊万斯的方案。在争论六个月后,8000项目于1961年5月停止研发,这让布鲁克斯团队感到心碎了一地。

布鲁克斯还在为8000项目的失败耿耿于怀。不过,让他惊讶的是,伊万斯随后主动要求布鲁克斯负责制定计划以开发兼容的新机器,伊万斯展现出的胸怀让他欣然接受了这个任务。两个工程团队开始合作,在新机器路线上做出了重大贡献。

IBM内部逐渐达成一个共识。1961年10月,在小沃森的拍板下,利尔森召集了代表系统编程、研究工程和开发的特别委员会SPREAD,将他们关到一个旅馆,限令在年底前提出一个新产品线研发总体方案。

f3ad2606-6718-422a-a071-4bf8794674ad.png

经过两个月的综合研判,1961年12月28日,一份有长达80页的文档《处理机产品―SPREAD工作组的最后报告》诞生了,也就是System/360计算机系统的总体方案。布鲁克斯在一次专门会议上解读了报告的重点内容:

  • 需要一个单一的、兼容的机器系列 ,涵盖现有最小内存的机器,例如可能低于1401到功能最强大的7094型机器。事实上,报告对兼容性的范围表达了质疑。

  • 新机型的目标不应该仅仅是取代1401或7000系列,而是要开辟一个全新的计算机应用领域。当时,这些机型和新产品线之间的兼容性并不被认为是最重要的,因为新机器出现的最初时间表已经被延长了好几年。

  • System/360必须同时具有商业和科学应用。 这是一个艰巨的双重任务,因为商业机器可以接收大量的数据,但却没有多少处理能力,而科学机器只能处理相对较少的数据。为了达到这一目的,他们决定新生产线上的每台机器都将配备不同大小的内存。此外,新机器将提供各种最新技术特性,如“浮点计算”、“可变字长”和“十进制指令集”,以处理科学和商业任务。

  • 信息输入和输出设备以及所有其他外设必须有“标准接口” ,以便各种类型和大小的外设连接到主计算机。这也成为新生产线的一个重要特征。

尽管这次报告的反响并不好,但没有真正的反对意见。当时《报告》估计,System/360操作系统将不得不花费1.25亿美元,而当时他们每年的编程支出不过在1000万美元,所有人都意识到这是一项黑洞式任务,所有资源都可能会被它吸走。

在方案实施和管理机制上,工作组提出了一套详尽的管理和监控机制,确保管理层和部门经理能监控项目的各方面进展。

为了让工程师有充分的创新空间,在设计和工程实施中发挥他们的聪明才智,方案还将体系结构的定义和实现分开。比如地址格式和数据格式这种事关全局的工作不可轻易更改,而像“微编程”这种来自研究部门的新技术,如果工程师有更好的方法实现同样功能,可以进行替换。

4ed92784-5f73-4b50-8f3c-4fe66ae15fdc.png

总之,从“360”这个命名就能看出新机器的野心,IBM要为用户提供全方位无死角的服务。新机器要同时支持科学计算、商业应用和信息处理,让一套程序运行在所有系统上。所有机器都使用标准接口,以此取代市面上的所有计算机,包括IBM现有的“各自为政”的八款机器。

但这毕竟是书面规划,在真正实践中,这个极其宏大的目标充满各种意想不到的陷阱,让他们像在一个满是沼泽地的无人区行进。

2

摸着石头过河

在360的方案确定后,IBM管理层任命了这一项目的相关负责人。主管设计工程的总负责人正是29岁的布鲁克斯,在这之前,他担任IBM的Harvest和世界上第一台流水线计算机STRETCH的体系结构设计师。

布鲁克斯负责协调4个小组的工作,其中3个小组都由金·阿姆达尔(Gene Amdahl)领导,IBM的最后一种电子管计算机IBM 709就出自他手,此外,他还担任过第一台全晶体管计算机IBM 7030的设计师。

他们就360系统技术问题进行了多次商讨,最终决定实现“兼容性”这一全新思路:尽管360系列在型号上会有区别,但它们都必须能够用相同的方式处理相同的指令,具有相同的软件,配置相同的磁盘机、打印机等外设,而且能够相互连接在一起工作,此外在更换新机器时不用再更换外设。

正式动工后,他们会发现,360项目的推进远比他们想象的要艰难,除了解决技术难题,他们还面临人员协调、资源调动等难题。但开弓已没有回头箭。

每一个难题都让小沃森夜不能寐。在回忆录里,他提到了两大风险:首先是要协调来自欧美等地不同的工程团队,他们同时在研发六种新计算机和各类外设,但最终要将所有硬件都联结起来。

为了推进System/360的研发,利尔森采用了一种“摩擦式互动(abrasive interaction)”的管理手法,把小型机团队的顶尖工程师提拔成为大型机部门中最优秀开发团队的负责人,迫使IBM内部不同的工程团队通力合作。

其次,IBM决定自己为这个新系统制造相应的电子部件,这是条烧钱路线。他们必须自己制造集成电路,因为买不到现成的芯片。不过,新建一个集成电路制造厂,对生产环境要求极为苛刻,成本超过普通厂房的四、 五倍。

更大的挑战在于编写可能是一个百万级代码的操作系统,没有工程师参与过这么庞杂的编程重任,而后投入的人力资源更是远超预判。

5d16d0c1-9cb7-41d1-930b-09c6811fb101.png

就在他们如火如荼研发360机型时,1963年年底,IBM的旧生产线开始抵挡不住竞争对手的攻势。为了提早拖住用户转向的势头,他们必须尽快让外界知道360产品的存在。1964年4月7日,在老沃森创建IBM的50周年之际,他们分别在美国63个城市和14个国家举办了有近万人参加的新闻发布会,向全世界昭告IBM System/360的诞生。小沃森称“这是该公司史上最重要的新产品”。

他们向外界展示了由六台兼容机器组成的系列System/360 30、40、50、60、62和70,它们的体系结构完全一样,只是性能上不同,相邻两档机器的计算速度之差别约为3至5倍,最高运算速度可达每秒100万次。另外,他们还发布了44种外设,包括磁带驱动器、磁盘驱动器、打印机等,承诺会提供使一切协同运行所必需的软件。不过,他们那天抄了一个捷径,当天展示的设备并非都是真实的,有些展品只是木制的模型

由于发布的许多新概念和最新技术,System/360在外界的反响非常热烈。作为一种多用途产品,System/360多达248个数据传输终端可以与计算机进行通信,即使计算机忙于批处理作业。它不仅能够处理小型二进制、十进制或浮点计算,还可以处理科学或商业工作。

最突出的核心功能当然是兼容性。它可以让庞大的数据中心安装一台小型360计算机,然后升级到更庞大的计算机,而无需重写软件或更换外设。同时,一旦工程师熟悉了这一新系统,就不必再学习更多新知识来做升级。

d4e1d18e-bb06-4a56-8705-e2090c6a50ef.png

IBM还为360项目构建了自己的固态逻辑技术,密度是当时技术的10 倍,可靠性是100倍。它还制造了从电路到内存、存储、打印机和屏幕的所有即插即用的组件,处理器和存储器都安装在一个名为“主机”的金属机柜。此外,它还将设计与构建分开,因此可以复制系统。System/360的制造成本也进一步降低,并且易于定制以满足相对广泛的客户场景。

但是,System/360的长征只走了一半,发布会的成功并不意味着项目已经成功。

3

豪赌50亿美元

4月宣布新产品后,IBM进入规模化生产时期,实际上,这是其历史上最危险的时刻。

发布会后的一个月,来自全球客户的360订单超过100000台,而同年在英国、西欧、美国和日本安装的各类计算机总共也就20000多台。IBM承诺1965年第三季度交付首批小型计算机,1966年第一季度交付大型计算机。

与此同时,360项目的投入不断加注到让人咋舌。通过粗略估算,他们将为System/360的研发投入50亿美元,其中研制经费5亿,生产设备投资10亿,推销和租赁垫支35亿。要知道,美国研制第一颗原子弹的“曼哈顿工程”也才用了20亿美元。这笔费用是IBM在1962年营收的两倍,他们还雇用了7万多名新员工。

IBM为自己争取了两年时间来生产机器,如果不能按时交付就会功亏一篑。

当然,生产问题无可避免。巨大的订单数量严重影响了生产质量,存储器磁芯的制造难度,再加上不少机器因为电子电路不完整严重延误了交付工期。同时,随着制造活动在全球展开来,由于小沃森的弟弟Arthur K. Watson管理不足,协调活动和制造机器方面由此衍生出各种问题,他忍痛将弟弟调整到其他部门,但这也伤害了弟弟的自尊,多年以后,小沃森都觉得很是内疚。

软件问题同样阻碍了System/360的生产。即便在今天,很多项目的上万行代码都是一团糟,更不用说这个百万级代码量的操作系统,让360操作系统一次运行多项任务还要确保高效性并非易事。同时,应用程序和编程支持等也是令人头疼的顽疾。

eeec68ed-83ba-4989-a1a9-8853f62c9afe.png

漏洞百出的重重压力之下,1964年10月,IBM宣布产品交付严重延误。

在360系统上,他们新增了1000名工程师来追赶工期,这使得IBM在软件方面的投入比硬件还多,不过投入更多的工程师参与项目基本于事无补。基于360系统的实践经验,布鲁克斯在1975年出版的《人月神话》一书中给出了他的见解:生孩子需要经过十月怀胎,不管把这个任务交给几个女人完成都一样。

很多人每周工作近100小时,到处都是焦虑的灰暗 气息。一次,当小沃森去视察工作进展时,不认识他的工程师大吼着让他滚出去,不要影响他们工作,小沃森灰溜溜地离开了。有些经理和工程师由于难以承受诸多压力而选择辞职。

好在,他们在五个月内奇迹般地解决了很多问题,产品得以如期交付,尽管新交付的360机器的质量还是有部件短缺、程序bug等诸多缺陷,几乎每个早期客户都会遇到一些问题。

IBM的同行也对其新产品线做出了回应。GE、霍尼韦尔、NCR等抱团推出了与对方机器兼容的系统,除了没有兼容IBM的机器。一些小规模的公司决定制造与IBM兼容的机器,包括RCA以及欧洲和日本的其他公司。

即便如此,System/360的历史性创新使它遥遥领先于竞争对手。1966年底,他们建造和安装了大约8000台360机器,IBM的收入几乎翻了一番,达到40亿美元左右,税前净利润达到10亿美元,而到1970年又几乎翻了一番,达到70亿美元,员工人数从360项目之前的120000人增加到269000人。

到1970年代时,IBM占据了全球大型机市场70%的份额,其中催生出很多现代化应用的初代模型,包括银行ATM交易系统、航空业在线票务服务,期间帮助NASA运行了阿波罗太空计划。在360推出25年后的1989 年,基于其架构及扩展设备的产品收入占据IBM总营收的一半以上,每台计算机价格超过10万美元。

50亿美元的孤注一掷最终为IBM带来了巨额回报。

4

划时代的杰作

IBM System/360的出现无疑是一个划时代杰作。它让大型机行业改头换面,极大推动了未来计算机行业的变革——即便他们一开始只是出于提升自身商业竞争力的目的。

它帮助IBM击退了市场上各大竞争对手,得以在20世纪80年代前一直稳居计算机行业的主导地位。这背后主要是因为System/360的技术创新推动了市场对计算的整体需求,消除了计算机技术的诸多谜团,使得更多工程师在该机器上运行软件。

值得一提的是,不同于OneFlow此前写过的Multiflow公司,基于VLIW这种颠覆性的单一原创技术去制造新型计算机,System/360的成功更多是组合了当时的诸多新想法和新技术,最终产生了巨大的聚变效应。

他们以市场需求为导向,按近10年技术发展的预测去实现产品。比如,System/360必须提供的新功能:大内存、远程通信和处理、交互式模式、多用户环境。他们还提出通用性和计算机家族等革命性概念。为了解决这些问题,在技术实现上他们尽量采用最新技术,比如超大主存储器、固体逻辑技术(混合集成电路)、中断处理、优先级,用微编程实现复杂指令等。

这一切的核心在于OS/360操作系统,这个最终花费了5亿美元的系统成为计算机行业事实上的标准,更为后来的大型软件研发留下了宝贵经验。System/360的代码量从一百万行最终增长到了一千万行。

尤其兼容性思想是一个伟大的观念革新。它第一次实现了兼容多款机型,在一定程度上解决了用户在升级计算时遇到的重编程问题。这套新系统提升了新功能的价值,并使IBM能以相对较低的成本生产新机器。在它之后,他们很快就生产出与其兼容的IBM 370,运算速度最快的370/168机型可达到每秒250万次。

System/360还有其他一系列技术创新。软件工程的必读“圣经”《人月神话》第五章“画蛇添足”中提到了动态链接库、运行时快照和调试等开创性工作。此外,IBM将其数据格式由当时最流行的6位字节转变成了现在所用的8位字节,使System/360满足各种计算处理的需求。而它所推出的固态逻辑技术是集成电路的先驱,使得机器比当时的竞争产品更快、体积更小。

当然,System/360的优势后来也成为它的弱点,由于它采用同一种体系结构的计算机家族,所以一旦竞争对手发现其体系结构的缺陷,就可以打击IBM的全线产品。但这是另一个故事了。

7804223a-5b9e-4055-95cb-88a4369ccffa.png

Vincent Learson, Bob Evans, Frederick Brooks, Erich BIoch, Gene Amdahl

更重要的是,小沃森、利尔森的强大魄力和冒险精神使这一切变成可能,后来参与设计System/360的关键人物也获得了极高荣誉。

作为System/360和相关项目背后的主要驱动力,利尔森随后接班小沃森成为IBM总裁。凭借在此项目中的杰出贡献,负责兼容性目标和整个System/360事业的工作组组长伊万斯由于升任IBM技术副总裁,并且与工作组成员布鲁克斯被并称为“IBM/360之父”,1985年,他们还与架构经理艾里奇·布洛赫(Erich BIoch)一起获得了美国国家技术奖。

布鲁克斯提出许多现代计算机体系结构新概念,比如“计算机架构”一词,他还发现了软件开发的“布鲁克斯定律”,他曾提出程序中断系统理念,这启发了世界上首个交互式多道程序操作系统的设计,让用户在击键时就能看到屏幕显示,而计算机运行却不会产生混乱。1999年,他获得了图灵奖,以表彰其“对计算机体系结构、操作系统和软件工程作出了里程碑式的贡献”。

工作组成员阿姆达尔发明了计算机体系结构理论中的“阿姆达尔定律”,即并行计算的能力受限于串行指令。他在1969成为IBM Fellow,但在1970年被IBM否决掉开发巨型机计划后,他连续创办了阿姆达尔公司、三部曲公司、CDS等五家计算机公司。

布洛赫主要负责固态逻辑技术的研发,为System/360提供卓越的功率、速度和内存,所有这些都成为了计算的基础。他在IBM工作了32年,期间还开发了STRETCH超级计算机系统,曾被任命为IBM数据系统部门的副总裁。

System/360之后,再也没有出现将如此量级的投入押注到一款产品系列的案例。甚至,小沃森制定了一项政策:“永不宣布将超过25%以上的产能专门投入于其中的新技术。”

如今,它所带来的技术创新和对计算机产业的影响,至今还在发挥巨大作用。可以想象,如果没有IBM System/360,计算机的大众化将严重滞后,PC信息时代的繁荣也将无从谈起。

主要参考资料

1.《计算机简史》,马丁坎贝尔-凯利等著,蒋楠译

2.《小沃森自传》,小托马斯·沃森、彼得·彼得著,梁卿译

3.https://mp.weixin.qq.com/s/NsPn4S2z2M4LHQULdNLICg

4.https://www.ibm.com/ibm/history/ibm100/us/en/icons/system360/

5.https://www.theregister.com/2014/04/07/ibm_s_360_50_anniversary/

6.http://tipc002.informatik.uni-leipzig.de/cs/Literature/History/FiveMillGamble1.pdf

7.https://spectrum.ieee.org/tech-history/silicon-revolution/building-the-system360-mainframe-nearly-destroyed-ibm

8.https://cacm.acm.org/magazines/2019/2/234352-a-new-golden-age-for-computer-architecture/fulltext

9.https://www.nytimes.com/2016/11/30/technology/erich-bloch-who-helped-develop-ibm-mainframe-dies-at-91.html

其他人都在看

欢迎下载体验OneFlow新一代开源深度学习框架:https://github.com/Oneflow-Inc/oneflow/


43200f1c-c606-49e5-8ea6-eec3c470fd6b.png

本文分享自微信公众号 - OneFlow(OneFlowTechnology)。
如有侵权,请联系 [email protected] 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK