亲,欢迎光临天天书吧!
错缺断章、加书:站内短信
后台有人,会尽快回复!
  • 主题模式:

  • 字体大小:

    -

    18

    +
  • 恢复默认

技术状态冻结会议后,总集成方案也随后敲定的。

方案定了调子:硬件分层上架,微程序逐级唤醒,操作系统最后就位。

不是一口气把所有板卡塞进机柜、一次性上电。

那是蛮干。

任何一个连线虚了、任何一颗芯片坏了、任何一条微程序写错了,整台机器都可能起不来。

出了问题,连从哪儿查都不知道。

所以方案定的是层级推进。

最小系统先跑起来,然后是功能子系统,最后才是全系统。

每个层级都有明确的硬件配置状态、对应的微程序集、验收标准。

一步一确认,确认一项,往前走一步。

1970年1月1日,凌晨五点,京城还在沉睡。

一辆跃进130卡车亮着昏黄的车灯,停在红星轧钢厂防静电车间门口。

跃进130的车厢上驮着一个墨绿色的铁皮货箱,那是雷应元带着毛建华、邹明等人赶制出来的板卡集运货箱,四四方方,棱角分明,侧面用白漆喷着几个字:“特种运输·昆仑专用”。

货箱的侧壁上有两个小观察窗,双层玻璃,里面挂着干湿球温度计。

透过玻璃,隐约能看见货箱里三层货架上整整齐齐码放着的抽屉。

银白色的钢制框架,前面板装着锁紧手柄和状态指示灯,每一个抽屉上都贴着标签。

电源、时钟、主控、运算、存储、I/o……

六个抽屉,今天要用的全部都在。

宇文坤德戴着白手套,一颗螺丝一颗螺丝地确认,一块板卡一块板卡地看,所有抽屉的锁紧机构都反复开合了三次,确认弹起有力、锁止可靠。

万人敌拿着万用表,把每个抽屉背面的金手指都测了一遍接触电阻,数据全部记录在案。

吴国华最后走了一遍自检程序,六块板卡全部通过,指示灯亮得整整齐齐。

吕辰站在货箱前面。

“封箱,出发。”

跃进130发动,缓缓驶出红星轧钢厂的大门。

后面跟着两辆嘎斯,全副武装的军人随队押车。

引擎声低沉地嗡鸣着,在空旷的街道上回荡。

吕辰和吴国华坐在一辆嘎斯上。

吕辰怀里抱着一个帆布包,包里装着今天的《最小系统上架清单》和几份已经签过字的技术确认书。

他盯着前方的路,路灯的光一盏一盏地从车顶上滑过去。

“几点了?”

“五点四十二,师傅,开慢点,不着急。”吴国华看了一眼手表。

“机房那边七点才开门,到了也得等着。”

开车的战士应了一声,把车速又降了一些。

车轮碾过结霜的路面,发出细碎的嘎吱声。

车队过西直门的时候,远处的天际线已经染上一线鱼肚白。

吕辰从帆布包里掏出一个保温杯,拧开盖子喝了一口,热茶烫得他嘶了一声。

把保温杯拧上盖子,裹紧了棉袄。

车队拐进中关村,计算机所的灰砖楼在晨雾里渐渐显现。

计算机所机房的门已经打开了,秦无功他穿着防静电工装,脚上套着鞋套,手里拎着水平仪,蹲在一号机柜前面做最后的检查。

35台机柜已经全部就位,但今天只用第一台,那台被特意漆成浅灰色、与其他机柜颜色稍有不同的“一号机柜”。

机柜的正面,16个抽屉插槽排列整齐,每个插槽两侧都有滚珠导轨,底部有锁紧机构的卡槽。

机柜后面的总线背板早已固定好,墨绿色的掐丝珐琅板在灯光下泛着内敛的光泽,金手指插槽一排排地张着嘴。

背板上的电源分配网络和数据总线已经过三轮测试,每一根线的通断、每一组信号的完整性,都有记录可查。

秦无功站起来,把水平仪收进工具包,在机柜正面贴了一张纸:“最小系统专用机柜·硬件状态确认”。

吕辰和吴国华、宇文坤德、万人敌走了进来。

“秦工,早。”

“各们早,机柜准备好了。”

秦无功走过来,把手里那份检查记录递给吕辰。

“导轨水平度、背板插槽接触电阻、接地电阻、供电母线电压,全部在规格内。”

吕辰接过记录,一项一项地看。

导轨水平度每米不超过0.05毫米,比指标还高了一倍。

背板插槽接触电阻最大8毫欧,指标是10毫欧。

接地电阻0.8欧姆。供电母线电压三相平衡,波动在±1%以内。

他合上记录,点了点头。

七点半,汪涵教授到了。

