中文 英语

硬件和软件的选择会影响质量和可靠性吗?

当设计变得更复杂、更关键、更长寿时,权衡就变得更重要。

受欢迎程度

电子系统包括硬件和软件。哪些功能是用硬件实现的,哪些功能是用软件实现的,这些决定是基于各种各样的考虑做出的,包括对质量和可靠性的考虑。

硬件可能在本质上提供更高的设备质量,但它也是可靠性问题的来源。这与人们对软件的普遍看法形成了鲜明对比,很大程度上是因为软件可以更容易地打补丁。

“质量和可靠性在硬件和软件的设计中都被认为是至关重要的,”罗伯特·艾特金(Rob Aitkin)说手臂.“但它们在硬件和软件上的意义可能不同。”

有一些基本的原因可以使硬件具有更高的质量,而软件具有更高的可靠性。但是,也可以采取一些措施来确保高质量的软件,并调节长期硬件退化的影响。

质量与可靠性
质量和可靠性的概念经常互相混淆。质量反映了产品在生产时的状态。如果一件产品在发货时存在缺陷,那就是质量问题。另一方面,可靠性反映了产品随时间的变化。一开始看起来是高质量的产品最终可能会在以后的生活中失败。

有一个经典公式描述了这种关系,由于其形状被称为“浴缸”曲线。它显示了在开始时较高的故障率,在产品的大部分生命周期中下降到一个稳定的水平,然后随着产品生命周期的接近再次增加。

图1:“浴盆曲线”风险函数(蓝色,上方实线)是早期失效风险降低(红色虚线)和磨损失效风险增加(黄色虚线)的组合,加上随机失效风险不变(绿色,下方实线)。来源:维基百科

“磨损”故障是可靠性的典型表现。然而,“婴儿死亡率”部分需要更多的讨论。早期的失败可能代表质量问题——产品出厂时出了问题,无论做什么测试都没能发现问题(或者是测试“逃逸”)。如果某些元素在制造后完好无损,但在制造后不久就失效了,这也可能反映出可靠性问题。一个例子可能是一个构建得很差的连接,有足够的连接通过测试,但在象征性地使用了一段时间后连接就断开了。

区别的关键在于,当产品离开生产线时,是否存在早期设备问题。如果是这样,那就是质量问题。如果故障代表了设备在制造后的变化,无论变化发生得有多快,这就是可靠性问题。

质量反映的不仅仅是生产过程中出现的问题。如果设备中存在bug,无论是硬件还是软件,这都是质量问题,因为设备是随设备一起发货的。该漏洞可能直到产品使用的后期才会暴露出来,这使得它看起来像是一个可能的可靠性问题。但这个漏洞并没有随着时间的推移而出现。它一直都在那里,但它是潜伏的,直到条件暴露出来。

然而,在复杂系统和多芯片包中,这条界限开始模糊,它具有广泛的商业含义。硬件和软件可能在规格范围内,但由多个芯片、嵌入式代码以及各种硬件和软件过程组成的整体系统将使整个系统超出规格。

“只有一个芯片,你就能知道它是好是坏,当我付钱的时候,我知道我买的是好芯片还是坏芯片,”英特尔产品营销总监Alan Liao说形状因子.“当包装公司把A公司的一个模具和B公司的一个模具集成在一起时,如果整个包装失败了,谁来负责一个坏的部分?”他们需要获得这些数据来制定商业模式。”

此外,芯片的寿命预计会更长,尤其是在工业、汽车、机器人、5G基站甚至服务器等应用领域。

英特尔战略合作高级总监杰伊•拉瑟特(Jay Rathert)表示:“有办法在芯片内部用软件制造虚拟层,并添加冗余核等东西,但汽车公司尤其在努力避免复制这些相对昂贵的芯片。心理契约.“这将继续推动质量。我们从原始设备制造商、一级和二级供应商的合作生态系统中了解到,他们希望了解这些问题,并试图避免这些问题。我们不止一次听到许多关于日益增加的复杂性,对尖端芯片的需求,以及它们的成熟度和如何解决质量问题的问题。如今有一半的故障可以追溯到晶圆厂。”

