您当前位置:首页-技术内幕-详情

关于计算机,你知道什么大多数人不知道的事情?

编辑:网友投稿来源:互联网整理更新时间:2023-08-18 17:01:33

几年前,我们公司开发了一个新的产品平台;基本上是一个小型的嵌入式联网 PC 平台,上面运行着一些相当先进的软件。

该产品计划用于关键任务应用,因此必须经过一些非常严格的测试。值得庆幸的是,它顺利通过了所有小规模测试,也通过了所有模拟大规模测试,因此我们认为该产品几乎可以交付使用了。

不过,我们最终还是在实验室里设置了一整套物理联网设备,作为最终测试。

起初,一切都运行得很好,我们几乎就要庆祝我们的胜利了,但在经过多个小时的自动测试后,其中一个设备突然做了一些看似随机的事情,完全错了。哎哟。

我们带着故障设备仔细检查,试图在受控的模拟环境中重现问题。没有那么幸运,它工作得非常完美。于是,它又回到了测试实验室的机架上,过了一段时间,直到问题再次发生。

我们反复检查了源代码和软件,一切正常。我们测量了硬件,检查了输入/输出,以及所有我们能想到的......都没有问题。然而,只要我们把它放回实验室堆栈一段时间,它就会不停地出现奇怪的错误,就好像这栋楼里有什么不好的魔咒一样。

为什么这台设备会出现故障?交换网络地址没有任何作用。将所有电缆与工作设备交换也无济于事。所有其他配置都是一样的。

无奈之下,我们把它扔到一边,换上了一个出厂的新设备。当然,它也有同样的问题。哈!

几天后,我们在难以置信的情况下疯狂地更换和调试了各种设备,但断断续续的问题一夜之间就消失了。我们困惑地注意到,有人不小心把整个塔倒在了工作台上......当我们再次把它抬起来时,固件错误又出现了?把它翻过来--它成功了!该产品在设计时并没有考虑到方向问题,但有趣的是,就是这问题!

当然,我们很快就发现了问题所在--原来那个特殊的位置只是接收到了下面所有设备的微弱但综合的热量,而上面却没有气流。由于硬件设计中的一个小缺陷,这些额外的热量导致某些时钟周期的时序发生偏移,与其他时钟周期产生足够的偏差,以至于 I/O 被误读、比特被翻转,真正随机的事情发生了......但这只发生在堆栈中的那个最佳位置!

最重要的一点是,大多数人都没有意识到,即使计算机的编程完美无瑕,并已被证明能在多种条件下正常工作,现实仍有可能背着你翻转一两个位!
D相关下载
Z最新攻略更多+
热门文章更多+
近期大作更多+