临近十点的航天研究所内,李然和队友们早已筋疲力尽,脸上满是倦色——他们的容错计算彻底陷入了死胡同。
众人只能暂时停下手里的工作,往回追溯所有实验数据和设计逻辑,试图在更早的研发节点找到突破口。
没人敢轻易停歇。因为大洋彼岸的国外同行,正和他们盯着同一个目标。双方研究方向高度重合,剩下的就是拼效率、拼时间、拼谁能先啃下“时序同步”这块硬骨头。
对方早已放出进展消息,步步紧逼。李然去盈兴广场看灯光秀的那晚,竟成了她近期为数不多的惬意时刻。
刘海指着屏幕上跳动的红色报错日志,声音压得很低,有些焦灼:“再不想点办法突破,这次怕是真要被他们抢先了。到时候没法跟总体那头交代啊。明明实验室测试全过,怎么一接入实时仿真就复现不了正常工况?”
沈安庭拍了拍他的肩膀、:“急不来,这毫秒级的时序偏差,本来就只能一点点磨、一点点试。你也别太焦虑——你看你这白头发,这一周又多了一片。”
刘海抹了把脸:“抽调了这么多骨干,一群人在这熬了整整一周,白板都画废了三块,却一点实质性进展都没有。真够邪门的!”
刘所长也坐在一旁,眉头微蹙,手里翻着厚厚的实验报告,沉声道:“今天我帮你们调了院里搞容错计算的专家过来,结论和之前一致:软件逻辑无漏洞,硬件参数也符合设计指标,但时序紊乱的问题确实存在。你们得换个思路,不能老在‘表决逻辑优化’的圈子里打转。”
李然和赵芷欣凑在屏幕前,死死盯着那几行红色报错。问题出在分布式系统的时钟同步上。
他们采用的是三机热备容错架构。理论上,只要三台处理单元中有两台输出一致,就能有效屏蔽单点故障,保障系统稳定运行。
这套架构在实验室静态环境下,连续跑了300多次全工况测试,全部顺利通过,无一次报错。
可一旦接入实时仿真系统,引入真实的轨道环境参数后,诡异的情况就出现了:三台处理单元的时间基准发生微妙的漂移,导致各单元采样数据的时间戳无法对齐。表决器无法判断,触发系统中断,仿真终止。
“这玩意儿也太刁钻了。”沈安庭把笔往桌上一扔,哭笑不得,“单机跑一点事没有,三机联动就掉链子。难道我们跟总体说——‘对不起,我们的容错设计,被容错本身的时钟同步问题搞死了’?黄总估计能把我们给剁了。”
李然没说话,指尖飞快地翻着之前的实验记录,眉头紧蹙。屏幕上的记录清晰可见:
第一次仿真,主机时钟比两台备机快了0.7毫秒。
第二次仿真,晶振受轨道高低温循环冲击,频率漂移。
第三次仿真,三台机器的时间戳无法对上。
她盯着“晶振”两个字,忽然灵光一现,抬头看向刘海:“刘工,咱们现阶段用于上位测试的晶振,是什么级别?时序精度能到多少?”
刘海愣了愣,回应道:“TCXO,5ppm,短期稳定性还能凑合。航天级的库存不够,院里协调还需要时间,所以先用工业级的做上位验证。怎么了?”
李然站起身,快步走到白板前,用马克笔在三个处理单元的图标下方画了一条清晰的时间轴:“你们想,三机容错,它们观测的是同一个事件,然后在同一时刻表决。但如果它们各自的本地时间基准本身就有漂移——哪怕只有几个ppm,长时间运行下来,采样窗口的边缘就会出现错位,对不齐也说得过去。”
沈安庭瞬间反应过来,眼睛一亮:“你是说,问题不在表决逻辑本身,而在数据输入侧的时间同步?”
“对。”李然在时间轴上标出几个红点,分别代表三台机器的采样时刻,“我们现在的设计,是每台机器独立采样,采完后给数据打上时间戳,再送到表决器。但表决器要比较的是‘同一时刻’的三组数据,靠的就是时间戳。可如果时间戳本身就不准,甚至三台机器的时间基准都不同步……”
“有道理。”刘海扶了扶滑落的眼镜,点点头,“三个时间都不一样,它肯定乱套!”