最后,一些随机的失败可能真的是随机的,也可能不是,但找出答案需要时间和金钱。

该公司高级解决方案副总裁Dennis Ciplickas表示:“虽然一些现场故障的根本原因是真正的‘随机’,可能只有通过对有源芯片电路本身的功能测量才能发现,但当今的先进技术在本质上是‘系统性’的,因此存在重大的可靠性风险。PDF的解决方案.“这意味着,在现场发生故障的晶圆上电路的物理加电气根本原因也会影响同一晶圆内相似设计和/或附近的结构,同一晶圆上的相邻晶圆/区域,以及晶圆在同一批次、批次或时间范围内加工。捕捉这一系统趋势可以加快遏制和根本原因诊断。这就是为什么scribeline电子测试数据通常被用作晶圆级质量屏幕的原因,尽管这些晶圆上的产品良率可能看起来不错。超高密度电阻/晶体管阵列和全晶圆高速并行参数测试的使用显著提高了scribeline测量的信号灵敏度,在模具内部放置电子束专用仪器,如我们的DFI(用于检测的设计)结构,不仅极大地提高了信号灵敏度(到ppb水平),而且还提高了空间分辨率。”

软件与硬件
浴缸曲线——以及随之而来的可靠性概念——非常适合硬件,因为众所周知,硬件会随着时间的推移而老化。此外,在大多数情况下,硬件比软件更容易受到制造错误(而不是设计错误)的影响,尽管彻底的测试制度应该使其成为产量问题,而不是质量问题。

这种区别甚至在8位系统中也很明显单片机其中包括用于预处理外围数据的可配置硬件块。这些块有时被设计成在处理器休眠时保持清醒状态,因为这样可以节省电力。如果该功能是在软件中处理的,则需要唤醒处理器来运行软件。

“我们已经在我们的芯片上放置了小块的可配置逻辑,这样你就可以使用这些结构来应用小块的逻辑,而不需要启动实际的CPU,”华为8位MCU业务部门的产品营销部门Wayne Freeman说微芯片

这是基于一个普遍的假设,这是由许多芯片工程师共享的,这种配置提供了更高的可靠性,因为更有可能在软件中出现错误。但软件漏洞使问题变成了质量问题,而不是可靠性问题。弗里曼说:“如果你能把大量的任务处理转移到外围硬件上,你就必须写更少的代码。”“你写的代码越少,错误就越少。”

人们的看法是,软件比硬件有更多的bug,这使得软件出现质量问题的风险更高。因此,用专用的硬件块取代部分软件,应该能提供更高的质量。这是因为硅芯片需要投资于将用于生产的极其昂贵的掩模组。在口罩制作完成后发现的任何漏洞都意味着至少有一部分——也许是全部——口罩需要更换。这是任何设计团队都不愿意承担的费用。

这就要求在试制前进行非常严格的验证,在试制过程中,设计被认为是完成的,设计数据被发送到口罩制造商进行口罩生产。在设计验证和可靠的测试制度之间,期望芯片将以非常高的质量退出晶圆厂。Aitkin说:“硬件设计过程的重点是在‘贴出’时创造出尽可能接近零错误的设计。”

相比之下,软件通常不被认为具有相同级别的验证。该公司设计验证技术部营销总监尼尔•汉德表示:“硬件的测试次数比软件多。Mentor是西门子旗下的企业

毕竟,如果出现问题,软件可以简单地打补丁——这在硬件上是不可能的。公司总裁兼首席执行官Subodh Kulkarni表示:“客户希望在相同的硬件上进行多次软件迭代CyberOptics

