返回第582章 底层点火(1/1)  四合院:我是雨水表哥首页

关灯 护眼     字体:

上一章 目录 下一章

    技术状态冻结会议后,总集成方案也随后敲定的。
    方案定了调子:硬件分层上架,微程序逐级唤醒,操作系统最后就位。
    不是一口气把所有板卡塞进机柜、一次性上电。
    那是蛮干。
    任何一个连线虚了、任何一颗芯片坏了、任何一条微程序写错了,整台机器都可能起不来。
    出了问题,连从哪儿查都不知道。
    所以方案定的是层级推进。
    最小系统先跑起来,然后是功能子系统,最后才是全系统。
    每个层级都有明确的硬件配置状态、对应的微程序集、验收标准。
    一步一确认,确认一项,往前走一步。
    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的最小系统,通了。

上一章 目录 下一章