中文 英语

芯片如何增强韧性

异构设计、定制和不断增加的复杂性为硬件错误打开了大门。

受欢迎程度

将芯片分解为专门的处理器、内存和架构对于持续提高性能和功耗是必要的,但这也导致了硬件中异常的、通常难以预测的错误,这些错误非常难以发现。

这些错误的来源可能包括任何事情,从特定顺序的计时错误,到封装中芯片之间的连接间隙。随着时间的推移,它们会随着不同芯片或小芯片中的电路以不同的速度老化而变化,随着各种类型的压力将潜在缺陷转变为真正的缺陷。因此,计算有时会产生错误的结果——但并非每次都是。如果互联网搜索的一个结果是错误的,或者流媒体视频中出现了一个小故障,那么这一点不会被注意到,但当它涉及金融交易、汽车安全或军用无人机制导系统时,它的重要性就完全不同了。

这些类型的问题并不是全新的。21世纪初,有关这一主题的技术论文开始出现,讨论芯片的意外行为和偶尔的故障。然而,他们现在已经到了一个临界点,问题足够严重,数量足够多,值得关注。但出于一些原因,我们并不总是清楚该怎么做。其中包括:

  • 有更多的元件被密集地封装在芯片和封装中,有些带有更薄的金属层和电介质,还有更多的互连。这使得很难预测工艺变化、潜在的和真正的缺陷,甚至量子效应会在哪里引起问题,或者以什么顺序引起问题。
  • 先进节点芯片被用于比过去更高的利用率的系统中,特别是在数据中心和人工智能应用程序中。这会增加这些设备的机械和电气压力,从而影响信号质量和计时。除此之外,其中一些系统被设计为更长的生命周期,需要定期的软件更新,这可能会导致一些硬件组件随着时间的推移表现不同。
  • 设计变得越来越异构,越来越个性化,增加了特定设备所特有的可能交互的数量。此外,这些设备越来越多地使用在不同工艺节点开发的组件,有时由不同的铸造厂制造,并非所有的部件都具有相同的特征-或者在它们将如何使用的上下语境中。

所有这些都增加了复杂性,使得记录所有极端情况变得更加困难、耗时和昂贵。

“我们现在观察到的这些东西是否因为我们有更大的芯片和更好的仪器的组合,或者这是否是一些新事物,”罗伯·艾特肯(Rob Aitken)说Synopsys对此的家伙。“无论是哪种情况,这是可以在生产时识别出来的,还是识别出来的行为会影响经济产量?”我最近参加了一个IBM的小组讨论,他说这就是大型机如此昂贵的原因。它们被设计用来寻找每一个可能的问题。”

悬而未决的问题是,这是否会成为安全关键型和任务关键型硬件的要求。如果是,最好的解决方法是什么?如果每件事都要做到完美,那就会对产量和成本产生影响。但如果其中一些问题可以通过在系统中设计弹性来解决,就可以帮助控制成本。双方都在努力。

完美vs弹性
爱荷华大学、百度Security和Argonne国家实验室合作创建了MinpSID(多输入强化选择性指令复制),用于识别“跨多个输入的难以识别的错误传播”。在最新发布的技术论文在美国,研究人员声称已经找到了一种提高可靠性的方法,并识别出导致这些错误的“孵化指令”。


图1:孵化指令示例。来源:阿贡国家实验室/爱荷华大学/百度安全

这是这个谜题的一部分。但到目前为止,还没有一个单一的可重复的解决方案,而且似乎永远也不会有。事实上,解决方案可能是特定于设计的,有时甚至是反直觉的。

“我们看到一个案例,人们正在构建电路,在某些情况下,你可以在不同的计算组合中进行统计分析,有时会得到这个错误,”巴瑞·潘格勒(Barry Pangrle)说Movellus.“他们所做的就是降低电压。他们知道它不可能一直都符合时间,它会得出的结果基本上都是假阳性。他们用它作为一个过滤器来找到好的结果,然后把这个更小的集合放在一个非常健壮的系统上运行。现在的问题是一切都变得越来越复杂。随着电路的老化,它们往往会变慢。所以现在,从健康的角度来看,我们需要研究老化技术,监测事物,设置延迟循环等类似的东西,看看它是否会随着时间推移而漂移。”

