• 退休园地

王世业:非凡的 719 计算机

2014.09.09

王世业
  • 造机背景

四十一年前的时空,文革正酣。1972 年 12 月 26 日,本来是个特定的日子,但是那天复旦广播台停止了平常的中午节目,宣布一个喜讯:复旦 719 计算机联调成功,同时复旦大学革委会给予热烈的祝贺,大喇叭里随即播出由计算机演奏的东方红乐曲,虽然单调,却很响亮。当时许多人很惊奇,欢呼雀跃。有些学生,涌向机房要求参观。其中计算数学第一届工农兵学员要求老师带他们上机。领导也很高兴,以为计算机造好了。其实计算机奏东方红,只是一个标志,它离正式使用还有许多工作要做。

时间再往前推两年即 1970 年 10 月,那是我们进长宁拉手厂的时间,是复旦人造新一代计算机开始的圆梦时刻,这时刻来之不易。

徐研人曾介绍过的复旦 602 计算机,这是第一代电子管时代计算机,第二代晶体管时代计算机复旦未涉足。由于 602 稳定性差一些,数学系又从北京 738 厂买了一台 M103 机,这是前苏联有关机型的的国产化。进入七十年代,电子管计算机都进入淘汰之列,再说在性能和功能上也已不适应计算机应用的发展,当时有些老师有课题要用计算机,他们用的是上海计算中心的 X-2 计算机,它是第二代。当时上海也没有什么计算机可用,据说交大有一台哈军工造的 441B,一般不对外,因此复旦想造新一代计算机是很迫切的。

计算机的升级也决定于电子器件的换代,当时已进入第三代集成电路,七十年代初国内集成电路还是小规模的,基本上是门电路级别,由于成品率低,使集成电路价格昂贵,复旦想造计算机只能是个梦想,那时候无经费渠道,没有钱,简直寸步难行。

庆幸的是复旦当时的相关领导,经过努力,取得上海科委(当时对外叫三办)的支持,根据上海市科委的指示和发下的正式文件,我们的名义是厂、校、研三结合,成立了领导小组,共同研制第三代计算机。三结合中的校是复旦大学,研是上海计算中心,他们是科委直属单位,原是华东计算所分出的一个科研与计算服务单位,厂则是市手工业局下布点的长宁拉手厂,具体从事计算机的加工与生产任务。当时市科委许诺为复旦下达 30 万元经费,复旦也答应自筹 30 万元。这样,我们便开始组织队伍。复旦有造计算机的光荣历史,有智慧有人才,正摩拳擦掌。在当时已有部分老师被借调到相关的军工项目去会战,得以施展才能,这其中有些人后来充实到造机组,为造机增添了新鲜血液,也带来了当时在学校里很难得到的许多新思想和好经验。

 

  • 蓄势待发

造机组初期不到 20 人,在我们刚进厂时,计算中心的设计工作已全面铺开,总体组是容不得我校人员的插手,我们全部人马被充实到生产第一线,比如元件老化和固体电路测试,焊接印刷线路板,测试和穿磁芯,加工电源等工作。

厂校所的三结合做起来是很有点困难的,例如当时上海计算中心对复旦似乎很有点戒备心理,我们大部分人是很难看到他们的设计资料,就常用下班时间借来逻辑图了解一下。他们的机器取名 709,规模是十万次浮点计算机,设计目标与他们正在使用与管理的第二代计算机 X-2 兼容,因此指令系统未作改动,这在当时,软件设计是省了件大事,编译系统可以不必重新构造。

这里有个小插曲,我们曾组织几个人阅读 709 的逻辑设计图,这一方面学习,一方面在筹划我们今后的机器。有一天陈增荣发现 709 逻辑设计有问题,进位链设计有错。上海计算中心得知此情,非常紧张,他们总体组连夜开紧急会议,研究对策:改吧,有失面子;不改,的确是错了,最后还是改正了错误。好在此事之后,他们对复旦也客气多了,这也方便了我们日后的工作。

