中文 英语

为什么隐性数据错误如此难以发现

数据中心cpu上的IC缺陷会导致计算错误。

受欢迎程度

云服务提供商已经将无声数据错误的来源追溯到cpu的缺陷(高达1000ppm),这种缺陷只是偶尔在某些微架构条件下才会产生错误结果。所以很难找到它们。

无声数据错误(sde)是制造过程中产生的随机缺陷,而不是设计缺陷或软件错误。这些缺陷会产生软件故障而且谷歌在去年的论文中分别报道过。使这些错误如此令人担忧的原因是它们的随机性、缺陷数量少以及检测故障cpu的难度。这引起了半导体测试界采取行动的呼吁。

简单地说,生产测试需要改进。但是理解错误的本质,为什么它们难以检测,以及为什么我们现在看到它们强调了内部不断上升的计算强度数据中心各种组件和软件之间的复杂交互,以及正确处理这些问题的重要性。

英特尔负责产品开发质量和可靠性的高级首席工程师David Lerner表示:“数据中心规模的增长——由单个云服务提供商安装和管理的数百万个cpu——以及硅集成的增加,在单个SoC包中具有更高的核心数量和更大的硅面积,增加了包括SDE在内的所有故障模式的可见性。”此外,由英特尔开发的DCDIAG以及相关的测试,以及数据中心增加的关注、监控和测试编写,使得SDE现象更加明显。”

但这并没有简化寻找它们的过程。不同的工程团队可以获得不同级别的数据,这导致了关于这些错误原因的许多理论,以及电刺激和环境条件,这些都将导致更好的测试。这些制造缺陷逃逸是由于在时间零点时缺少测试覆盖或缺陷的潜在性质。一些行业专家推测,这些错误也可能是由于实际工作负载导致的早期退化特征。

了解物理缺陷可以指导工程师的筛选方法。但首先,有必要了解指向错误的刺激因素和环境条件。

数据中心看到什么
云服务提供商使用数百万个全天候运行的服务器芯片,处理各种应用程序、工作负载和维护。在过去的几年中,软件工程师开始注意到可以追踪到特定服务器机器子集的错误行为,这些错误行为被称为静默数据损坏(SDC)、损坏执行错误(CEE)或静默数据错误(SDE)。

谷歌的工程师在他们2021年的论文《无足轻重的核心》中描述了这种神秘行为的影响:

“想象一下,你正在生产环境中运行一个大规模的数据分析管道,有一天它开始给你错误的答案——在管道的某个地方,一类计算产生了损坏的结果。调查发现了一个令人惊讶的原因:对低级库的无伤大亚的更改。这个变化本身是正确的,但它导致服务器更多地使用其他很少使用的指令。此外,只有一小部分服务器机器需要反复对错误负责。”

cpu对于管理数据中心内部的操作和计算至关重要,但不正确的计算可能会产生巨大的后果。在他们2021年的论文《大规模静默数据腐败》中,元工程师解释如下:

“它管理设备,有效地安排每个设备的交易,并每秒执行数十亿次计算。这些计算为图像处理、视频处理、数据库查询、机器学习推理、排名和推荐系统提供了强大的应用程序。然而,据我们观察,计算并不总是准确的。在某些情况下,CPU可能会执行错误的计算。例如,当你执行2 x 3时,在某些微架构条件下,CPU可能会默默地给出5而不是6的结果,而不会在系统事件或错误日志中显示计算错误。”

在各自的论文中,Meta和谷歌工程师都列出了他们在应用程序中看到的SDEs的后果的例子。其中包括:

  • 文件的压缩和解压缩,其中一个文件丢失,因为它被错误地计算为具有零大小;
  • 数据库索引损坏导致一些查询被非确定性损坏;
  • 导致某些单词值不准确的文件字数;
  • 在存储系统中,数据损坏影响垃圾收集,导致活数据丢失;而且
  • 对文件进行加密和解密,其中解密的结果是无意义的。

对于静默数据错误,错误值将传递到下一个计算,结果可以间接记录,这使得调试更加困难。为了确定来源,工程团队执行了一个勤奋的调试过程,并了解到错误高度依赖于输入到计算中的数值。这些值对于每个有缺陷的核心是不同的。这种行为表明了一种微妙的失败行为,需要非常特定的激发。

