我又一次在设计评审中遇到了这样的说法,即某个特定场景的概率“小于宇宙射线影响程序的风险”,我突然意识到我根本不知道这个概率是多少。
“既然2-128是340282366920938463463374607431768211456中的1,我认为我们有理由在这里冒险,即使这些计算有几十亿倍的偏差……我相信,宇宙射线把我们搞砸的风险更大。”
这个程序员正确吗? 宇宙射线击中计算机并影响程序执行的概率是多少?
我又一次在设计评审中遇到了这样的说法,即某个特定场景的概率“小于宇宙射线影响程序的风险”,我突然意识到我根本不知道这个概率是多少。
“既然2-128是340282366920938463463374607431768211456中的1,我认为我们有理由在这里冒险,即使这些计算有几十亿倍的偏差……我相信,宇宙射线把我们搞砸的风险更大。”
这个程序员正确吗? 宇宙射线击中计算机并影响程序执行的概率是多少?
当前回答
Memory errors are real, and ECC memory does help. Correctly implemented ECC memory will correct single bit errors and detect double bit errors (halting the system if such an error is detected.) You can see this from how regularly people complain about what seems to be a software problem that is resolved by running Memtest86 and discovering bad memory. Of course a transient failure caused by a cosmic ray is different to a consistently failing piece of memory, but it is relevant to the broader question of how much you should trust your memory to operate correctly.
基于20 MB常驻大小的分析可能适用于普通应用程序,但大型系统通常有多个具有较大主存的服务器。
有趣的链接:http://cr.yp.to/hardware/ecc.html
不幸的是,海盗链接在页面似乎死了,所以查看海盗链接在这里代替。
其他回答
好吧,显然是宇宙射线导致丰田汽车的电子设备出现故障,所以我想说这种可能性非常高:)
宇宙射线真的导致了丰田的灾难吗?
显然,这并非微不足道。这篇《新科学家》的文章引用了一份英特尔专利申请:
“宇宙射线引发的电脑死机已经发生过,而且随着芯片中器件(例如晶体管)尺寸的减小,预计死机的频率将会增加。这个问题预计将成为未来十年计算机可靠性的主要限制因素。”
你可以在这里阅读完整的专利。
如果一个程序是生命攸关的(如果它失败了,它会杀死某人),那么它需要以这样一种方式来编写,它要么是故障安全的,要么是从这种失败中自动恢复。所有其他节目,YMMV。
丰田就是一个很好的例子。说什么你会油门电缆,但它不是软件。
参见http://en.wikipedia.org/wiki/Therac-25
我曾经为在太空中飞行的设备编程,然后你(据说,没有人给我看过任何关于这方面的论文,但据说这是业内的常识)可以预期宇宙射线总是会导致错误。
“宇宙射线事件”在这里的许多答案中被认为是均匀分布的,这可能并不总是正确的(即超新星)。虽然“宇宙射线”的定义(至少根据维基百科)来自外太空,但我认为将局部太阳风暴(又名日冕物质抛射)也包括在同一保护伞下是公平的。我相信这可能会导致几个比特在短时间内翻转,可能足以破坏甚至启用ecc的内存。
众所周知,太阳风暴会对电力系统造成相当大的破坏(如1989年3月的魁北克停电)。计算机系统很可能也会受到影响。
Some 10 years ago I was sitting right next to another guy, we were sitting with each our laptops, it was in a period with quite "stormy" solar weather (sitting in the arctic, we could observe this indirectly - lots of aurora borealis to be seen). Suddenly - in the very same instant - both our laptops crashed. He was running OS X, and I was running Linux. Neither of us are used to the laptops crashing - it's a quite rare thing on Linux and OS X. Common software bugs can more or less be ruled out since we were running on different OS'es (and it didn't happen during a leap second). I've come to attribute that event to "cosmic radiation".
后来,“宇宙辐射”成了我工作场所的一个内部笑话。每当我们的服务器发生了什么事情,我们找不到任何解释,我们开玩笑地把错误归咎于“宇宙辐射”。: -)