他今天换了一身干净的中山装,领口的扣子系得严严实实,带着一种大战将至时才有的沉着。

他身后跟着卫知南和钱兰。

卫知南抱着一台便携式编程机,那台机器比午马机小一号,银灰色的外壳,正面有一个键盘和一个七段数码管显示器。

钱兰手里拿着一个防静电盒,盒子里是三颗已经烧录好的只读存储芯片,bootloader、最小自检程序、基础Io驱动和看门狗喂狗程序,全部固化在里面,今天要插到主控板的芯片插座上。

吕辰看了一眼手表,站在一号机柜前面,转过身。

“开始吧。”

货箱卸车,抽屉上架。

卡车已经倒进了机房门口的卸货区。

货箱的四条折叠支腿放下来,稳稳地撑在地上。

宇文坤德拉开货箱的侧门,货箱里的温度和湿度保持得很好,底板上的防静电橡胶垫干干净净,三组货架上六个抽屉整整齐齐地排列着,每一个抽屉的锁紧机构都处于锁止状态,防止运输中滑出。

他跳上货箱,戴好防静电手套,从第一层货架上抽出第一个抽屉。

那块银白色的钢制抽屉,前面板上贴着“电源·pwR-01”的标签。

抽屉的分量不轻,里面已经集成好了电源板,整流桥、滤波电容、dc-dc变换器全部固定在板卡上,板卡又通过导轨固定在抽屉里。

他双手托住抽屉两侧,走下货箱,走进机房,来到一号机柜正面。

所有人都在看他。

他没有急着推。

先把抽屉底部的定位销对准机柜插槽两侧的导轨槽,然后用拇指按了一下抽屉前面板的释放钮,锁紧机构处于打开状态。

他稳住呼吸,双手均匀用力,将抽屉沿着导轨缓缓推进去。

导轨发出细微的滚珠滚动声,像某种精密的、温顺的呼吸。

推到一半的时候,他停了一下。

没有卡顿。

继续推。

抽屉后部的金手指无声地插入背板的插槽中,宇文坤德感觉到了一股轻微的阻力,那是金手指与插槽簧片接触的触感,均匀、稳定。

他继续推进,直到抽屉前端面板与机柜立柱平齐。

然后他用力一按。

“咔嗒。”

锁紧机构弹起,抽屉被牢牢锁死在机柜里。

宇文坤德退后一步,在手中的《硬件上架确认单》上打了一个勾。

第二个抽屉,时钟板,推进第二个插槽。“咔嗒。”

第三个,主控板,推进第三个插槽。“咔嗒。”

第四个,运算板,推进第四个插槽。“咔嗒。”

第五个,存储板,推进第五个插槽。“咔嗒。”

第六个,I/o板,推进第六个插槽。“咔嗒。”

六个抽屉,六个插槽,六声“咔嗒”,间隔均匀,像某种机械的、不容置疑的心跳。

宇文坤德退后,看着那一排抽屉的前面板。

六个锁紧手柄整齐地弹起,状态一致。

他从兜里掏出手帕擦了擦额头,然后把确认单递给吕辰。

吕辰接过单子,看了一眼,签了字。

“硬件上架完成。”他说。“上电前检查。”

这是最小系统的第一道测试关,但严格来说,还不是“系统”在跑,只是给机柜通电,确认供电和时钟基础正常。

吴国华蹲在机柜后面,手里拿着示波器的探头,夹在电源板的远端测试点上。

万人敌站在机柜侧面,万用表的表笔点在了时钟板的供电入口。

宇文坤德站在配电盒旁边,左手搭在空气开关上,右手拿着电笔,最后确认了一遍接地。

汪涵教授靠在工作台边,双手抱在胸前,眼睛盯着示波器的屏幕。

“接地正常。输入电压三相平衡。”宇文坤德报状态。

“上电。”吕辰说。

宇文坤德推上了空气开关。

电磁接触器“嘭”地一声吸合。

机柜前面板的几个指示灯依次亮了起来,绿色的电源正常灯亮得最快,几乎没有延迟;黄色的总线空闲灯闪了两下,也稳住了;红色的故障灯没有亮。

示波器屏幕上跳出一个方波。

吴国华盯着屏幕看了三秒。

“+5V正常。纹波22毫伏,在指标内。”他把探头移到另一个测试点。“+12V正常。纹波24毫伏。”

万人敌看着万用表的读数,念了出来:“时钟板供电5.01伏,纹波21毫伏。oK。”

汪涵教授从工作台上直起身,走到示波器前面,亲自看了看波形。

他看得很仔细,从时域看到频域,从上升沿看到下降沿,足足看了半分钟。

“时钟稳定。晶振起振正常,频率10兆赫,偏差±0.01%。”他直起腰,点了点头。

吕辰在本子上记了一组数据,然后抬起头。

