如果微处理器或 RAM 中的单个晶体管出现故障怎么办?
失败是指它完全停止工作(由于过热或其他原因)或输出不正确。
单个故障可以更改指定的微处理器操作码以作为其他指令读取,或者破坏 RAM 中的预期内存地址,事情可能会从那里走下坡路。
计算机对此有什么保护/恢复策略?
如果微处理器或 RAM 中的单个晶体管出现故障怎么办?
失败是指它完全停止工作(由于过热或其他原因)或输出不正确。
单个故障可以更改指定的微处理器操作码以作为其他指令读取,或者破坏 RAM 中的预期内存地址,事情可能会从那里走下坡路。
计算机对此有什么保护/恢复策略?
在商业消费级零件中?没有。它在工厂进行了测试,可能有一个短暂的“老化”过程以防止早期故障。从那时起,任何永久性故障都会杀死设备。幸运的是,如果设备保持在温度参数范围内,这种情况通常不会发生多年。
对于军事/航空系统,有多种冗余系统可以检测故障并从故障中恢复。要么通过称为“锁步执行”的过程,要么通过简单地拥有多台计算机,如航天飞机著名的五台飞行计算机。(阿波罗计划用一台非冗余计算机登月!)
还有 ECC RAM,可用于服务器级系统,可以检测和纠正单位错误。
太笼统了
晶体管可能位于您不使用的部分中,因此您永远不会知道。
它可能在您使用的部分中,但故障条件似乎仍然有效,只需要在那里一个零,它失败到零,这很好,直到可能使用该晶体管的固件升级时我才注意到它不同。
或者它可能在您使用的地方,并且故障可能导致许多可能的问题,这些问题可能会以多种方式表现出来。当然不可能在这里扩展,因为我们不知道您使用的是什么部分,以及几乎无法衡量的可能结果数量有多大,只是沧海一粟,并没有开始涵盖假设的数量。即使在航空航天领域,一般也不值得谈论。
对于COTS系统,没有任何东西可以保护您;您可能拥有涵盖密集或有风险的东西的软件,例如 RAM,一种POST内存测试之类的东西。但是,如果发生故障的晶体管正如您在处理器内核中所建议的那样,那么您就有了一块砖头,再次落入大海,无法进行涵盖可能性并正确报告它们的 POST,甚至不值得谈论它。你把东西扔了,再拿一个。现在,在制造诸如 RAM 之类的部件时,风险较高的东西可能会在芯片上有替代块,可以在使用BIST或其他屏幕测试时融合。同样,有些产品是从其他产品衍生而来的,回到过去80486SX与80486DX. 如果浮点单元在芯片制造测试期间出现故障,您可以熔断保险丝,将其从潜在的 DX 变成 SX,然后以这种方式出售。
芯片屏幕寻找并根据经验覆盖超过 99.99% 的故障。根据产品的不同,预计会有成千上万或成千上万的产品在未来出现故障。就是这样。
航空航天,尤其是抗辐射,人字拖是或曾经是当你周围还有知道如何制造可靠东西的人(他们现在大多已经退休)时,如果一个位出现故障或经历一个位故障或经历单项赛事爆冷(这是三重投票的主要原因)然后其他两个主导投票。你可以争辩说你得到了万一失败的论点。但是您不会对所有组合逻辑都投三票;如果它受到打击,它应该在锁定到下一个触发器/位之前稳定下来。您还需要更强大的晶体管来处理单事件扰动,并且您还需要更多其他材料来处理总剂量,以在整个部件因暴露而死亡之前延长部件的使用寿命。数十年的经验(都输给了在一次性时代长大的年轻人,他们制造太空垃圾而不是制造一个永远有效的垃圾)。单个晶体管故障不是主要问题,单个事件扰乱和闩锁是(如果不处理可能/将导致破坏)总剂量等。单点故障和 MTBF 非常重要;MTBF 应该比任务寿命长,并且任何单点故障都应该能够在没有检测和解决的情况下进行。一次出现两个故障通常是无法解决的(沧海一粟)。
使用 COTS,您不必担心单个晶体管出现故障;这完全是关于平均值/统计数据。你从经验开始,反正没有那么多代工厂,他们知道自己在做什么。您在设计、布局、设计验证、测试等方面积累了数十年的经验。您绝对期望成品率低于 100%,然后在包装和交付的零件中,您预计其中一定比例的零件会在现场失败. 如果您的客户期望 COTS 质量和价格,但具有容错性或军用或航空级零件,您只需要告知客户他们要求的是价格高出一个数量级,带宽慢一个数量级/处理能力。以及一个数量级更长的交货时间。
RAM 密集是一个重点关注的领域,不是针对单个晶体管故障,而是针对单个事件翻转,一位翻转。因此使用ECC / EDAC,正如在制造中提到的那样,可能有一个 BIST 和一个可以融合的备用存储库。对于闪存和/或硬盘驱动器之类的东西,它们很容易发生故障,因此在用户的视野之外可能会有额外的可以标记为坏的银行/扇区和其他交换。RAM 可以,但通常不是因为您不使用非易失性存储的方式使用 RAM,而是使用DIMM例如,如果/当它们失败时让用户替换它们。通常就像用于升级或配置选择的处理器插槽一样,而不是因为与板上的其他组件相比,RAM 发生故障的速度非常快。
这是一个统计游戏。任何一个晶体管都可能产生严重影响(可能在程序计数器增量器中)、对性能的影响(比如缓存线永远不会命中)或用户体验下降(卡住像素或类似情况)。或者故障可能在测试逻辑中,因此它对正常操作是不可见的。
对于某些应用,这些随机故障只会影响设备的使用寿命(电池故障或撞击是更大的风险)。瞬态故障与永久性硬件故障一样重要。
服务器系统需要能够检测单个节点的生命周期结束,安全关键系统更有可能采用检测和冗余——但是观察较少的终端故障通常是困难的。将此与磁性 HDD 形成对比,其中通常可以在灾难性故障点之前测量纠错率(和其他指标)。
详尽的自检非常耗时 - 请参阅http://www.memtest86.com/以获取比测试处理器更简单的问题示例。