在后来的使用中,复旦 719 机受到赞许:速度快、稳定性好,这与我们当时对逻辑设计的精心研究是分不开的。比如大家都知道一个维持阻塞类的触发器可用 6 个 “与非门” 构成,当它保存一个状态(0 或 1)、因接收数据或计数进位而需要翻转成另一状态时,原状态也是一个翻转的条件,通常应采用维持阻塞技术保证其有效可靠工作。709 机对原条件采用延迟线方法,时间不同步,难以控制,既浪费了时间,又因用单维持阻塞隐含了不稳定性。我们彻底否定了这类延迟线方法,在 719 机上逻辑设计采用双维持阻塞技术,完全与节拍同步,既提高了速度,又增加了稳定性,在此基础上我们重新设计了整个 CPU 的逻辑图,比如我们设计的进位链高速有效,提高了整机性能。

CJ-709 通用数字电子计算机使用说明书封面

  • 719名字的来历

可能有人会说,现在来讲 719 名字的来历,真没意思,其实今天的回忆是反映当年造 719 的曲折过程。

复旦是三结合单位之一,根据当时上海市科委的要求,要为 709 今后作为上海生产的品牌机而贡献力量。可当时的领导有所不知,709 为了兼容 X-2 机,总体设计则有着难以弥补的重大缺陷。特别是 709 采用的是通用印制版,大量部件要采用手工接线,这就带来三个问题:一不规范,二不标准,三不稳定。接下去,工厂今后如何标准化、产品化生产就成为空谈,所以那时厂方只能寄希望于复旦。

复旦的老师们踌躇满志,信心十足。对逻辑设计要作重大变更,重新设计指令系统,印刷线路板全部标准化,以便于今后批量生产。为此厂方对复旦给予了很大的支持,这在后来 719 正式与厂方结账时,可以体现出来,因为复旦自筹资金 30 万元有困难没有全额兑现,工厂做了让步。

到了 1971 年夏天, 709 要搬回上海计算中心去总装和调试,他们的人几乎全部撤出工厂,这样,那时的工厂几乎就是我们施展才能的天下,我们的设计与生产准备全面开始。

说到我们设计的计算机的名字,原来是受上海市科委的限制,要求跟 709 靠拢,而 709 有先天不足之处,复旦老师认为计算机重新设计势在必行。

时间进入 1971 年 9 月的某一天,楼荣生已迫不及待,竟让金工师傅在他设计并加工成的部件测试仪上刻下 “复旦 719” 字样。它的举动颇受大家认可,从此 “复旦 719” 的名字就不胫而走,并成为复旦计算机历史上不朽的名字。

现在我唯一尚存的、印刷精致的 “通用数字电子计算机使用说明书” 上的名字是 CJ-709,CJ 是工厂改名为上海长江无线电厂的厂标,709 是他们认为创业的名字,产品没有采用 719 的名字。按照现在的说法,复旦 719 的知识产权全部移交给了长江厂。

这里还有一个小插曲,可事关重大,因为上海市科委的经费并不是一开始就下达。在 709 总装时,一天科委主管老徐通知我,约我谈件事,我心中忐忑不安。老徐开始是以建议的口气:“复旦的计算机是否可不造了?” 我刚一听,吓了一身冷汗。“你们复旦需要用计算机,科委将计算中心的 X-2 机送给你们。” 这尤如晴天霹雳,我马上镇定了下来,答应向复旦领导汇报。好在复旦领导初衷未改,并重申复旦自筹资金 30 万会积极准备。为了迎接科委的答辩,我和曹邦伟做了充分准备,主要以下三个方面:复旦的资金筹集;复旦技术力量的雄厚;复旦的设计方案先进可靠,并在约定的时间,向科委汇报。是时,我们据理力争,并恳求科委的支持等。此间,长宁区手工业局也在积极争取,起了支持我们的作用。后来总算科委点了头,不久科委的经费就下达了,这才有我们大干的日子。

 

  • 大干快上