“供电和时钟基础正常。下一步,插入主控抽屉,烧录引导程序。”

宇文坤德将主控抽屉从货箱里取出来,第三个抽屉,银白色框架,前面板上贴着“主控·cU-01”的标签。

他双手托住抽屉两侧,对准机柜的第三个插槽,推进去。

“咔嗒。”

锁紧机构弹起,KL-cU核心芯片正在等待它的灵魂。

卫知南从防静电盒里取出第一颗只读存储芯片,那颗银灰色封装的芯片上,已经烧录好了bootloader和最小自检程序。

他打开主控抽屉前面板的一个小盖板,露出里面的芯片插座,用镊子夹住芯片,对准插座,轻轻压下去。

又是“咔嗒”一声,微小而清脆。

汪涵教授亲自走到机柜前面,检查了芯片的安装方向。

“加载。”

卫知南在一台午马机终端上敲了几行命令。

屏幕上一行行绿色的字符跳出来:bootLoAdER LoAdING... LoAd pLEtE. chEcKSUm pASSEd.

“校验通过。”

“上电复位。”

宇文坤德按下了机柜前面板上的复位按钮。

主控抽屉前面板的指示灯闪了一下。

然后,机柜正面那个巴掌大的诊断面板亮了起来。

绿色的“电源正常”灯亮了。

黄色的“时钟正常”灯闪了两下,也亮了。

红色的“故障”灯没有亮。

七段数码管显示了一个数字:0。

汪涵教授盯着那个“0”看了两秒。

“poSt通过了。”

最小自检程序在主控核心上电后自动执行,检测了核心芯片的寄存器、缓存、总线接口。

如果检测到故障,数码管会显示故障代码,红色的故障灯会亮。

但它是0。

一切正常。

十点二十分,I/o抽屉就位,加载驱动,第一个指示灯亮起。

宇文坤德取出I/o抽屉,推进第六个插槽。

“咔嗒”一声,板卡到位。

I/o抽屉的前面板上有八个拨码开关和八个指示灯,整整齐齐地排成两行。

卫知南取出第二颗只读存储芯片。

这颗芯片上写好了基础I/o驱动的微程序,读拨码开关的状态,点亮对应的指示灯。

只有几十条微指令,但这是昆仑1机第一次“做”一件事。

他把芯片插到主控板的另一个插座上。

汪涵教授走到终端前,手指悬在回车键上方。

停了大约两秒,然后他按了下去。

屏幕上跳出一行行字符。

微程序被逐条加载到主控核心的微程序存储器里。

LoAd pLEtE. 47 mIcRoINStRUctIoNS LoAdEd.

汪涵教授直起腰,退后一步。

他看着吕辰。

吕辰站在机柜前面,右手食指悬在I/o抽屉前面板上的第一个拨码开关上方。

他转过头,看了看汪涵教授。

汪涵教授点了点头。

他看了看吴国华。

吴国华把示波器的探头夹在了I/o板的输出引脚上,屏幕上的波形稳定。

他点了点头。

他看了看宇文坤德。

宇文坤德站在配电盒旁边,手搭在空气开关上,随时准备断电。

他点了点头。

吕辰吸了一口气。

“点火。”他拨动了第一个开关。

机房里的空气仿佛凝固了一瞬。

然后,I/o抽屉前面板上的第一个指示灯,最左边的那一颗亮了。

绿色的光,在昏暗的机房里格外醒目。

它没有闪烁,没有迟疑,就那么稳稳地亮了,像一颗被点燃的星星。

汪涵教授站在机柜前面,盯着那颗指示灯,一动不动。

他的手垂在身侧,手指微微蜷着。

他没有说话,但他的嘴唇在微微发抖。

吴国华盯着示波器的屏幕。

波形没有异常,输出信号干净。

他没有说话,但他的手指在桌面上轻轻叩了两下。

宇文坤德站在配电盒旁边,手里攥着电笔,手背上青筋暴起。

吕辰看着那颗指示灯,过了几秒,他拨动了第二个开关。

第二个指示灯亮了。

第三个、第四个、第五个……

他一口气拨动了八个开关。

八个指示灯依次亮了起来,从左到右,像一排被点燃的引信。

他停下来,转过身,看着汪涵教授。

“汪教授,I/o驱动通了。”

汪涵教授站在机柜前面,过了好几秒,他的嘴角动了一下,声音沙哑。

“通了。”

吕辰翻开笔记本,在最下面写了一行字:1970年1月4日10时31分,昆仑1机最小系统I/o驱动加载成功,第一个指示灯点亮。

然后他把笔记本举起来,让在场的人都看见。

“各位,签个字。”

不知道谁带头鼓的掌。

掌声从机房的某个角落响起来,先是稀稀拉拉的,然后汇成一片,在空旷的机房里回荡。

