《第八章: 工业软件》

渴,好渴,真的好渴。我游荡在烈日下,土地的龟裂绵延望不到边。我能感到体表的水分不断的在流失。我抬头望向天空,太阳比往常更大更近。散发着无穷的热力。突然远处飞来一颗新星。空气的温度瞬间灼热起来,而我的皮肤在这股热度下直接着起了火。我痛倒在地,浑身打滚......

咚咚咚的敲门声将我惊醒,原来刚才的只是一场噩梦。我打开门,一个熟悉的身影出现在我的面前。我使劲揉了揉眼睛,感到不可思议。

“义琼,怎么是你?”

“想不到吧,”程义琼笑着推开门,走了进来。”我没告诉你我是在国外攻读的计算机学科的博士嘛?“

这个时候,程义琼才注意到我满头是汗。她连忙关心的抓住了我的手臂问:”赵明,你怎么了?怎么脸色这么苍白?是生病了嘛?“

”没事,我就是刚才做了个噩梦。“我连忙解释说:”难道。你就是史狄推荐给我随行翻译?这也太巧了!“

“哈哈,就是这么巧呢。”见我没事,程义琼又咯咯的笑了起来:“好了,快穿好衣服吧,吃完早餐,麦克斯希望我们先去见一下燃料系统的负责人。”

吃完早饭,我们首先去了燃料部门。燃料系统的负责人皮特见到我,热情的握住了我的手,拿出一堆图纸开始开始和我一起仔细检查起来。

“上次火箭快要登陆月球的时候,却因为没有燃料减速而一头撞上了月表,这简直是不可思议。”皮特抱怨着:“赵明先生,你看这里,根据相对论响应,当我们的火箭达到第二宇宙速度脱离地球后,因为质量的增加,所以燃料需要增加。我的计算量绝对是是准确无误的。我认为是控制火箭速度的程序出现了错误,导致火箭速度比预期的更快,质量增长的超过预期,从而消耗了更多的燃料。”

“等等,第二宇宙速度才11.2千米/秒。而光速为30万千米/秒。这么小的火箭速度应该可以直接忽略掉相对论效应的。”我感到有点不可思议。

“赵明先生,你怕是记错了吧。光速是3000千米/秒。怎么会是30万千米/秒呢?”

听到皮特的回答,我疑惑的转头看了看程义琼。看到我怀疑的目光,程义琼连忙回答:“光速确实是3000千米/秒。赵大佬你是不是记错啦。”

我连忙拦住周围的工作人员,挨个问了五六个人。得到的回答都是3000千米/秒。一丝异样涌上我的心头,我连忙问皮特:“现在的硅原子的直径是多少?”

“我并不清楚硅原子的直径是多少?但是我可以帮你搜索一下。”说完皮特就拿出手机搜索了起来:“是2.2皮米,等同于0.0022纳米。”

“所以现在的芯片最先进的制程大概是70皮米,就是0.07纳米?”我迫不及待的问。

“其实已经突破到50皮米了哦。”程义琼抢答到。

我整个人愣在了原地。原来是这样子啊, 这下子一切都说的通了,我恍然大悟。我一直很疑惑,在所有的软件性能都下降了好几百倍的情况下,这个社会为何还能正常运转,原来是因为光速变慢了一百倍。而对应的所有粒子的直径也缩小了百倍。这种情况下,芯片的制程不再受到量子遂穿的效应,从而可以达到50皮米。而芯片性能的提升也弥补了软件性能下降的负面影响,使这个世界得以正常运转。

接下来的一周,我一直待在办公室和皮特仔细计算着燃料的质量和控制火箭速度的软件部分。按照相对论响应,火箭质量的消耗应该呈现一个带有弧度的递减曲线。但是编程中计算的燃料消耗,却是一条递减直线。这样子会确实会导致燃料消耗超过设计值,致使火箭速度超过预期,相对论效应加剧,导致最后的燃料短缺。

在解决了火箭燃料的问题后,接下来我和程义琼就马不停蹄的去见了软件部分的负责人——汤姆。

“赵明先生。现在的计算机硬件相比阿波罗登月时,性能已经翻了好万倍,内存的容量也从4KB到了现在的好几GB。但是阿波罗可以顺利登月,而我们的火箭却不行。这个问题真的是不可思议。”汤姆见到我后,又和皮特一样抱怨了起来。

接下来的半个月,我夜以继日的仔细阅读了登月软件的源代码。然后召集了麦克斯和汤姆以及参与编程的高级工程师们。

“我认为导致火箭传感器失灵和控制台失去了对火箭控制的根本原因,是因为太空中的极端环境和辐射导致了内存中数据出现了位翻转。”我首先抛出了自己的观点。

“什么是位翻转?”汤姆和程义琼同时发问。

没想到现在这个世界上连位翻转都没人知道了,我心中苦笑。“所谓位翻转就是指在宇宙辐射粒子的高能轰击下,内存颗粒中原本储存数字1的地方变成了0,或者原本储存数字0的地方变成了1。”

“别说我们从没听说过这个所谓的位翻转,就算它真的存在。只是一个字节的变化,怎么可能导致控制台失去对火箭控制呢?”在场的工程师们纷纷表示难以相信。