要防止这种零星错误,首先需要了解它们来自哪里。但随着定制的芯片或小芯片集合和独特的架构以加速的速度推出,这不是一件简单的事情,这可能会推高开发的总成本。虽然其中一些问题可以在事后用软件解决,但如果硬件本身是可编程的,则会更有效。这为设计增加了一定程度的弹性,以适应任何问题,而不会因为修复软件中的问题而影响电源/性能。

的首席执行官Geoff Tate说:“第一件事是在事情发生之前发现什么时候会出问题。Flex Logix.“第二件事是采取行动。如果出了问题,你需要进行补偿——就像人类的大脑一样。大脑中的神经元一直在死亡,但我们的神经通路可以再生。人们的大脑可能会受到非常严重的损伤,但随着时间的推移,大脑的其他部分可以重新编程来弥补。现有的芯片不能这样工作。唯一能弥补这一点的是处理器或FPGA——可以通过编程来做不同的事情。”

找出错误出现的时间和原因是值得花时间的,但在某些情况下,这可能意味着大量的时间。谷歌和Meta检测到的静默数据错误花了一年多的时间才追溯到根本原因。通常情况下,直到整个芯片或封装被开发出来,或在现场使用时,问题才会出现。

公司首席执行官西蒙•大卫曼表示:“在制造这些东西并将其整合到设备中的所有物理力学方面都存在挑战治之软件.“作为一个行业,如何在运行时验证整个产品也存在挑战。我们刚刚开始与一些公司在SoC层面进行合作,然后将发展到系统层面。但这是一个漫长而缓慢的过程,涉及系统的系统。”

任何可以预先发现潜在问题的方法都是有益的,这可能涉及物理和虚拟因素。

的副总裁兼总经理尼尔斯Faché说:“热分析是其中之一Keysight.“如果你在电路板和集成电路中有热点,随着时间的推移,它将对设备的性能产生影响,并导致其故障。我们看到人们越来越重视热分析,我们还增加了热建模,因为这会改变电性能。力学分析也是一样的。电路板可能会发生变形,从而改变电气参数。”

高温对芯片或系统的表现构成了严重的挑战。“你必须密切关注温度梯度,”美国半导体公司半导体部门产品营销总监马克·斯温宁(Marc Swinnen)说有限元分析软件.“这给出了一个微分展开。即使在堆栈的顶部和底部之间只有25°的差异,考虑到这些设备的极端薄,我们谈论的是每厘米10,000°或在这个范围内。在这么小的距离内,温度梯度非常大,这导致了相当大的压力。”

制造和包装缺陷
并非所有的错误都是设计造成的。它们可能是由设计到制造流程中任何一点的任何因素组合引起的。事实上,它们可能表现为被认为是良性的潜在缺陷,例如纳米级缺陷,或者可能是在检查和测试中被忽略的缺陷。其中一些缺陷可能直到设备开始老化才会显现出来。

“特别是现在在5nm工艺中,老化正在影响时间,所以你有了这些如何老化的模型,”Digital & sigonff集团的产品管理副总裁Kam Kittrell说节奏.“但你怎么知道它在外面放了五年之后会怎样变老呢?”这意味着你必须仔细检查这类事情。此外,如果你发现一个特殊的失败案例——也许是一个软的失败,比如每隔一段时间就会有一点翻转——这不是制造缺陷,但你可以在制造测试中做一些事情。你可以回头用已知的坏模具重新做制造测试,然后把测试分散到每个单元,看看链条中是否有薄弱环节。这也带来了很多好处。云计算推动了汽车行业的发展,因为汽车行业的复杂性现在已经超出了图表的范围。你的仪表盘上到处都有超级计算机在运行,人们的车坏了会很沮丧。”

更糟糕的是,当芯片或小芯片被引入并堆叠在先进的封装中并大量使用时,或者当这些设备中的任何一个被用于它们最初设计之外的方式时,潜在的缺陷可能会变成真正的缺陷。并不是所有这些问题都可以解决,但可以在它们成为问题之前识别出来。