在当时,719 是一台相当适用的第三代计算机,设计指标是:浮点平均速度 12 万 5 千次每秒,内存总容量 3 万 2 千字(寻址范围达 2 的 15 次方)。字长 48 位(外加一位奇偶校验位),表示浮点数是阶码 8 位,尾数 40 位;满足 12 位字长的十进制数字运算。同样一个字长 48 位,可以作为左右两条指令,单地址操作。外部设备希望尽可能有,配有光电输入机,宽行打印机,用作外存的磁鼓,磁带机各 2 台。总体方案汇集各路诸侯,包括曾参加军工项目会战的好手,他们回到 719 都贡献了特殊的智慧。

当 719 总体方案定下后,逻辑设计就全面铺开,设计了一套具有特色的指令系统,包括了自动变址和间接访问,每条指令 4 个周期完成,并在第 4 周期取好下一条指令供分析用。并在设计中配置了一些高效指令,如取整指令,过去对一条浮点尾数的处理,可能要进入一个子程序去完成,而现在只要一条硬指令即可,大大提高了效率。

说到大干,有过一段很难忘的日子,这是全体老师参与印刷线路板的布线与制图。先根据逻辑图切割,使其成为若干独立的部件,雷同部件要能互换。接着,进入线路设计,要求一块双面板通孔金属化和排线,不得有任何交叉。一块板子线路设计好后则进入实际制图。为了节约经费,没有送专业制图单位绘图,而是采用铜版纸,全部自己绘图,几乎人人都有绘图任务。

当时双面印刷线路版制作工艺已经成熟,只要我们在铜版纸上把图画好,拍成照片,做好胶片,由专门的生产单位去完成。记得在此过程中,陈志刚、李应华两位大将画的图既多又好,大家交口称赞。这里应强调的是印刷线路板全部标准化,为工厂日后顺利生产铺平了道路。

还有一个大难题是集成电路,这是个令人揪心的问题。当时上海处于初期生产,成品率低,价格昂贵,一块普通的门电路都要 20 余元。当时 719 机使用的集成电路基本上是由上无十九厂生产。为了慎重起见,特派陈志刚驻生产单位,监督我们的组件能拿到合格产品。学校也很重视,还支援了物理系两位专业老师融入在他们的生产过程中。几千只集成电路陆续到货,要只只老化,只只测试,这有很大的工作量,为此,陈志刚设计并制成集成电路测试仪,起了很大作用。工作再艰巨、再辛苦,最后我们都完成了。

作为通用计算机,719 所配置的外部设备,从当时的情况来看还是比较齐全、实用的,有光电机,用于穿孔纸带信息的输入;高速 120 字符宽行打印机,用于打印程序,信息的输出;还有两种外部设备,磁鼓和磁带机,都是用于实时地记录存储信息,希望信息稳定且容量较大。

这些设备本身的机械结构,我们都是很陌生的,把它们和计算机连接起来,接口线路要设计是理所当然的。现在人们使用计算机的外设是完整的,即插即用,而当时我们买的是半成品,为的是省钱。

如打印机,当时可使用的是类似电传那样的串行打印机,我们没有采用。当得知上海计算机打字机厂有高速 120 宽行打印机时,我们考察了一番,但整机太贵了,后来决定仅买机头部分,李应华就去计打厂学习、考察,为回来设计控制线路做准备。

磁鼓是从贵州凯里购买其主体部分,回来自己安装。当时彭澄廉、李应华他们千里迢迢,到山沟沟的三线厂去学习、考察,其生活之艰辛,今天已难以言表。磁鼓是十分娇嫩,在上面装配磁头,要做到只只毫厘不差,耗了多少心血,从不言苦。磁带机也只买了机头及传动部分,并且派人去牡丹江厂里学习、考察,回来自己配置。

外部设备组的曹邦伟、朱传琪、鲍振东、彭澄廉、李应华等几位老师,说他们含辛茹苦完成任务是一点也不夸张的。

 

  •  磁芯存储体的诞生