由此产生的故障最终导致两家公司调查了原因。两篇论文都指出,sde可以追踪到特定服务器芯片上的特定核心。尽管如此,在庞大的软件堆栈中找到硬件缺陷的根本原因是一项艰巨的工作,Meta工程师对此进行了详细描述。Meta基础设施团队于2018年开始了他们的调查,以了解多种检测策略以及支持这种检测的相关数据中心性能成本。经过三年的工作,他们学到了很多,并说明了数据对错误的依赖。导致CPU上的Core 59的根本原因,特别是,他们注意到计算INT (1.153) = 0和INT (1.1 .52) = 142。

长期以来,计算机工程师一直认为,已逃脱的缺陷将成为故障停止或故障噪声错误,从而触发机器检查或为许多指令生成错误的答案。有了这些无声的数据错误,情况就不再是这样了。它们显然是数据中心所有者和IC供应商所关注的问题。

失败的性质
为了成功地使用任何检测策略,无论是基于检查的、ATE测试还是系统级测试,工程师需要更多地了解这些故障的性质。所有调查都排除了整体电路设计的边缘性。这些故障是由于处理缺陷造成的。然而,由于最终的测试涉及到客户在任务模式下测试他们的系统,热、电压和频率条件可能会加剧在其他条件下可以通过的局部缺陷。在数据中心进行的有针对性的实验表明,只有一小部分sde在特定的操作时间之后才会出现。

为了开发检测解决方案,需要充分了解故障机制。csp可以将范围缩小到代码片段,但他们不一定知道所有其他参数。这是因为很难将软件代码段与特定的电路故障、环境条件以及精确定位到电路缺陷的过程窗口联系起来。

“我们很有可能面临电路设计余量的缺陷,”Adam Cron说Synopsys对此.“只要对任何一个变量施加一点压力,他们就会走到悬崖边上。这些推力是一点热量,一点电压下降,在接触中有更多的电阻。这些微小的扰动并没有在给设计者的模型中建模。在它们被放入客户的系统之前,它们不会以这种方式进行测试。”

关键在于各种条件和用例的细节。“如果你了解这些情况在不同的工作负载下是如何变化的,并在空间和时间上连接不同的视图,你将能够更快地找到问题的根源,”Nitza Basoco说,该公司业务发展副总裁proteanTecs.“静默数据损坏效应的根本原因是我们行业的一个重要话题。如果我们能诊断出物理和电的原因,我们就能提出更好的检测方法。现在,关于这些时间零逃逸和可靠性故障的原因有许多假设。了解每种类型的组合和贡献水平是我们行业的下一个重点领域。”

对于数据中心(不是谷歌或Meta)的5nm CMOS ASIC产品,一位业内人士表示,产品工程师在ATE测试内容的温度、电压和时钟频率上对客户的返回值进行了篡改(Schmooing正在通过一个范围扫描测试条件参数)。他们中的绝大多数在shmoo的特定点上失败了。他们还指出,一小部分机组未能通过生产水平ATE测试,这表明与可靠性相关的故障。

随着从平面CMOS晶体管到finFET CMOS晶体管的转变,可以合理地期望增加的处理复杂性来发现表现出更微妙行为的缺陷。

Tessent的工程副总裁Jansuz Rajski说:“finfet肯定有一定的贡献,因为如果你有多个鳍片,其中一个有缺陷,就会导致参数行为。西门子EDA.“所以根据测试条件和测试路径,你可能会检测到它,也可能不会。平面晶体管缺陷将有更高的可能性,它将导致更大的错误行为,你将能够检测到。”

然而,这些问题并不新鲜。在2014年的国际考试会议上,题为“过程缺陷趋势和战略测试差距,英特尔的作者强调了一个新出现的缺陷,其错误行为要复杂得多。他们对具有边缘行为的缺陷的描述与当前的sde知识相匹配。他们在摘要中将情况总结如下:

英特尔工程师写道:“光刻挑战开始取代‘FAB污垢’,成为在测试中更难检测和筛选的缺陷来源。”“这些新的缺陷通常会导致边缘行为,而不是严重的故障,具有与传统缺陷和参数化过程变化显著不同的微妙特征。对有效随机位置的细微边缘进行测试,暴露了普遍测试策略中的重要空白。最强的边缘性屏幕集中在固定的位置,最强的随机缺陷屏幕寻找更粗糙的签名。这些趋势和差距将推动对故障建模、测试生成和测试应用的关键新需求,并且有效地实现它们将需要流程和产品开发人员之间的新水平的协作。”