尽管事实上软件可以在比硬件更自然的环境中进行测试。Arm的Aitkin说:“在软件设计中,alpha和beta测试比模拟或基于模拟的硬件更接近于实际部署。”

此外,虽然不总是这样,但更新通常可以以很少的成本进行管理。“软件更新的成本本质上并不昂贵——尽管在某些应用中,如果你不得不停飞一队卡车或飞机来进行软件更新,成本可能会很高。

硬件后期不可变性的例外是可编程硬件,比如FPGA.底层设备必须经过验证,以确保不需要掩码旋转,但最终的功能将由芯片用户创建的硬件“程序”决定。该程序也可能经过高度验证,但不存在掩码重新旋转的风险——而且硬件的这方面也可以打补丁。

因此,从表面上看,软件和可编程逻辑的质量可能比完全的硬件要低。这将支持在可能的情况下使用硬件来实现某些功能更好的说法。

另一方面,软件不会老化。从理论上讲,软件在发布时的状态是它将永远保持的状态。任何变化都反映了硬件问题——存储代码的内存出现了故障,或者执行软件的处理器出现了开发问题。可靠性似乎完全是硬件方面的问题。虽然用硬件块替代软件可能会带来更高的质量,但也有一个权衡。对于硬件来说,随着时间的推移,老化和压力会造成损害。硬件越复杂、越精细,出错的可能性就越大。

提高软件质量
然而,考虑到计算机配置的多样性,确保将在各种通用计算机上执行的程序的软件质量总是很困难的。对所有组合进行测试是不可能的,因此很难确保测试工作已经足够。

嵌入式应用程序则不同。它们反映的软件程序最多只能在数量非常有限的硬件平台上使用。通常这个数字是1。这可以为测试的彻底性提供更大的信心。

许多新事物的复杂性systems-on-chip(soc)意味着它们需要模拟器来测试它们。的优势之一模拟器在模拟器的硬件映像上运行一些真实的软件是可能的。从理论上讲,这可以在提高软件质量的同时,榨干硬件。

但是在模拟器中运行软件的目的通常是确保硬件和硬件/软件交互都按预期工作。可能只有司机要接受测试。汉德说:“我正在挑选我需要挑选的软件来测试硬件,而不是(测试)我的软件是否防弹。”运行完整的软件程序可能需要比实际可行的时间更长的时间,因为即使模拟器运行得比模拟快得多,它仍然比最终系统要慢。

敏捷开发方法还会给人一种印象,即软件质量可能较低,因为人们只关注于得到一些东西,然后在必要时进行更改。虽然对于低影响的软件可能是这样,但对于任务关键型应用程序则不一定是这样。Hand说:“即使我们遵循敏捷软件开发方法,在我们发布之前仍然有大量的测试。敏捷是一种更快地进行测试的方法。我不认为这能消除测试。”此外,敏捷方法也用于硬件。

即使采用敏捷方法,夜间回归测试也是硬件和软件的标准。汉德说:“我们从客户那里得到的最大压力是确保他们能够扭转每晚的倒退。”在此上下文中,“发布”的概念经常与实际的软件发布无关,而是发布到树的顶部。对于硬件和软件来说,在真正发布掩码(对于硬件)或用户可用性(对于软件)的结果之前,这种情况可能会发生很多次。质量不是由敏捷或其他方法的使用决定的,而是由预发布测试的质量决定的。

面对衰老的现实
老化影响硬件而不是软件的事实并不是最终的结论。为了适应可靠性问题的现实,并减轻这些问题可能造成的任何影响,很多工作都花在了补救步骤上。Kulkarni表示:“出于资本折旧的目的,硬件预计至少能维持7年。”

一种越来越受欢迎的方法是使用芯片内监视器来跟踪关键的设备性能特征。这使得设备操作人员可以在老化和任何其他不断演变的不当行为发生之前观察它们。被称为预防性维护,它允许设备在故障发生之前以有序的方式进行更换或维修。“我们的代理的主要价值在于预测性维护,”Noam Brousard说,系统副总裁,atproteanTecs,其中“代理”指的是公司监控器的实现。“我们可以将趋势与失败的物理学联系起来,在问题发生之前预测到问题。”