“中国有句古话叫做:口说无凭。赵明先生,你有什么证据能证明你的观点嘛?”汤姆一边示意在场的工程师安静,一边发问:“不然,仅仅凭借你的一面之词,实在是难以让大家信服!!”

这下子确实难住了我。我愣了好几分钟,也想不出证明的办法来。突然,程义琼开口说:“要证明这个现象不难的,我们可以将运行登月软件的代码写入一台电路板去运行。然后不断用X光照射来模拟宇宙中的高能粒子辐射,观察软件运行是否正常就好啦。”

听到程义琼的提议,我豁然开朗,忍不住抓住她的手,赞叹到:“你可真是个天才,这个方法确实值得一试。”

“确实是个好办法。”就连汤姆也点头赞叹。

我们很快就征用了登月中心附近的一所医院里的X光室。在X光的不断轰击下,运行的程序果然如同我预期的一样,很快就完全崩溃了。

回到登月中心,汤姆紧紧的握住了我的手说:“赵明先生,中国有句古话叫:人外有人,天外有天。我编程已经四十余年了,今天算是真正明白了这句话的意思。请你继续说说,该如何避免这种位翻转的情况呢。”

“您真的是过奖了,我只是懂一点皮毛而已。”我连忙自谦。然后接着说:“我仔细阅读了我们的登月软件代码代码里并没有什么致命问题,如果是运行在普通的地球环境下,其实完全没有问题的。但是因为暴露在太空这种特殊的环境下,所以必须按照我制定的两个标准去重构。”

“中国有句古话叫做:授人予鱼,不如授之以渔。还请赵明先生详细说说,让在场的工程师都能明白您定制的标准的目的。”

“第一:代码中不能存在任何申请内存和释放内存的操作。我们必须在程序初始化的时候,直接分配好所有需要使用到的变量的内存。这是因为程序在太空中运行的时候,如果硬件受损,很可能出现内存分配失败的情况。”

“按照你这个要求,我们的编码几乎要整个的重构,这个代价太大了!!”一位工程师表示抗议。

“我知道,这个代价很大,但是我们会一直与大家奋战在第一线,携手共进。”我的决心似乎也感染了大家,不再有人表示反对。

“第二点就是我们要引入Inline ECC机制,我相信大家对这个机制并不了解,我先简单的说明一下。所谓的ECC机制简单来说,我们不仅会将数据储存在内存中,同时还会对每一份数据生成单位纠错和双位检错数据一并储存在内存中,这样子当内存被破坏的时候,可以通过这些纠错码检验出错误数据,并且还原出原始数据。”

听到这里,就连汤姆都忍不住赞叹了起来:“Oh my god. 这简直就是天才般的想法。这种检错机制应该以你的名字命名!!”

“好了,命名的事情以后再说,我们的时间不多了,抓紧开工吧。”

接下来的一个月,我和汤姆通力协作,将火箭的编码部分几乎重写了一遍。同时也不断使用X射线机进行着软件稳定性的检测,搞定了软件编码的部分。终于到了要发射第四次火箭的日子。

火箭控制室中,我,麦克斯,皮特,汤姆还有程义琼紧紧盯着大屏幕。这已经是第四次发射火箭了。在前三次失败的阴霾下,大家的心情都高度紧张。

“三...二...一...火箭点火发射。”

随着巨大的轰鸣声,火箭喷出高达数千摄氏度的尾焰,腾空而起。

“火箭已经脱离地球大气层”

“火箭速度已达第二宇宙速度...脱离近地轨道...正在飞向月球。”

虽然控制室爆发出一片欢呼,但是我和汤姆知道,真正的挑战现在才刚刚开始,火箭飞向月亮需要耗时大约四五天。在这个一百多个小时里,火箭上运行的软件会不断的受到宇宙高能粒子的轰击,能否保证软件始终正常运行,说实话我的心里也没有底。

突然,我的眼前一黑,差点晕倒在地。幸好麦克斯及时搀扶住我。

“赵明先生,你的脸色很苍白,你多久多没有睡觉了?”麦克斯惊讶的问。

“我也不记得了。”我苦笑着回答:“感觉一直在处理软件的编码,没有时间睡觉。”

“我扶你回房睡觉吧,还有四五天,火箭才能飞到月球呢。咱们先好好睡几天吧”程义琼心疼的搀扶着我,离开控制室,向宿舍走去。

我望着程义琼任然红润且好看的脸蛋,心中充满了疑惑。察觉到我在盯着她的脸,程义琼的小脸红了起来:“讨厌,赵大佬,你一直盯着我的脸看干啥?”

“我只是觉得好奇,这段时间,你一直在我旁边为我翻译,按理说,你也很久没有睡觉了,为何你的脸色还这么好?”我说出了心中的疑问:“你不累嘛?”

“哈哈哈,”听到这里,程义琼解释说:“我可是瞌睡小能手,虽然这段时间,我没有好好躺在床上睡觉,但是你和汤姆专心编码的时候,一编码就是好几个小时。这个时候也不需要我翻译,我都坐在你旁边的椅子上打瞌睡啊。”

终于走到了我的房间, 我的头一沾到枕头。立刻就昏睡了过去。

版权声明:
作者:Alex
链接:https://www.techfm.club/p/97093.html
来源:TechFM
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
< <上一篇
下一篇>>