“潜在的缺陷更多的是关于热机械方面的,”Nir Sever说proteanTecs.“微肿块可能有裂缝或空洞。车道可以有桥牌短线。tsv可能有裂缝、部分填充或侧壁分层。由于模具的不完善,造成了许多物理缺陷。但即使它们是完美的,当你开始组装过程时,还有很多潜在的故障点。在一个典型的HBM中,大约有10,000个不同的车道。如果其中一个有缺陷,SiP将无法工作,除非对其进行修复。所以你已经放下了所有的小凸起,你必须把它们组装起来,让它们都能接触。如果其中一个有缺陷,一个模具扭曲了,或者材料移动了一点,没有完全对齐,就会出现电阻行为,这会影响信号质量。”

挑战在于找出可能发生这种情况的时间和地点,以及如何准确地发现问题。

Sever说:“首先你必须能够进行测试,因为成品率不是100%。”“很有可能至少有一条车道在组装后会有缺陷。其次,因为它是老化的,您需要在产品的整个生命周期中,在现场和任务模式中一直监视接口。如果它从一开始就是边缘的,因为存在一个没有产生测试失败的潜在缺陷,那么随着时间的推移,它将退化。最终,时间边界或眼图将开始关闭,您将在总线上得到错误。这是一场灾难,因为不像SERDES中有错误修正机制,在典型的D2D中没有。协议中没有必要内置纠错功能。您假设比特错误率几乎为零,就像常规I/O一样。这将导致数据错误,表现为无声的数据损坏,没有人真正知道它们来自哪里。但事实是,数据开始在芯片内部的某个地方损坏,你必须有一种方法从内部进行测量,可视化数据,理解它,然后能够跟踪根本原因并修复它。”

更有弹性
这就是弹性进入画面的地方,内存部门在这方面一直走在前面。例如,众所周知,NAND闪存会随着时间的推移而退化。在flash不再工作之前,你只能写这么多。

Flex Logix的Tate表示:“现有的磨损平衡算法可以在其中增加30%的比特,因此在10年的时间里,他们可以让它可靠地工作。“但他们必须在它们变坏之前找到它们,然后换上仍然好的部分。对于弹性[逻辑]设计,你将需要像嵌入式FPGA这样的东西,在那里你有一些可用的非编程计算能力,可以处理系统其他部分的任何故障。所有的芯片都有bug。有漏洞会杀死芯片,让它无法工作。有一些bug使得它的性能很差,所以它不能发布。然后还有各种各样的bug可以解决。在我们的芯片中,我们有一个无法解决的bug,除了处理器总线上有4000个嵌入式FPGA查找表。我们能够在查找表上编写一些RTL代码,以弥补芯片其余部分的错误。然后我们就可以把芯片运出去,而客户根本不知道我们用那种方式打了补丁。”

大多数弹性解决方案依赖于某种程度的冗余。这可以包括可编程性,它减少了对全新电路的需求,也可以包括软件,它效率低,但重新编程容易且相对便宜。在所有情况下,都有一些开销。关键是在选择在功率、性能和面积/成本方面进行权衡时,将能耗降至最低。因此,如果面积/成本是关键,增加在线监控可以取代增加的电路。如果电源是关键,冗余可能以可重新编程逻辑的形式出现。如果性能是最关键的因素,则可以添加额外的电路,并根据出现问题的位置动态打开和关闭。

Tessent Embedded Analytics的产品经理Richard Oxland表示:“这最终是一个经济问题。西门子数字工业软件.“无声的数据错误给我们带来的损失是否超过了冗余计算芯片的成本?”这是一个大多数半导体公司无法回答的问题,因为这是一个系统级的问题。它需要更好地理解隐性数据错误的经济影响。如果你想想Meta或者谷歌或者AWS,这很快就会变成非常专有的信息。这些人会开始降低这些要求如果它变得有意义的话。我们可能并不总是知道,因为他们正在设计自己的芯片。所以在你的系统中,你可以有一些冗余。或者在NoC中,你可以做一些聪明的事情,比如路由来避免问题。”