没有欢呼,没有人说话,就是鼓掌。

下午,存储抽屉、运算抽屉依次就位。

存储抽屉推进第五个插槽,内存读写测试程序加载。

十组常规测试全部通过,边界条件测试,全0地址、全1地址、地址线翻转临界点,全部通过。

终端机上跳出一行绿色的字符:boUNdARY tESt pASSEd. ALL 48 cASES VERIFIEd.

汪涵教授点了点头。

运算抽屉推进第四个插槽。

这是今天最难的一道坎。

KL-VU向量运算单元,上万只晶体管,一次能处理一组向量数据。

今天只跑最简单的:1.0+2.0=3.0。

浮点加法微程序加载。

终端机上开始滚过一行行编译信息。

pILING... LINKING... LoAdING... LoAd pLEtE. 128 mIcRoINStRUctIoNS LoAdEd.

“加载完成。”卫知南确认。

钱兰敲了运行命令。

三秒后。

屏幕上跳出一行绿色的字符:RESULt: 3.000000 tESt pASSEd.

吕辰盯着那行字,把“3.000000”看了两遍。

“汪教授,1.0加2.0,等于3.0。”

汪涵教授走到终端机前面,亲自敲了重新运行的命令。

屏幕上再次显示3.000000。

他又敲了一遍。

还是3.000000。

他直起腰,退后一步。

“这个加法,我算了半辈子。今天我们终于把它算在了昆仑1上。”

下午四点,全最小系统稳定运行。

六块板卡,电源、时钟、主控、运算、存储、I/o,全部在线。

系统没有跑复杂的任务,只是循环跑着今天加载的所有微程序:读写存储器的边界测试、浮点加法、I/o驱动。

每隔一小时,宇文坤德测一组数据:电压、温度、时钟波形。

万人敌记录在笔记本上,一笔一划,工工整整。

下午六点,第一组稳定运行的数据出来了。

电压最低点4.82V(存储板远端),最高点5.03V(电源板近端),全部在4.75-5.25V的指标范围内。

时钟毛刺最大幅度1.6V,没有超过阈值。

机柜内部温度28度(环境温度22度),温升6度,在预期内。

所有节点,全部在规格内。

吕辰把这份数据从头到尾看了一遍,合上本子。

“先跑24小时。明天下午这个时间,如果一切正常,最小系统,就通了。”

第二天下午五点,吕辰从工业部专家党支部学习回来,第一时间来到昆仑1机房。

机柜上,绿色的电源灯亮着,黄色的总线灯稳着,红色的故障灯暗着,七段数码管显示着“0”。

没有任何异常。

宇文坤德靠在墙角,手里攥着一个搪瓷缸子,缸子里的茶已经凉了。

见吕辰进来,他站起来,从桌上拿起那个记录了24小时数据的笔记本,递过去。

“吕工,24小时,零故障。”

吕辰接过本子,一页一页地翻。

电压、温度、时钟波形、总线误码率、中断响应时间,每一项数据都在规格内,没有一条超标,没有一次异常。

他翻到最后一页,上面写着宇文坤德的签字和卫知南的签字。

“确认最小系统24小时稳定运行。”

吕辰把本子合上。

二十分钟后,硬件板卡集成小组、软件与微程序小组的人到齐了。

吕辰站在一号机柜前面,手里拿着那份记录了24小时数据的笔记本。

“最小系统第一阶段,通过了。”他翻开本子,一页一页地念那些数据。

不是念给谁听,是确认。

念完之后,他把本子放在桌上。

他拿起桌上第一沓文件,那是《最小系统硬件状态确认书》。

上面列出了最小系统的硬件配置,一台主控机柜、六个抽屉(电源、时钟、主控、运算、存储、I/o)、总线背板,以及每一项硬件参数的实测数据。

“最小系统硬件状态确认书。确认最小系统的机械安装、电气连接、电源、时钟、散热,全部在规格内。”

他把文件递给宇文坤德。

宇文坤德接过去,签了字。

汪教授拿起第二沓文件,那是《底层驱动微程序包V1.0》的技术文档。

里面记录了今天加载的所有微程序,bootloader、poSt、基础Io驱动、看门狗喂狗程序、内存读写测试程序、浮点加法微程序,每一条微程序的版本、功能描述、测试结果。

“底层驱动微程序包V1.0。确认微程序的版本、功能、测试结果,全部通过。”

汪涵教授在最后一页签了字。

吕辰拿起第三样东西,那本记录了24小时数据的笔记本。

“基线数据。最小系统下,所有关键节点的电压、温度、时钟波形。这是昆仑1机的第一份健康档案。以后每一次测试、每一次故障排查、每一次升级,都要对比这份基线。”

三样东西,全部交付。

昆仑1的最小系统,通了。