沈安庭立刻拿起笔,在白板上画了一个新的系统框图:“那咱们能不能改一下设计?不再让每台机器独立采样,而是由其中一台作为主时钟源,向另外两台同步脉冲,强制它们在同一个点触发采样。这样三台机器的采样时间就一致了。”
赵芷欣皱了皱眉,提出疑问:“同步脉冲是个办法,但万一主时钟那台机器出故障了呢?比如主时钟晶振漂移超标,或者机器本身宕机——那更麻烦。”
“所以不能用固定主时钟,得搞动态轮换。”李然拿起另一支不同颜色的笔,在框图下方补充了一个轮换机制,“每个同步周期开始前,先对三台机器的时钟漂移量进行检测,选出漂移最小、时序最稳定的一台,作为本周期的主时钟。另外两台被动同步,严格按照主时钟的脉冲触发采样。下一个周期再重新检测、重新选举,以此类推。”
沈安庭立刻坐回电脑前,手指飞快地敲击键盘,搭建简易模型,快速调试参数。
不久后,他盯着屏幕,满是惊喜:“卧槽,成了!”
赵芷欣立刻凑过去,脑袋凑到屏幕前:“怎么了?报错没了?”
“你们自己看。”沈安庭把屏幕转过来,指着上面平滑的波形,“现在已经连续运行了三分钟,三台机器的时间戳偏差控制完全符合设计要求!”
刘所长站起身,快步走到屏幕前,眯着眼睛仔细看了半晌,脸上露出欣慰的笑容:“小李这思路找对了。”
刘海挠了挠头,又喜又忧:“可这样一来要重新优化,咱们剩的时间不多了啊。”
众人下意识看了眼墙上的挂钟,已经快十一点了。刘海深吸一口气,立刻开始分工:“今晚李然、沈安庭、赵芷欣,你们三个先搭同步协议的框架,搭完就去临时休息间补觉,不用硬熬;其他人明天七点到岗,接上来查漏补缺、优化算法。咱们两班倒,跟对岸那群人拼一场——绝不能在这事儿上做老二!”
刘所长拍了拍手,鼓励道:“好,大家辛苦!我和刘海现在就去跟总体部汇报进展,给你们再争取两天时间。但最多两天。据可靠消息,那边也卡在类似的问题上,只不过他们困在硬件级同步的死胡同里,一时半会儿出不来。咱们谁先突破,谁就占得先机!”
刘所长和刘海走后,大家安静下来,只剩下键盘敲击的“哒哒”声、服务器风扇的“嗡嗡”声,还有空调的低鸣。
李然抽空掏出手机看了一眼,屏幕上有一条顾承二十分钟前发来的消息:“还没能回吗?太晚了,要走了给我信,去接你。”
她嘴角微微上扬,先发过去一个“加班狗”的表情包,随后快速打字:“今晚大概率回不去了,项目有了新进展,现在得奋勇争先,跟国外同行抢时间,亮枪火拼。你不用等我,早点休息,别熬夜。”
放下手机,李然深吸一口气,揉了揉酸胀的眼睛,随手滴了两滴眼药水后,重新将目光落回屏幕上——代码的世界里没有硝烟,却有着和战场一样的激烈较量。
凌晨三点多,李然、沈安庭和赵芷欣终于完成了同步协议的框架搭建。三人拖着疲惫的身躯,走到研究所的临时休息间。
李然伸了个大大的懒腰,揉了揉僵硬的肩膀和酸胀的眼睛,走到窗边。
窗外,城市的灯火已经变得稀疏,只剩下几栋写字楼还亮着零星的灯光。空荡的街道两旁,一排排路灯依旧坚守岗位,散发着柔和的光,照亮了凌晨寂静的街道。
李然掏出手机,对着窗外的夜景拍了一张照,发给顾承,配文:“刚啃下一个棘手的硬骨头。这是三点的A市——你值班时见到的三点的A市,是不是也这样?”
顾承显然已经睡熟,没有立刻回复。
李然收起手机,躺在简易的铁架床上,闭上眼睛,没一会儿就陷入了沉睡,连做梦都在调试算法。