在1964年S/360系列被IBM投放到市场上之前,大型机对用户来说更像购买一台计算器,或者是我们家里购买的一台家用电器。一旦买来或者租来,一定是有固定的目的或者用途。当时的大型机分成商用和科研用两种。后者有浮点计算功能,所以贵一些。而让这些大型机工作的指令(也就是软件)被认为是这些机器天然的组成部分,不可分割。这样做的好处是有效率。因为所有的软硬件都被完全匹配,运行起来无需多余的编译和解释。但对用户来说,这种使用方式有一个致命的缺陷,就是无法升级。在五六十年代,可能这还不是一个重要的缺陷,因为大型机的用户租赁这些机器都是为了单一用途。就好象我们买一辆汽车开旧了后,再买一辆新的,我们不会认为需要把旧汽车的系统软件拿下来,放到新汽车里。因为新汽车的软件可能更好用,而且汽车软件成本跟汽车相比实在太低。
但是事情并不是一成不变的,当大型机的基本构件从电子管转变成二极管,二极管又继续被压缩成集成电路时,硬件成本持续降低,性能持续提高,而软件的成本比重持续增加。发展下去在历史的某个交汇点上,用户就出现对计算机多用途使用的需求,商用和科研用的界限将会模糊。IBM能够在1964年就看到这个问题并提出了S/360 系列的解决方案,确实比较高瞻远瞩性。360这个名字的含义就是包含商用和科研用的全方位的解决方案。也就是说,IBM要开发一系列架构类似但配置不同的机器,它们之间具有兼容性,可以升级,而且系列里的不同型号可以满足商用或者科研需求。这一设想可能跟IBM当时既做了SAGE系统的交互式计算机,又做了很多与其类似的航空机票预定系统的项目有关,这些项目要解决的基本问题是类似的,但又有不同的处理量和侧重点。所以其硬件配置不同,软件具有相同的逻辑结构。当我们不断处理类似的问题时,一个自然的想法就是将解决方案标准化。于是IBM发现如果能够重复利用现有的软件,并让软件能在不同性能的机器上运行,就可以让客户很容易升级,而且节省不少资源。而要做到这一点,关键需要增加一个中间的转换层,这就是微程序。
微程序的基本思想在1951年已经出现,不过IBM是第一个把这一思想付诸实践的公司。要理解微程序,需要对计算机的中央处理器进行一下简单的描述。计算机的中央处理器一般由控制器和执行单元(算术逻辑单元)组成。控制器负责指挥执行单元的各个部分来完成指令任务。在360之前的大型机,这两部分都是通过逻辑电路固化的。这样做的好处是执行效率高,但缺点是只能运行为本机开发的程序,别的程序无法运行。IBM在360系列的设计中将控制器部分软件化,也就是使用微程序,通过微程序来将指令分解成操作命令。同时把原来固定功能的执行单元的不同寄存器全部变成一般寄存器(共16个),由控制器来动态指定其功能。这样一来,从理论上讲,如果360系列想要运行为别的计算机写的程序,只要通过调整控制器的微程序来模拟该软件原来所需的计算机的控制器和相应的执行单元的构成就可以了。于是兼容就实现了。
这个设计看来简单,但当时IBM能够这么做并不简单。因为用微程序消耗计算资源,降低运算速度。对寸字寸金的60年代初大型机来讲,这不是个好的选择。可是,往后看20年,如果一个领导人意识到随着企业业务的复杂性增加,软件的成本会不断上升,而硬件的价格会不断下降,所以通过只升级硬件和兼容来锁定用户势在必行时,用微程序便成了明智的选择。更鼓舞人心的是,当IBM决定走这条路之后,它不但使用了微程序,还通过自主创新,结合了当时出现的集成电路技术来设计了360的硬件部分,所以其硬件速度变得更快。这样一来,综合计算效率不但没有降低,反而增加了。当IBM用360系列来兼容其老机型时,对所有的机型,效率都有所提高,有的比如1401 ,速度提高达10倍。
IBM System/360系统的一个展示安装
除了微程序,IBM还为360 系列开发了操作系统。介于应用程序和计算机硬件之间的操作系统可以认为是在微程序基础之上的又一个兼容努力。给360系列设计操作系统相当复杂,因为这个操作系统要实现多道程序同时运行(这样可以充分利用中央处理器),兼顾系列中不同配置的机型,以及各种机型和其程序所需的不同文件读写要求。所有这些都要在操作系统中被考虑到,结果操作系统的复杂性呈指数增长。而IBM在尝到360系列的市场甜头之后,希望把操作系统尽快推出。可是,由于设计的复杂度,第一个操作系统直到两年后才推出。在此期间,IBM为了加快进度,一度添加了很多人手到该开发项目中来,可结果不但没有加快进度,反而减缓了进度。原来,把一个复杂的项目分开进行开发,然后又要协调其整合,本身就需要时间,而当把其分割过细时,协调不同开发部分的进度成了瓶颈。对此深有感触的该项目负责人布鲁克斯说,一个女人怀孕九个月可以生下一个孩子并不意味着九个女人怀孕一个月可以生下一个孩子。而如果非要让九个女人来做这件事情,生下来的将是九个不同的孩子。布鲁克斯后来离开IBM到北卡大学创立了计算机系,写了两本软件工程界家喻户晓的书,“没有银弹”和“人月神话”,并在1999年获得图灵奖。
IBM为研制S/360前后共投资了50亿美元(60年代的美元)。这笔投资相当于美国的曼哈顿计划总投资的两倍。技术上的突破给IBM带来商业上的成功。因为IBM使用租赁的方式提供计算机服务,所以360系列也是以租赁为主,其不同型号的月租赁价格从2700美元到11.5万美元不等。这就满足了不同层次的商业用户需求。360大型机成为包括航空公司,银行,GE等等在内的美国众多企业电子商务的基础。IBM的原有客户纷纷购买360,并将原来的程序移植到360上,为将来的升级做准备。而新客户看到可以通过只升级硬件来满足未来业务增长需求的好处,也选择了360。作为非商业用户代表的联邦政府也是360的大用户。美国航空航天局,税务局等纷纷将他们的计算机置换成360系列。结果S/360在1964年4月上市一个月就卖出了1100台,五个月后,销量翻了一翻,这使得S/360在美国的安装数占到了IBM过去所有计算机的1/5。而IBM在商用计算机领域占据了70%的市场份额。到1971年,IBM从360上获得的纯利达10亿美元。到70年代中期,IBM凭借360的优势占据了美国半个计算机市场。在这20年过程中,美国的大中型企业实现了核心业务的计算机化,传统的企业商务开始走向“电子商务”。
不过也就是从这个时候开始,美国的计算机市场的根基开始发生革命性的变化。不久统一的计算机市场将被打破。企业电子商务将从大型机时代开始逐渐进入分布式计算时代。
转载本文请联系原作者获取授权,同时请注明本文来自万赟科学网博客。
链接地址:https://wap.sciencenet.cn/blog-39023-506831.html?mobile=1
收藏