在调查具有SDE行为的客户故障单元时,英特尔的Lerner指出,即使正确地将缺陷识别为SDE也可能是一个挑战。“根据我们的观察,可能导致无声数据错误(SDE)的缺陷通常与导致可检测错误的缺陷没有什么不同,都是可纠正的和不可纠正的,”Lerner说。“缺陷是否会导致SDE,而不是机器检查错误(MCE),主要是缺陷发生位置的函数。”

为什么sde很难被发现
与消费类计算机相比,用于数据中心的微处理器在晶圆测试和最终测试中运行的逻辑测试模式更长。此外,100%的服务器芯片都使用系统级测试进行测试,该测试运行功能测试模式,测试时间较长——通常为40到60分钟。然而,尽管测试内容量很大,但是测试流部分显示了SDE行为。

要理解为传统数字测试或功能测试创建测试内容的挑战,请考虑所报告的sde涉及计算加法、减法、除法和乘法。对于16位加法器来说,它需要运行232独特的组合。假设一个1 GHz的时钟,这代表4.24秒。对于ALU的加法函数来说,这代表了过多的测试时间。几十年前,对于更简单的逻辑asic来说,类似的超长测试时间促使IC供应商使用基于制造缺陷的故障模型。虽然在晶体管和互连水平上包含更多关于加法器设计的智能可以将功能组合减少到更小的程度,但这仍然是一项重要的工程任务。

基于故障模型的结构测试可以分级。在被测设备(DUT)的可能故障范围内,可以模拟结构测试以确定覆盖范围。曾经,98%的固定故障覆盖率被认为是高覆盖率和足够的。现在已经不是这样了。此外,还需要检测影响电路路径定时的缺陷。今天,对于固定错误、转换错误和单元格感知错误,存在多种测试覆盖度量。

使用功能测试模式覆盖率计算并将其与数字故障模型联系起来一直是一个有待解决的研究领域。

的系统级测试系统架构师Peter Reichert说:“你不能说,‘好吧,我启动了操作系统,并确定了它覆盖了哪些潜在的错误Teradyne.“没有从一个到另一个的路径。对于传统的测试,我们有一种识别错误的方法,也有一种根据错误对测试程序进行分级的方法。对于在系统级测试中执行的指令测试,我们实际上不具备这种能力。很难将在处理器上运行特定程序这样的操作映射到它会发现什么错误。”

功能测试模式在CPU中运行指令。测试工程师可以检测到独特的缺陷,因为这些模式所创造的条件与结构测试不同,从而以一种可以检测到故障行为的方式激活有缺陷的电路。实际上,功能测试模式更紧密地反映了客户系统中的行为。功能模式可以应用于ATE测试和系统级测试。然而,温度控制和电压水平在ATE测试仪比在客户系统更大。因此,虽然系统级测试器看起来更像客户系统,但它们也提供了更精确的电压水平和温度控制。

那么为什么SLT检测不到这些有问题的服务器芯片呢?部分原因在于行为。这些是无声的数据错误。如果你不专门去寻找,你是找不到的。

我与美国和世界各地的高性能数字客户合作,当然对他们中的许多人来说,这是一个严重而令人沮丧的话题,”首席测试策略师Dave Armstrong说美国效果显著.“为什么系统级测试在发现这些100到1000ppm的缺陷时是不够的?您必须记住,任何测试器,ATE或系统级或其他级别,都是经过编程的通用资源。如果测试器上存在资源(我相信它们是存在的),那么软件就不存在,或者没有执行测试编程来查找错误。”

虽然测试器上可能确实存在资源,但是需要正确的测试条件来发现问题。sde的缺陷率非常低,它们随机出现在服务器芯片内的任何核心或该核心上的任何单个计算电路块上。运行所有可能的计算需要大量的时间。

“为什么这个系统级测试没有发现它?”我给你的唯一答案是,因为测试不够集中,无法捕捉到它,但我不知道如何做到这一点。这是目前我不知道如何改进的系统级测试的挑战。就像你说的,如果我必须做所有可能的数值计算,那显然是不现实的,”Teradyne的Reichert说。

谷歌和Meta的工程师花了数千个工程小时才找到sde。最近,一家云服务提供商工程师报告说,使用一种特定的检测策略,需要15天时间来筛选该公司的100万台服务器。

可以将软件应用程序故障转移到系统级测试内容。

“从历史上看,专门针对仅表现为SDE的故障的测试是有限的,”英特尔的Lerner说。“虽然确实有一些系统级测试用于检测SDE故障,但现场的低观察率并不意味着由于缺陷导致的SDE发生率很高。最近,英特尔增加了专门用于检测SDE的测试的投资。今天,这些测试正在筛查以前可能被遗漏的缺陷。”

