计算机是否可能因硬件错误而导致错误结果?例如,如果我告诉CPU多次计算6次9(两个整数),那么所有的计算都会给出正确的答案吗?如果有可能某些计算出错,为什么会这样,是否存在阻止CPU内部错误答案的机制?
答案 0 :(得分:1)
有几种可能性:
在规格之外操作CPU可能会导致行为不稳定(例如过热,电压过高)
如果中断在非原子操作过程中触发,并且中断修改了结果,则可能发生奇怪的行为。 (例如:如果您在8位处理器上尝试16位操作。也许您正在计算A * B
,但是您有一个计时器可以触发并在中途更改A
的值乘法。这实际上被认为是一个软件错误,而不是错误。
总是cosmic rays。芯片现在很小,你不能真正责怪它们的任何问题,但如果你有一个多年的自治系统,它们就是一个问题。
至于防止故障,在太空竞赛期间,发射计算机使用triple-redundant logic来验证每次计算。意法半导体拥有一系列容错双核微控制器,可以使用相同的代码运行两个内核,如果任一内核不同意,就会出现故障情况。