正确的算法是否可能产生错误的结果?

时间:2013-10-05 18:52:04

标签: hardware hardware-programming

计算机是否可能因硬件错误而导致错误结果?例如,如果我告诉CPU多次计算6次9(两个整数),那么所有的计算都会给出正确的答案吗?如果有可能某些计算出错,为什么会这样,是否存在阻止CPU内部错误答案的机制?

1 个答案:

答案 0 :(得分:1)

有几种可能性:

  1. 在规格之外操作CPU可能会导致行为不稳定(例如过热,电压过高)

  2. 如果中断在非原子操作过程中触发,并且中断修改了结果,则可能发生奇怪的行为。 (例如:如果您在8位处理器上尝试16位操作。也许您正在计算A * B,但是您有一个计时器可以触发并在中途更改A的值乘法。这实际上被认为是一个软件错误,而不是错误。

  3. 总是cosmic rays。芯片现在很小,你不能真正责怪它们的任何问题,但如果你有一个多年的自治系统,它们就是一个问题。

  4. 至于防止故障,在太空竞赛期间,发射计算机使用triple-redundant logic来验证每次计算。意法半导体拥有一系列容错双核微控制器,可以使用相同的代码运行两个内核,如果任一内核不同意,就会出现故障情况。