电脑多久犯一次错误?

时间:2014-01-04 16:18:08

标签: architecture hardware

我不是指编程错误,这实际上是由人类以某种方式完成的,而是在执行像添加两个数字这样简单的事情时。

期望1 / x错误的x的范围是多少?

5 个答案:

答案 0 :(得分:10)

就CPU而言,有三种可能的错误来源似乎属于您的问题范围:

  1. 浮点舍入错误。这似乎是你在分组示例中得到的结论。这种类型的错误在实践中是完全确定的,而不是随机的!但是,如果您使用的编程语言未指定浮点行为,则可能会在不同的计算机上出现不同的错误。
  2. 设计CPU中的错误,例如臭名昭​​着的Intel Pentium FDIV bug。很难对此进行概率测试,但幸运的是,现代CPU已经进行了广泛的测试,甚至使用形式化方法在一定程度上证明了它们的正确性。
  3. 辐射引起的硬件错误,例如宇宙射线。除非您将计算机放在核电站的反应堆内,否则辐射引起的错误概率通常可以忽略不计。有趣的是,这实际上与某些编程技术相关,例如版本控制系统中的散列。您可以将参数设置为“嗯,由于宇宙射线,我们更可能得到错误,而不是哈希冲突,所以不值得担心哈希冲突的可能性”。
  4. 计算机的其他组件(如存储设备和显示设备)比CPU更容易出现导致数据损坏的硬件错误。

答案 1 :(得分:2)

继@Robin Green的回答之后,除了宇宙射线之外,实际上还有一些潜在的硬件错误原因:

  • 电噪声:所有电子电路都存在热噪声,电感耦合等影响也是如此。
  • 量子事件:由于半导体上的特征变得越来越小(特别是栅极电介质),并且每个状态变化中涉及的电子数量变得越来越小,电子处于高能态并影响逻辑状态的有限(但很小)概率变得重要。

所有这些问题都有设计解决方案,但它们的价格在尺寸,功耗,集成密度方面可能不值得接受。辐射硬化的半导体以其低集成密度,相对性能(和高成本)而着称。

值得注意的是,在通信和存储中,硬件错误是常见的,而不是首先阻止它们,策略是通过错误检测和纠正技术从它们中恢复。

答案 2 :(得分:1)

我与我的一位非常反自动化的朋友谈话 - 他是一名火车司机...

“启动电脑时你的电脑会出现多少错误?在此过程中做出了多少决定?你在开火车时犯了多少错误?”

(如果您有兴趣,可在9年内完成3次)

是的,由于边缘设计和媒体老化在某些时候会出现奇怪的读取错误,但计算机是否犯了错误或人类只是偷工减料?

宇宙射线是计算机还是设计师的错误?我怀疑未来的计算机会变得复杂到足以让我们称之为“错误”,但是他们需要展示自己的意图才能正确地犯下这些指控。

答案 3 :(得分:-1)

从不。 - 一个原因是“错误”的概念属于人类,不适用于机器。计算机是愚蠢的(它是人类编程使它们看起来很聪明),它们不会失败。

机器根据其构造和 - 如果是计算机 - 按照他们正在运行的程序行事。这是总是确定性的 - 否则就意味着一些自然法则被打破,整个人类科学就是某种猜测。

结果可能并不总是像人类预期的那样,但这总是可以通过人为因素来解释。简直就是(不可能)出现“计算机错误”这样的事情。

答案 4 :(得分:-2)

......否则就意味着某些自然规律被打破了,整个人类科学就是某种猜测。

如果你研究一下,事实上整个人类科学实际上是某种程度的猜测。任何事情都没有任何已知的绝对事实。只是近似和最好的猜测。甚至科学和物理学的核心也是一个错误的模型。虽然影响很小,但仍有问题。