图1:第三代英特尔至强可扩展soc上DCDIAG测试的缺陷筛选率。源英特尔

图1:缺陷筛选率DCDIAG第三代英特尔至强可扩展soc测试。源英特尔

但是由于SLT模式的随机性影响了检测时间的长度,因此sde仍然很难找到。此外,对于某些缺陷,测试的可重复性可能较低。在2022年ITC的一篇论文《数据中心硅缺陷管理测试的优化》中,英特尔的作者指出,使用检测所需的累计DCDIAG时间,存在“易于检测”和“难以检测”的缺陷。

IC供应商还能做什么?
云服务提供商与其服务器SoC供应商密切合作,提供包含SDE事件的系统级测试内容。为了改进筛选,许多行业专家认为在制造检查和测试过程中可以做更多的工作。

公司首席技术官Andrzej Strojwas表示:“筛选必须要更好。PDF的解决方案.“考试质量还能提高吗?肯定。实际上,我们看到相当多的数据表明前端是一个很大的贡献者,前端系统缺陷可以转化为逻辑单元。有两件事是绝对必要的——细胞感知诊断,以及考虑这些前端系统缺陷的细胞感知故障模型。”

了解一系列测试环境条件(频率、电压、温度)的电路设计余量可以提供额外的见解。首先,您需要找到以某种方式复制客户软件代码的测试内容。

“软件衍生测试将使我们能够更有效地集中注意力并发现问题和利润,”Advantest的Armstrong说。“在硅前验证、硅前验证和硅后验证时,你需要提前知道这一点。此外,你需要不断地从你的rma中学习。此外,能够基于新软件重新运行测试,无论是识别特定问题的新库还是新代码,都非常重要。”

一旦您有了这些,那么您就需要尽可能地了解带有缺陷的电路块的测试环境。proteanTecs的Basoco说:“在设计中创建传感器阵列,并结合分析,增强了对设备操作的理解。”“关于功率、电压下降、定时裕度和噪声传感器的信息可以提供正在运行的应用程序的背景信息。关于活动发生时间和测量位置的其他元数据也是必要的。如果你了解这些条件在不同工作负载下的变化,并在空间和时间上连接各种视图,你就能更快地找到问题的根源。”

这些数据对于报告的数据中心工程师来说是不可用的。在一次研讨会上,我听谷歌的工程师介绍了这些sde。”“我输入了一个问题,‘你有与你的问题相关的SLM数据吗?答案是:“没有,他们没有这样的数据。”所以我们甚至都猜不到里面发生了什么。’你知道,可能是温度太高了。”

工程师总是喜欢更多的数据。基于这些数据进行检测和诊断是必不可少的。

Synopsys营销副总裁Steve Pateras说:“这就是SLM的作用,因为现在如果你监测所有不同的环境条件——过程、电压、温度和路径延迟——并且你定期这样做,你可以看到当故障发生时系统中发生了什么。”“然后你会得到数据来帮助你诊断是否有温度峰值和/或电压下降。”

结论
10/7/5纳米CMOS节点之间的交集、更低的工作电压、数据中心cpu中拥有大量内核的数十亿个晶体管以及拥有数百万个内核的数据中心所有者,为这些复杂的设备创造了最终的压力测试。此外,虽然报告是针对cpu的,但加速器(例如gpu, tpu)没有理由不受计算过程中导致这些无声数据损坏错误的缺陷机制的影响。

尽管有种种迹象表明,您无法完全测试客户系统中的sde,但测试工程团队将做出响应。过程、产品、测试和系统开发团队以及最终客户之间需要前所未有的合作。

参考文献

  • 由D.P. Lerner等人撰写的来自英特尔的2022年ITC论文“用于管理数据中心缺陷的优化测试”尚未在IEEE explorer中提供。一旦论文可用,《半导体工程》将提供链接。
  • 元的“无声的大规模数据破坏,作者:Harish D. Dixit等。
  • 谷歌的“不算数的核心,作者:Peter H. Hochschild等。
  • 英特尔2014年ITC的论文过程缺陷趋势和战略测试差距,作者是保罗·g·瑞安等人。
  • 英特尔的数据中心诊断工具,DCDIAG

有关的故事
无声数据破坏
如何防止可能导致错误的缺陷。
硅生命周期管理对IC可靠性的影响越来越大
作为提高异构芯片和复杂系统可靠性的一种手段,SLM技术正被广泛应用于芯片设计中。



留下回复


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

Baidu