现代模块化的诞生——IBM/360电脑的设计革命
上一篇 / 下一篇 2007-05-18 20:35:34 / 天气: 热 / 心情: 平静 / 个人分类:标准化知识
在20世纪60年代前期,整个计算机产业的设计师都在寻求解脱困境的办法。在IBM,努力的结果是诞生了360系统———计算机的第一个模块化产品线。360系统在很宽的产品线上实现了应用软件的兼容,从而成就了对计算能力的巨大需求。这项成就本身将产生重要的经济影响,然而360系统的最终影响还要更为深远。
360系统的诞生是一个具有里程碑意义的事件。
———鲍德温教授(哈佛大学商学院前副院长)
———克拉克教授(哈佛大学商学院院长)
一、复杂性灾难与电脑设计的困境
世界上的第1台计算机是在1944年问世的,它由18 000个真空管组成,足足装了一屋子。虽然,从那以后,计算机及其程序和使用模式等等方面,均以惊人的速度向前发展。但是,从那时起,直到1965年之前的这20多年时间里,计算机都是整机制造的。当时的设计是相互依赖的(广泛联系)。因为每开发一款新计算机,都是为了具备某种新的特殊功能,以满足用户新的特殊的需求。所以,每开发一款新计算机时,指令集、外围设备、应用软件等都要从头做起。虽然新机型也会采纳和吸收老机型的一些经验,但整个说来每个新机型的产品线都是独立的、不同的、不能通用的,因而是不能兼容的。不同厂家,乃至同一厂家不同时期生产的电脑,其操作系统、处理器、应用软件等都不能兼容。用户一旦改换不同的电脑或更新电脑,就必须重新改写原来的程序或软件。这不仅给用户更换电脑带来极大麻烦,而且对电脑产业的发展极为不利。电脑系统的兼容问题便成了电脑产业发展中的突出障碍。
电脑设计师们为什么解决不了这个“老大难”问题呢?关键的难题就是计算机这个系统太复杂了。它的复杂程度和设计过程中要思考和处理的关联问题有如天上的繁星,令人望而生畏。
系统是由要素组成的,要素之间是相互联系(相互影响、相互制约)的。系统越来越复杂,要素越多,相互关联也越多,而且远远超出要素的数目。不仅识别这些关联困难,解决和处理(安排)这些关联更困难。处理一对关联之后,又会引起新的关联,“按下葫芦瓢起来”。这种无休无止的恶性循环,使设计师陷入泥潭。一位设计师回忆道:“你解决了一件事情的一个方面,而另一方面却脱节了。当你改正了这个,其他的又出错了。你不停地转来转去,无法生产出一个完全正确的形式。”例如,当你对驱动系统做出某种决定后,便引起了与主板有关的问题,继而又引起与显示屏有关的问题;当你对显示屏的参数进行重新选择,反过来又引起与主板的另一个问题,这又会反馈给驱动系统;重新调整驱动系统,又引起了线路结构问题,这个过程一直持续下去,处理这个相互依赖的关系链(这被称为“相互依赖型设计”),通常要花费很长时间,令设计师伤透了脑筋。这就是计算机这个复杂系统所造成的“复杂性灾难”。
被这种灾难所困扰的电脑设计师们,不可能像我们想象的那样,按照某种标准,遵循通用化原则,设计具有兼容性能的可以实现工业化大量生产的产品(那是模块化之后的事)。说当时的电脑设计是研究电脑也可以,是试制也可以,实际情况可以说是知识渊博、头脑灵活、技艺高超的电脑工匠在制作“电脑工艺品”。这种手工业方式生产的“工艺品”,不仅价格极其昂贵,只有像美国国防部那样的单位才能买得起,而且制约着技术创新、电脑的工业化生产和电脑知识、电脑产品的普及。因此,可以说能否摆脱“复杂性灾难”对电脑设计的困扰,关系到计算机产品的前途、电脑产业的形成以及信息时代的降临。
二、模块化———摆脱“复杂性灾难”的必由之路
模块化是解决复杂问题的一种方法,早已为人所知。我国北宋时代的毕昇早在公元1041~1048年间发明的活字印刷术,就非常成功地运用了标准件、互换性、通用件、分解与组合、重复利用等方法和原则,来解决雕版印刷所遇到的复杂性难题,可以说是人类社会较早出现的模块化杰作。到了工业化时代,模块化更是大行其道。那么电脑设计师们为什么不能一开始就采用模块化的设计路线呢?
从1944年到1966年这个模块化之前的时代里,计算机设计师们在从事着所谓的“相互依赖型设计”过程中,遇到种种困扰时,可以说每个人都在寻求出路和解决问题的方法。那些制造“电脑工艺品”的“工匠”们是了不起的开拓者。他们当中一开始就有人提出模块化的主张。高等研究院的约翰?誗冯?誗诺伊曼(John Von Neumann)、剑桥大学的莫里斯?誗威尔克斯(Maurice Wikes)和IBM公司的拉尔夫?誗帕尔默(Ralph Palmer)等人就曾有过模块化操作[1]的概念,他们设想设计者可以把系统分割为不同的组件,或替换组件,或归纳一项好的决计方案,或把一个组件从某个系统移植到另一个系统。但是,这种全新的思路意味着把现有的系统推倒重来,根本无法在当时已有的系统中实施。因为计算机这个系统太复杂了,对计算机的模块化设计远远不会像由雕版印刷向活字印刷转变那么容易。不是仅仅有了一个想法就能实现的,它需要一系列前提条件。这正如鲍德温和克拉克所说:“计算机设计的模块化———这个产生巨大经济影响的过程,同时也是一个历史过程和知识积累过程。这个过程是分阶段进行的,每一阶段都利用了此前各阶段所积累的知识。而且在较长的时间内,这个过程在经济效益上是很不显著的,其间的里程碑都是些鲜为人知的小的技术进步。”这是对模块化发展过程最具唯物主义的概括。在这20多年时间里,计算机设计的知识积累以及模块化设计思想的孕育,大体经历了如下的一些阶段和过程[2]:
1. 1944年在美国国防部的资助下,由J?誗Presper Eckert Jr和W?誗Mauchly领导的小组在宾西法尼亚大学建造了一台名为ENIAC的计算机(电子数字积分计算机)。当时,计算机的设计知识主要存在于这少数几个人的头脑里。生产完全是在试错过程中进行,应用则完全是实验性的。设计、生产和应用相互交叠、不可分割。每一个设计参数、每一种生产上的限制条件、每一种新用途的想法,都能引起一系列的连锁反应。任何微小的发明和改进都算得上是英雄壮举。