0

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

4

1 回答 1

1

有几种可能:

  1. 超出规格运行 CPU 可能会导致行为异常(例如热量过多、电压过高)

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

  3. 宇宙射线总是存在的。如今,芯片是如此之小,以至于你不能真正将任何问题归咎于它们,但如果你有一个多年自治系统,它们就会成为一个问题。

至于防止故障,在太空竞赛期间,发射计算机使用三重冗余逻辑来验证每个计算。STMicroelectronics 拥有一系列容错双核微控制器,它们以相同的代码运行两个内核,如果任一内核不同意,就会出现故障情况。

于 2014-01-13T06:05:18.230 回答