AI智能总结
页 A CONTENTS 11. 航空电子设备多核认证 22. 干扰和干扰信道 3.识别干扰信道 3.1 平台分析 3.2示例 3.3 接下来会发生什么 ? 4.减轻干扰信道的影响4.1 硬件缓解方法 5.验证缓解措施5.1 平台级缓解措施的验证方法 246. Conclusion 1. 航空多核认证 在满足A(M)C 20-193目标的过程中,面临的许多挑战在于理解并减轻多核干扰,以及提供证据证明托管应用的时间截止条件总是能够得到满足。在本文中,我们将深入探讨识别干扰通道、干扰的减轻措施以及验证这些措施的必要性,以符合A(M)C 20-193的要求。目标,MCP _ Resource _ Usage _ 3 和我们展示了风河®和 Rapita 系统解决方案支持此过程。 随着嵌入式航空电子行业不可避免地转向使用多核处理器进行新项目,理解多核航空电子系统认证的环境比以往任何时候都更为重要。 嵌入式航空电子行业对多核处理器的采用增加,主要是由于对软件功能性的不断增长的需求、改进的SWaP(体积、重量和功率)特性以及在获取高性能单核处理器方面面临的不断增加的挑战。虽然在嵌入式航空电子领域使用多核处理器有许多优势,但在DO-178C或ED-12C项目中使用时,还需要满足AC 20-193(于2024年1月发布;适用于DO-178C项目)或AMC 20-193(于2022年1月发布;适用于ED-12C项目)的额外目标。 什么是 A (M) C 20 - 193 ? A(M)C 20-193 指导文件是由欧洲航空安全局(EASA)和美国联邦航空局(FAA)联合制定的。 它提供了一种 acceptable 的合规手段,以证明安装在航空系统和设备中的多核处理器(MCPs)满足必要的适航性规范。该文件对于确保多核处理器(MCPs,即具有多个内核的处理器)能够在航空环境中安全可靠地运行至关重要。 干扰和干扰CHANNELS 多核干扰是A(M)C 20-193合规性的基石。干扰可能是由多核处理器中不同的内核采取相互影响的动作引起的。这可能包括对相同共享资源的访问、同步事件、一致性机制,甚至热行为。 直接涉及 直接干扰信道核心之间运行的不同任务或应用程序之间的资源竞争。 一个常见的例子是多个核心共享缓存(例如L2缓存),其中一个核心可以无效掉另一个核心写入的缓存行。这可能导致缓存缺失,从而产生性能开销。我们将在后面对此例进行更详细的讨论。识别干扰信道: 示例在第6页。对于熟练的工程师而言,可以从对多核平台及相关设备的高层次理解中直观发现许多直接干扰信道。需要分析技术参考文档来支持这一发现,并理解干扰信道的技术定义。 干扰的影响范围从无明显效果到对托管软件执行行为的影响,包括平均和最坏情况下的执行时间(WCET)、时间行为的可预测性、数据耦合和控制耦合等方面。 硬件出现在哪里间接干扰信道 干扰可以源自多核处理器的各种来源。A(M)C 20-193将这些称为“干扰通道”,并定义干扰通道为“可能引起软件应用程序或任务之间干扰的平台属性”。存在多种不同的干扰通道。这些通道可能来自平台上的多核处理器或外围设备。多核平台通常比预期有更多的干扰通道。其中一些干扰源是显而易见的,可以通过参考文档进行分析来轻松识别。(请参见相关文献)平台分析第 5 页), 而其他不太明显 , 可能只有在测试过程中才能识别出来 (见平台表征第 22 页) 。 不确定性可能影响软件行为。这可能是由于硬件优先级 或模式变化导致的缓存策略变更,或者是流量触发的路由变更。后一种情况的一个例子是,互连路由可能会根据流量的不同而变化。在一个环形缓冲区中,如果有多个核心和设备连接,那么从某个核心到某个设备的最短路径将会确定。然而,如果这条路径已经承载了大量流量,系统可能会重新路由额外的流量到另一条路径上,这可能导致更高的延迟和执行时间的更大变异性。) 。间接干扰信道通常更多 图 1 发现间接组件比直接组件更具挑战性,识别它们可能需要对多核平台或设备中的各个组件有更深入的理解以及它们之间的交互方式。分析技术参考文档应支持这一发现。 为了讨论的目的,并帮助理解可能存在的干扰信道来源以及如何发现它们,在根据其属性对干扰信道进行分类方面是有益的。在整个论文中,我们将把干扰信道分为直接和间接两类。 图 1– 由于核心0对资源A的访问导致资源竞争,在环形缓冲区中引起间接干扰通道。因此,核心1被重定向以采取最短的替代路径来访问资源D。 3.识别干扰渠道 识别干扰信道是一项关键活动在 A(M) C 20 - 193 个项目中。 3.1 如何识别干扰信道(平台分析) 如果你的目标是获得A(M)C 20-193认证,那么你应该使用一个可重复且定义明确的过程来识别平台上的干扰通道。根据A(M)C 20-193的规划目标,该过程应被定义并包含在你的DO-178C/ED-12C规划文档中。 干扰是大多数A(M)C目标中的一个核心考虑因素,且目标MCP_Resource_特别要求认证申请者展示已识别平台上的干扰信道,并验证对这些信道采取的任何缓解措施;详见验证缓解措施在第 20 页。 识别干扰信道需要对多核平台的每一个组件有深刻的理解。这只能通过分析关于多核处理器和设备行为的详细技术文档来获得。为了支持A(M)C 20-193合规性,您应该确保这些信息对于您打算使用的平台的每一个元素都是可用且足够详细的。 作为平台上的干扰信道会对软件性能和所需的验证努力产生重大影响,因此在A(M)C 20-193项目中尽早识别这些信道非常重要。这也归因于所需活动的规模——多核平台可能包含比最初想象的更多的干扰信道,一个典型的平台通常有大约20到250个信道,具体取决于其复杂性。其中一些信道可能很容易被发现,而发现另一些信道则可能更具挑战性(括号内的内容可以保持原样或根据上下文适当调整)。).图 2 Rapita Systems 已在多种不同的多核平台和处理器及设备上识别出干扰通道。Rapita 在其平台分析活动中识别这些干扰通道。 MACH178解决方案 , 为实现 A (M) C 20 - 193 目标提供支持。MACH178包括定义分析过程的流程以及支持编写DO-178C/ED-12C计划文档(包括软件验证计划)的模板。 分析涉及首先识别平台上存在的硬件资源,然后识别并记录可能对每个资源造成干扰(干扰通道)的平台属性及其相关信息。这些记录包括每条干扰通道如何可能导致不同应用程序或任务之间的干扰的描述、可能影响每条通道的配置设置、每条干扰通道的信息来源引用,以及在分析过程中发现的每条干扰通道的潜在缓解措施(详见)。减轻干扰信道第 8 页) 。 图 2–多核平台可能比最初想象的拥有更多的干扰信道,且某些信道可能难以发现。 在前一章中,我们介绍了术语来分类干扰信道,将其分为直接干扰和间接干扰两类,以便理解干扰信道的来源以及如何发现它们。对于大多数多核平台,在初始分析过程中,通常会识别并记录一系列直接干扰和间接干扰信道。平台可能还存在某些无法通过初始分析识别的干扰信道,这些信道只能在验证和表征其他干扰信道的过程中被发现(详见...)。平台表征on page 22). Whenthese are discovered, they are analyzed and documented. 在AMC 20-193项目中使用的硬件会对平台上的干扰信道及其影响产生巨大影响,并且还会对所需的验证工作量产生影响。因此,在开展正式活动之前评估不同的平台是有意义的。在这样的评估中,需要理解的关键平台元素包括系统中断和上下文切换的可见性、缓解策略(参见减轻干扰信道第 8 页) , 以及硬件事件监控单元的可用性 (请参见平 台表征第 22 页) 。 在本章中,我们将涵盖如何识别干扰信道(下一节),并呈现一些示例(第6页),以及简要讨论接下来的内容(第7页)。 例如数据 linefills 、指令 linefills 、 reads 和不可缓存的reads 。 3.2 识别干扰信道 : 示例 一个缓存控制器在同一时间能够处理的并发进行中的请求数量受限于其架构和复杂性。当多个内核同时发起多个请求时,控制器必须对这些操作进行序列化。如果请求数量足够多,执行这种序列化的队列和缓冲区可能会满载,导致新的请求无法被接受。由于这个例子涉及直接对资源(缓存控制器)的竞争,我们将其归类为直接干扰通道,但这种类型的干扰可能不会在初步分析干扰通道时被识别出来。 作为识别干扰信道的一个示例,考虑一个假设的四核系统,该系统具有两级缓存:L1 缓存是每个核心私有的,而 L2 缓存则是所有核心共享的 () 中的 L2 缓存图 3 系统通过共享缓存控制器访问,所有核心共享同一互连网络。许多多核处理器都具有类似此假设系统的特性。 为了识别平台上的干扰通道,我们需要通过分析描述缓存功能的技术文档来详细了解平台的工作原理。以下是一些与假设系统中的缓存架构相关的可能干扰通道的例子。 示例 III : 缓存一致性协议 深入一级缓存(L1缓存),在我们这个例子中,每个核心的L1缓存都是私有的,你可能会假设不存在资源共享,因此不存在干扰通道。然而,在某些情况下,一个缓存行可能被多个L1缓存共享。如果在一个缓存中对数据进行了修改,必须确保将这一更改广播到其他核心,以防止使用过时的数据。为了支持这一点,许多平台包括缓存一致性协议(嗅探器),这些协议会广播到其他核心,允许它们检查修改的数据地址是否也存在于它们自己的私有L1缓存中。如果相同的地址存在,则必须将其无效化以确保一致性,从而迫使意图使用该数据的本地核心首先访问具有更高延迟的L2缓存。这便是间接干扰通道的一个例子,性能受到影响的原因并非直接争夺资源,而是多核架构的间接影响。 示例 I : 缓存行无效 我们在平台上可能识别的一个干扰通道是其他核心对缓存行的有效性进行撤销。当一个核心将数据放入缓存行,而另一个核心替换这些数据时,可能会导致干扰。由于L2缓存中的数据已被替换,第一个核心无法从L2缓存中检索到缓存的数据,因此需要访问更高的内存层次结构来获取数据,这会带来性能上的损失。在我们示例的缓存架构中,这是一个常见的干扰通道。 示例 II : 缓存控制器请求 一个不太直观的例子涉及缓存控制器,它负责管理对缓存发出的请求。缓存控制器从核心(cores)接收请求。 | 减轻多核处理器中的干扰第 6 页 示例 1 和 2 是直接渠道 , 而示例 3 是使用我们的定义的间接渠道 (请参见干扰和干扰信道在第2页)。对于给定的多核平台,仅 从信道对多核系统性能的影响。 通过分析参考文档,可能识别出一些干扰通道。在实际的多核平台上,通过这种分析可以发现更多直接和间接的干扰通道,数量会更多。 我们将研究减轻干扰信道的不同方法减轻干扰信道在第 8 页上 , 以及如何在验证缓解措施在第 20 页。 无法总是减轻干扰信道的影响。几乎总是需要共享设备访问权限,包括那些在硬件层面难以分区的设备,例如网络接口。在这种情况下,可以通过配置或设计来管理干扰,以更好地控制运行时的实际干扰水平。虽然这不会消除验证软件性能的需求,但它将有助于将干扰信道对性能的影响降到最低,从而更有可能使软件满足其性能要求。这一复杂话题超出了本文的范围,可能在未来的研究论文中进行讨论。 真正的平台很可能拥有无法仅通过分析检测到的渠道,这些渠道只能在测试过程中发现(见)。平台表征在第22页)。在Rapita Systems,我们尚未遇到一个没有发现此类干扰通道的多核平台。可以仅通过测试发现的干扰通道示例从错误的配置寄存器定义到未预见的功能,其复杂性不一。Rapita Systems发现的一个后者示例是在一款老旧且广泛使用的多核处理器上存在的非对称总线仲裁。在该处理器上,当所有内核访问以饱和总线带宽时,核心0将优先处理,这种行为可能会影响干扰。 如果你尚未缓解干扰信道,则需要验证软