手同意。他说:“我们希望达到硬件和软件一样可靠的地步,在它失效之前你就知道它会失效。”“如果你要构建一个高可靠性的系统,不仅仅是硬件。不仅仅是软件。我们不仅要知道硬件会如何失效。我们还需要确保软件能够正确地发生故障。”

另一个需要特别关注的环境是安全关键型应用程序。曾经主要局限于军事和航空航天应用的汽车行业已经将功能安全带入了主流。这里的想法是采用冗余等保护措施,这样,如果出现问题,结果是可预测和可控的,而不是灾难性的。

“我们可以达到必要的可靠性水平,但这需要的不仅仅是开发高质量的部件,”测试产品的高级营销总监史蒂夫·帕特拉斯(Steve Pateras)说Synopsys对此.“主动管理是必需的,而目前在电子产品领域很少有主动管理。”

原因是可靠性问题在很多情况下是物理问题。主动管理与这些问题一起工作,以减少它们的影响。软件看门狗可以监视硬件,硬件看门狗可以监视软件。但在任何一种情况下,都不能假设任何东西都是有效的,并且需要为它们不起作用的情况做好准备。

帕特拉斯说:“通过对芯片的基本了解来预测可靠性,并通过持续的数据更新这些推断,以保持对事情走向的准确预测,这是所有这一切的圣杯。”“我们认为它必须是一个基于硬件的解决方案,以确保性能优化、安全优化、可靠性优化以及性能和可靠性预测。如果一辆车马上就要出故障,你就会想让它离开公路。”

不要担心它是硬件还是软件
Mentor讨论了一种通过全面关注应用程序来实现硬件或软件决策的方法,而不会在硬件和软件开发之间产生强烈的分歧。应用程序的所有需求都必须在硬件或软件上进行验证和验证。汉德说:“在这种情况下,硬件和软件之间真的没有区别。“这是一个功能,你们一起设计,一起测试。”

艾特金同样提出了一个整体观。他说:“虽然软件在寿命上没有硬件那样的限制,但软件组件在包括硬件和软件的堆栈中作为层存在,其中堆栈本身的设计是为了最大限度地限制或适应可靠性问题的层间影响。”

抽象地说,如果没有额外的努力,软件的质量可能会低于硬件,而硬件将存在软件不会存在的可靠性问题。添加更多的软件确实会产生更多的漏洞。增加更多的硬件确实会产生更多可能老化和出错的电路。

然而,实际上,是额外的努力带来了不同。软件测试可以像硬件测试一样严格。硬件设计可以采用一些措施来减轻可靠性问题的影响。这可以在一定程度上区分“好”产品和“坏”产品。Kulkarni说:“大多数高性能、高价的系统供应商倾向于选择高质量的组件,并不断迭代软件。”“然而,对于性能较低/价格较低的供应商来说,情况并非如此。”

CyberOptics公司的工程经理约翰•霍夫曼认为,硬件选择和软件选择之间只有一个真正的区别。他说:“适用于所有系统的硬件和软件之间的唯一基本权衡是未来增强的机会。”没有一个正确的答案,决策可能更多地由功能需求驱动,如成本和通过未来软件升级增加的功能。任何关于质量和可靠性的担忧都可以通过额外的测试和设计工作来解决。

- Ed Sperling和Anne Meixner对本文也有贡献。

相关的
让芯片寿命更长
对于不同的市场,以及这些市场中的应用程序,生命周期可能有很大的不同。
自适应测试取得进展
对以合理成本提高质量的需求正在推动测试过程的巨大变化。
减少PCB缺陷的需求增长
在日益复杂和密集的电路板中,仅靠电气测试无法发现问题。



留下回复


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

Baidu