说到计算机的内存,今天的人会不屑一顾,PC 机上一条内存卡就 4GB,买来插上即好用,又便宜。可在当时还未能有存储集成电路芯片,用于内存的记忆元件只有磁芯,即一个个小磁环,通过电磁转换,存储二进制的 0 或 1。要把几百万颗磁芯全部通过手工把它们串起来,且电信号要高度一致,这在工艺上可是个很难很难的事。从磁芯到组装好的存储体柜,其成本与加工费用也占用了当时机器的很大部分比例,可以讲当时造机最担心思、最有风险的事情就是存储体是否能成功地可靠工作,它甚至是计算机成败的决定因素之一。

当时通过关系从上海磁性材料厂购来一批磁芯,用了十几万元,价格昂贵已是不争的事实。我们采用的磁芯是最小的,一个小磁环,外径大约 1.5 毫米,内径不超过 1 毫米,倒在碟盆中就像一盘密密麻麻的黑芝麻。在这不超过 1 毫米的小孔中要穿过三根漆包线,其中两根分别是 X 地址、Y 地址的驱动线,另一根则是读出线。后来经测试实际读出时间不超过 1.4 微秒,保证了最快的指令能在 2.4 微秒内完成。小磁芯存储体功耗少、速度快、体积小,但它给手工穿线带来很大难度。为保持一致性,对每颗磁芯要进行测试,从大量磁芯中,至少要选出 150 万颗待用。穿磁芯可比绣花还要精细,一点不能差错,一点不能互碰。719 机内存体设计成 48 块大磁芯板(字长 48 位,每位对应一块)。一个人大约 7 天可穿好一块,穿好后要反复测试,不合格即返工,其工程难度,自不待言。

历经了艰难和风险之后,一个稳定的、快速的存储体按设计指标完成了。整个工作自始至终是孙尧年领着一大帮人克服种种困难完成的,她呕心沥血,献出了智慧和力量,今天来说,孙尧年是造 719 机的一大功臣是一点也不过分的。

 

  • 朱传琪&褶积器

在 719 正式使用时,有个用机大户--地质部第六物探大队,他们几乎包了全部夜里的计算机时间。地质部组织一大批人,在苏北寻找大油田。找油的方法是在一个石油点的周围,埋上百个放炮眼,放炮时用地震仪记录下数据,不同地质结构其数据不同,通过计算迭加,确认哪个点真正有油。物探大队找到吴立德他们的课题组合作,经过奋战,他们已经找到有效而可靠的计算方法。当时 719 机就是最合适的了,整个夜里时间包给他们,由于数据量太大,对于 719 这样的计算机就显得太慢了!

信息论组的汪嘉冈找了我们的朱传琪,两个大才子,一个绝佳组合,研究在 719 机上如何加快计算速度。朱传琪根据汪分析的算法特点,运用阵列机思想,一个叫褶积器的数据处理加速器诞生了。它在一个节拍完成 3 个乘加运算,一个周期有 6 个节拍,根据简单的推算和实际比较,运算速度至少提高 20 倍,这在当时的计算机条件下,可算得上是一个奇迹。

褶积器之所以能顺利计算,还得感谢曹邦伟,他有在某军工项目中设计的经历,在设计 719 外部设备控制线路时,设置一个模--数转换接口,这就解决褶积器原始数据的输入问题。现场放炮时记录下的数据是模拟数据,初始必须把它们转换成计算机纸带输入数据,才能进行运算。现在有这个接口, 可接上模--数转换设备,把原始的野外采样磁带上的模拟数据直接转换进入内存,供褶积器高速运算之用,而不必经过纸带输入阶段了。

在 1978 年全国科学大会上,信息论课题组的 “石油地震数字处理” 项目荣获科学大会奖,这在当时是个大奖。在这个大奖的后面,719 也是功不可没的!今天回忆此事,已逝为一代人的记忆了。

 

  • 软件设计新思想