图2:冗余和自检。来源:西门子EDA

然而,这增加了另一个层次的复杂性,因为在复杂的设计中不只有一个NoC。可能有很多,并且需要在整个系统的上下文中查看它们。该公司解决方案和业务发展副总裁Frank Schirrmeister表示:“然后你就必须开始处理国家石油公司之间的时间问题,因为它们并不是完全同步的Arteris IP.“你必须处理外围连接的计时,以及各种时钟域交叉。”

Schirrmeister说,在这种情况下增加弹性是一个挑战,但使用分而治之的策略使单个部分具有弹性比试图一次性解决整个问题更容易。“你不想同时处理一堆信号。例如,如果你在看安全说明,你就会添加检查程序,以确保它正常运行。”

弹性在汽车行业受到了广泛关注,在汽车行业,芯片被用于安全关键的应用程序,并且法规要求某种形式的故障转移。“汽车行业一直非常重视半导体的可靠性,”Oxland说。他说:“一些大型供应商在这一领域已经活跃了一段时间,比如恩智浦,他们非常擅长这类事情。该应用程序的复杂性可能略低,因为我们讨论的是ecu。但一般来说,它们被大量部署——尽管它们在如何运作方面更具确定性。我们现在看到了无声数据错误的问题,因为在大规模运行高度并行的工作负载非常复杂,所以这更像是一个新问题。我们必须通过改进我们做传统事情的方式,以及寻找新的做事方式来解决这个问题。”

极端的权衡
当Cerebras开发其晶圆规模的芯片时,它认识到没有任何东西会100%成材,而且芯片的某些部分——从整个晶圆中切割出800平方毫米的一块——与其他部分的老化方式不同,潜在的缺陷会变成真正的缺陷。

Cerebras首席执行官安德鲁·费尔德曼(Andrew Feldman)表示:“从历史上看,DRAM实现高产量的方法是使用冗余的比特单元行和列。”“我们有85万个相同的可编程元件,包括一个核心、内存和一个小路由器。它和下一个用电线绑在一起。每个可编程元素都与它的四个邻居相连,并通过冗余链接与它的邻居相连,从而允许它与邻居通话。我们所做的是制造一个测试芯片,我们与台积电合作研究他们的良率数据。如果铸造厂在控制范围内工作,你应该看到的是缺陷的随机分布。这样,冗余就可以让您找出缺陷。所以当我们说我们有85万个核心时,我们实际上有87万个左右的核心,因为我们将保留大约1.5%的核心。”


图3:晶圆级芯片的冗余度约为1.5%。来源:大脑

费尔德曼表示,其他关键部件是在绘图之前进行烧制,并将芯片暴露在超出规格的温度下。他说:“从那里开始,自检检查每个核心和每个核心之间的每根电线的行为。”“如果它失败了,它会激活路由协议并重新进行自检。所以在启动时进行硬件自检,然后在启动后定期进行。”

虽然这对大多数应用程序来说仍然不切实际,但它确实证明了一点。只要有足够的努力和创新,大部分问题都可以解决。挑战在于确定应用程序的可接受的权衡,然后真正理解这些权衡实际需要什么。在今天的硬件和系统设计中,并不是所有这些都很明显。

结论
所有这些都指向了一个更广泛的问题,即管理由更密集的电路、更多的定制和功能、新材料和不同的使用模式引起的日益复杂的能力。结果,未知的数量呈爆炸式增长。并不是所有这些都可以完全理解或调试,对于许多应用程序来说,这是可以接受的。但是对于任务关键型和安全关键型应用程序,为故障做好计划是必不可少的。

我们不可能在紧张的市场窗口中捕捉到所有的东西,但只要有足够的时间和努力,似乎可以制造出能够抵御大多数问题的芯片。毫无疑问,有必要在更多芯片中建立弹性。问题在于如何在一个可接受的价格点上实现足够的弹性。芯片行业才刚刚开始认真考虑这个问题。



留下回复


(注:此名称将公开显示)

Baidu