中国计算机自己的故事(夏培肃——甘做中国计算机基石)
夏培肃(1923年7月—2014年8月),计算机专家和教育家,中国科学院院士。试制成功中国第一台自行设计的通用电子数字计算机。在高速计算机的研究和设计方面做出了系统的创造性成果。解决了数字信号在大型高速计算机中传输的关键问题。设计研制的高速阵列处理机使石油勘探中的常规地震资料处理速度提高10倍以上,提出了最大时间差流水线设计原则,设计研制成功多台不同类型的并行计算机。
“一个人在一生中,常常会有一些改变命运的重要转折点。对于我来说,这个重要的转折点出现在1952年秋天的一个晚上,当我第一次谒见华罗庚教授时。”在回忆这段经历时,夏培肃恍如昨日。
研核是非 巨细无遗
夏培肃的数理基础非常扎实,惯于条理清晰、逻辑严密的论证。这些都与她的求学经历有关。
夏培肃上大学时,有一门基础课程叫“电工原理”,听课的人很多,由于女生宿舍离教室很远,她赶到时常常没有座位,只能站在教室后面听课。期末考试的时候,她虽然及格了,但是自己对这种似懂非懂的状态很不满意,于是下定决心重学一遍。在重修课程的那段时间里,她放弃吃早饭,早早去教室抢座位,坚持了一个学期。最终完全听懂了老师的讲授,期末也考了90多分。
打好了基础,后续的专业课程夏培肃再也不觉得难了。研究生期间,她在“电信网络”课程考试中第一个交卷,并取得了满分。那时她对张量代数特别感兴趣,于是写了一篇《电路的张量分析》报告交给张钟俊教授。不料张教授看完后给她一一指出不足,认为她的某些论断不够严谨,数学基础不扎实,理论上也还需要再提高一点。
这件事对夏培肃的影响很深,她开始懂得做科研工作不能想当然,需要非常严谨,每一句话都要有根据,每一个细节都不能放过。
夏培肃调入电讯网络研究室的第一个任务是熟悉闵乃大教授的“电讯网络”讲义。由于早年学习过“电信网络”,后来又接触了不少深层数学知识,夏培肃理解讲义完全没有障碍,甚至发现了一个隐蔽的小错误。刚开始闵乃大不认为是错,他们俩在办公室的黑板上争论了几次,都没有结果。夏培肃就一丝不苟地用复变函数的方法一步一步把结果重新推导了一遍,闵乃大才发现了错误,也由此对她刮目相看。
1952 年的秋天,夏培肃在华罗庚先生的家中表达了愿意搞电子计算机的想法,她的人生从此与中国计算机事业交汇。当时苏联的计算机技术遥遥领先,而我国在这个领域还是一片空白。
由于计算机是一门新兴的学科,许多专业名词都是英文和俄文的。当时,国内没有人懂计算机。夏培肃和小组成员们从零开始,到图书馆的英文期刊中摘选关于计算机的文章,并委托在国外的同学邮寄一些英文的计算机书籍,广泛阅读,以此来启发思路。
1956年,国家派出了一个计算机技术赴苏考察团,计划考察回国之后就着手仿制 M-20机。夏培肃也是其中一员,她被分到通用计算机研究室学习M-20机的总体设计和运算控制器。经过深入学习,夏培肃对M-20机有了清晰的认识。
细致入微 严谨制造
1956—1962年,清华大学、中国科学技术大学等高等学校合作承办了4届计算机训练班,夏培肃主讲“电子数字计算机原理”课程。
可是讲什么?怎么讲?中国并没有统一的计算机原理教材。要想弥补人才稀缺的短板,在教育这一块必须打好坚实的基础。于是,夏培肃开始着手编写计算机原理讲义。她在为一些术语定名时字斟句酌,力求将每个名词概念准确翻译和表达。
1959年,计算技术研究所的领导将计算机教研组改名为107计算机研究组,由夏培肃负责。其实夏培肃很早就开始了107计算机的设计,但为了培养我国自己的计算机专业人才,夏培肃承担起了计算机训练班这项艰巨而光荣的任务,暂缓了107计算机的设计。
夏培肃从大学开始,做的电路实验所用的电子管型号和特性都是美国标准的,但北京电子管厂在苏联的帮助下建成投产之后,所生产的电子管型号和特性都是苏联标准的。电子管虽然小,却是制造计算机最基础的元件,型号不合是万万不能的。于是夏培肃让训练班的全体学员都用苏联标准的电子管做基本电路,以此来了解苏联电子管的特性。
当时计算技术研究所按照苏联图纸复制的103计算机很不稳定,打开或关上机房的日光灯都会产生电磁波干扰,每隔半小时左右就要出现一次故障。为此,夏培肃设计了一个很稳定的触发器,不会因为随意开、关日光灯而造成触发器翻转,为107计算机的稳定运行奠定了基础。
在107计算机加工前,夏培肃让在实验室做毕业设计的学生对机器所用的电容和电阻进行了严格的筛选和测试。当时的人工焊接很容易出现虚焊,为了准确检测,夏培肃亲自动手,提出了单脉冲循环的检查方法来确保万无一失。
到调试阶段,夏培肃又编制了计算机电路、插件、部件和全机联调的调试手册,将先做什么,后做什么,每一步都写得清清楚楚。在调运算器时,为了找出除法调不出来的原因,她花了一个通宵,发现了设计时的疏忽——除法器中有一个信号没有和时钟脉冲对齐,并很快修改解决了它。
1960年年初,107计算机搬迁到位于北京玉泉路的中国科学技术大学。由于房间紧张,107计算机被安置在一间没有通风系统的大教室里,只有窗户上的排风扇和教室里的几台电风扇来为电子管散热。在这样的情况下,107计算机仍然能正常工作。
同年4月,107计算机连续无差错地工作了20.5小时,最后是人工停的机。根据美国公布的资料,冯·诺伊曼设计的EDVAC于1951年研制成功,到1960年才能达到每天超过20小时的生产性运行,平均无差错工作时间为8小时。107计算机的稳定工作时间比当时仿制苏联的103计算机无差错工作时间长几十倍。直到1962年,有专家对107计算机做技术鉴定,在机器运行程序的过程中突然断电,再合闸后原本运行的程序仍然能继续正确执行。
大胆设想 小心求证
夏培肃对待工作力求稳妥,可这并不意味着按部就班的一味谨慎。面对未知,她也会大胆地提出假设,并且认真求证,以保证最后的结论是真实可靠的。
20世纪50年代,国内外计算机所用的电子器件几乎都是电子管。然而随着时间的推移,电子管暴露出了很多问题:功耗大、速度慢、电源种类多、体积大、寿命短。这些缺点使得新型器件的研究迫在眉睫。计算技术研究所的阎沛霖所长认为夏培肃适合做开创性的工作,于是让她负责预研组,去开展计算机新型器件的研究。
作为一个试探性的研究,预研承载着大家的希望。1960年前后,美国人Sterzr提出了微波分谐波技术,以此得到的微波频率可以达到千兆赫,比电子管计算机的时钟频率高了近百万倍。据报道,日本曾做成过一台这样的计算机,这让夏培肃看到了希望。她迅速安排人员进行微波分谐波振荡器的实验。经过不懈努力,终于做出了一个具有双稳态的微波元件。
然而,在实际运用中,夏培肃与课题组成员发现用微波元件做计算机有四大困难:一是元器件体积过大,每个器件必须输入一个泵频;二是构成逻辑电路不方便,如何实现基本逻辑,器件之间如何耦合,都是未知的;三是微波传输困难,元器件之间的连线太过庞杂;四是微波振荡的分谐波过程太长。
深思熟虑之后,夏培肃向阎沛霖所长汇报微波元件的进展情况,如实说明了主要问题。她坦言,微波计算机在当时是无法实现的。最终,微波计算机的课题在1965年上半年正式结束。
在研制双稳态微波器件的同时,夏培肃注意到了日本学者江崎于1958年发明的隧道二极管。隧道二极管的主要优点是具有负微分电阻(负阻),能高速工作,因为它是一种多数载流子器件,不受少数载流子存储影响。它的开关时间可以达到1毫微秒,当时的晶体管开关时间尚且在微秒级。这对一心想做高速计算机的夏培肃来说,无疑是具有吸引力的。
为了开展隧道二极管的预研,她亲自去南京的一个半导体所协商,解决了器件的来源问题。接着又开设了一门“隧道二极管电路原理及变参数振荡原理”课程,来帮助预研组的人员了解其电路的工作原理。1965年,汇总了预研组3项研究成果的《隧道二极管在快速计算机线路中的应用》在全国第四届计算机学术会议上发表。
在研究隧道二极管电路的过程中,夏培肃注意到这种电路的负载能力差,带不动很多负载,而在计算机中,有时负载是很重的;而且隧道二极管的器件重复性较差,不便于集成电路的大批量生产。经过种种权衡,夏培肃舍弃了采用隧道二极管的方案,提出晶体管可能是计算机的主流器件。
夏培肃的一生,对待任何工作都认真严谨、一丝不苟。早年在计算机训练班和中国科学技术大学讲课时,所讲内容虽已讲过多次,但在讲课前,她仍会像第一次讲课那样认真准备,而且每次都要增加新内容。
李国杰院士曾说:“在我的印象中,夏先生最大的特点就是严谨。她曾主持编写《英汉计算机辞典》,负责《计算机科学技术百科全书》体系结构分支的编审定稿,对每一个字、每一个标点符号都仔仔细细地审阅校对,以至于影响了身体健康。90 岁高龄时,她还在计算机上一字一句地修改为《20世纪中国知名科学家学术成就概览》写的传记,她为自己审定的成就概览没有一句浮夸之辞。”
夏培肃面对诸多宣传时一再强调:“不要宣传我个人,都是大家的功劳。”中国计算机事业的发展,确有无数人殚精竭虑、勇往直前,但夏培肃,无疑是这座丰碑最坚实的奠基人。