自从有了 ALGOL 60 算法语言,计算机有了编译系统软件,但在当时我们对 “操作系统” 这个词还十分陌生。直到后几年,潘锦平和盘介绍 NOVA 机的纸带软件,方知有了实时操作系统(RTOS),它是一个小型计算机外部设备控制系统软件。

719 编译系统的开发,还是具有挑战性的,对我们来说,也是大姑娘上轿--头一回。它主要的三部分:词法分析、语法分析、代码生成分别由夏宽理、招兆铿、施伯乐三位先生最后完成的。用户在应用算法语法编程时,出现的词法错误、语法错误是五花八门的,编译系统要能及时判断,准确报错。如果源代码扫描无错,还得生成可执行的硬指令代码,整个系统要好用,报错对象准,并且要正确、快速进行编译。719 投入使用受到广泛的称赞,与一个好的编译系统是分不开的。

几十年后的今天,提起当年的 “小宁波”,人们还是翘起大拇指称赞他,他就是后起之秀夏宽理。他的编排部分工作量最大,那时他尚无家室之累,经常废寝忘食,日夜苦战。他运用了当时最新思想 HASH 技术,也就是后来人们在数据结构中见到的杂凑法。运用这一技术,造表、查表速度很快。各类先进技术的综合运用的成功,使 719 编译系统上了一个台阶,就是效率高,比同类机器省了许多宝贵的时间。

719 设计中,还有一个引人注目的特色,即控制台中断。这一技术在没有操作系统的机器上实现是颇具匠心的。有了它,在程序启动之后可以人工干预运行的程序,当按下控制台中断开关后,则进入一个中断管理程序,可临时停机,打印中间结果或转移到另外一个程序去处理相关任务,然后再返回到原来程序运行。楼荣生早就在琢磨这件事,后来周天爵加入造机组,他们设计并在早期实现了在现代操作系统环境下才能完成的操作思想。1982 年楼荣生还在《上海市电子计算机应用技术》杂志上介绍了控制台中断及软件实现技术,这在造机的十年之后,还能作为技术文献发表,可见它的历史意义所在。

 

  • 719的社会贡献

 

经过群策群力,艰苦奋斗,719 计算机造好了,在复旦得到了很好的应用,并获得良好的声誉。同时通过造机,也造就了一大批人才,塑造了自己的专家,为日后全国第一批成立计算机系起了推动作用,也为复旦日后研制 753 大型计算机积蓄了力量。

其次,719 投入使用,不仅为计算机相关专业的教学提供了舞台,也为全校非计算机专业师生使用计算机开辟了新天地。复旦计算机史上,第一次有了用高级语言编程的机器,一大批理科教师在科研中也开始使用 719 计算机来计算他们的课题。719 机的成功使用与推广,也在整个上海乃至华东地区有效地促进了计算机的应用和人才的培养。

再则,由于 719 的所有部件均标准化,它的研制成功,使日后顺利地批量投入生产成为可能。当时在上海,只有华东计算所有一台号称每秒百万次的大型计算机 655 在试用,再就是上海计算中心刚造的独此一台 709 在用。至于不少无线电厂在造的小型定点、全盘国产化的 NOVA 机,它既无高级语言,也不适合科学计算,主要用于专业教学及控制方面的应用。而复旦研制的 719 浮点计算机,性能稳定且速度比同类机快,有良好的声誉,正是适逢之时。因此当时上海不少高校都先后购买了 719 机,还有一些科研单位,军工单位,外省市高校也纷纷购买 719 机。长江无线电厂原隶属于上海手工业局,他们顺势布下新的生产点,据统计,整个局下属厂家先后共生产了 73 台 719 机(他们出厂名叫 CJ-709),这个数字给企业带来了可观的经济效益及潜在的社会价值,具有深远的影响。

719 电子数字计算机全貌照片

王世业同志照片

 2014.12.16.  修定稿