如今,航空电子系统架构师在做出设计决策时经常因一个代价高昂的问题而感到沮丧 - 由于现有系统缺乏支持更新所需的灵活性,因此必须执行实质性的重新设计。设计过程中的这种不灵活的障碍可以通过使用新的、高度集成的多核处理器来克服,这些处理器可以提供长期的系统灵活性。现在,多核处理器不仅被用于解决新单核处理器可用性下降的问题,而且还利用增加的吞吐量,同时保持同等的功耗。
对各种多核操作系统(OS)架构的讨论经常得出一个共同的错误结论:它们都提供类似的功能,降低了架构在设计选择中的重要性。更详细的检查突出显示了一些关键的多核操作系统体系结构之间的显着差异。仔细考虑这些差异有助于防止当今的多核操作系统架构选择成为未来系统更新的数百万美元的障碍。
背景
在单核系统中,多个应用程序可以通过在托管应用程序之间对内存、资源和处理器时间进行可靠分区来共享计算资源。时间分区的常见方法是将固定时间间隔划分为一系列固定子间隔,称为“分区时间窗口”。为每个应用程序分配一个或多个分区时间窗口,窗口的长度和数量是应用程序最坏情况执行时间 (WCET) 和所需重复率的因素。操作系统确保每个应用程序在其分配的时间内都可以访问处理器。
任何系统都需要考虑如何考虑应用程序的增长,特别是对于范围倾向于扩展的系统(例如,飞行管理或机载维护)。单核系统的方法包括使用未分配的时间,转移和/或缩短其他应用程序的时间分配,以及将应用程序移动到功能更强大的计算平台。多核平台的端口应继续支持这些方法,并允许在单核架构下不可行的技术。
多核 – 并发调度
在最基本的层面上,多核处理器的内核可以分配给并发执行独立的应用程序或同时执行应用程序内的多个线程。必须考虑通过两个或多个内核共享的资源(如主内存或系统互连)可能发生的任何争用。遗憾的是,今天的 COTS 多核处理器目前缺乏允许管理对所有共享资源的访问的硬件控制。
SMP 多核架构
对称多处理 (SMP) 是一种基于多核的架构,其中单个操作系统控制所有资源,包括将内核分配给应用程序。“对称”是指所有内核被视为平等,允许操作系统利用任何内核来执行应用程序线程。即使应用程序可能被设计为多线程,这并不意味着当多个内核可用时,它将执行相同的操作。对于可靠的分区,操作系统应包括支持配置将哪些内核分配给应用程序以及线程将具有要执行的关联性。
借助 SMP 支持,在将一组应用程序从单核处理器移植到多核处理器时,可以采取保守的方法,包括保留现有分区计划。通过确保所有线程对同一内核具有关联,线程将像在单核处理器上一样执行。如图 1 所示,现在可以根据需要并行化特定应用程序以获得吞吐量,选择每个线程将在哪个内核上运行,从而实现应用程序增长。新应用程序可以专门设计为同时利用多个内核,可能具有更短的时间分配。此外,将扩展连续内置测试(BIT)应用程序,以确认所有内核和共享资源的正确性。
图1:使用 SMP 的应用程序增长注意事项
AMP多核架构
在移植应用程序(即使是多线程应用程序)时,可以并行有效使用多少个内核可能存在实际限制。非对称多处理 (AMP) 是一种基于多核的架构,其中每个内核基本上作为单独的计算资源运行,允许并发调度。这种体系结构被称为“非对称”,因为它允许(但不要求)实现使用不同类型的处理器内核和/或操作系统。由于多个不同的操作系统不能全部以最高的处理器权限级别运行,因此可能存在一个监视器功能(有时称为“虚拟机监控程序”)在所有内核上提供此支持。AMP 架构的优势在于,不同的应用程序可以在可用内核上同时运行。通过一定程度的虚拟化支持(例如,作为监控功能的一部分),这包括不同操作环境(如Linux或专有操作系统)的应用程序。
将应用从单核处理器移植到 AMP 架构时,可以采用与 SMP 架构类似的方法。但是,在解决争用问题之前,可以实际分析的并发执行内核(例如 WCET)的数量将受到限制。如图 2 所示,由于应用程序相互依赖性,服务器应用程序(如文件系统)即使在争用的情况下也可能是并行性的良好候选项。假设可以考虑对共享资源的争用,则可以将AMP架构中的每个内核配置为运行独立的应用程序计划或完全不同的环境,例如来宾操作系统。与运行独立计划相关的一个困难是,仍然需要跨计划分析资源利用率。如果不能及时协调独立的计划,则可能无法分析和考虑资源可用性和协调的硬件 BIT。如果其中一个内核正在运行虚拟化操作系统(例如 Linux),则操作系统上缺乏保证活动以及无法协调硬件 BIT 可能会导致并行运行的内容受到严重限制。
当应用程序更新需要的带宽超过其当前核心可以支持的带宽时,可以将应用程序移植到其他核心之一。这种移植会因 AMP 架构固有的几个因素而变得复杂。例如,带宽必须全部来自一个内核,移植可能会破坏有关应用程序执行顺序的假设,并且传输延迟可能会因开/关内核通信机制的差异而受到影响。这些复杂性与流行的想法相矛盾,即 AMP 架构由于调度不那么复杂,因此更容易认证。
图2:AMP 的应用增长注意事项
来自绿山软件的 tuMP 多核架构
其他架构包括异构多处理(HMP – 单个内核静态划分为独立的 AMP 或 SMP 子系统,每个子系统都有自己的操作系统)和统一多处理(UMP – 单个内核在应用程序基础上静态划分为子系统,但具有单个“统一”操作系统)。AMP、SMP 和其他类似架构的一个常见限制是,核心使用情况在执行期间是固定的,并且在分配后不会更改。这一限制通过Green Hills Software开发的多核架构得到解决,该架构目前正在进行DO-178B A级认证工作,作为INTEGRITY-178产品线的一部分。这种架构被称为“时变统一多处理”(tuMP),显著提高了处理器内核利用方式的灵活性。(tuMP 是 Green Hills Software 的注册商标。tuMP 架构的可行性通过其作为 INTEGRITY-178 单核产品的更新的实施得到了证明,保留了 12 年的安全和安保保证谱系和产品服务历史。
tuMP 架构的好处是它保留了所有 AMP 和 SMP 调度功能,同时解决了它们的重大限制。tuMP 体系结构通过称为“地缘组”的新可调度实体提供灵活性,该实体是应用程序、核心和调度特征的关联。只有分配给地缘组的应用程序才能在其计划的时间范围内使用分配给同一地缘组的核心。通过创建多个子系统调度,可以同时调度独立的关联组(即应用程序和内核的非重叠使用),并且不受时间窗口必须在所有内核之间对齐的限制。此外,通过为每个组合创建唯一的地缘组,应用程序可以在不同的内核集上运行。借助 tuMP,可以完全灵活地利用可用内核进行并发应用程序和并发线程执行,并在需要时更改这些关系(即时变)。
tuMP 体系结构称为“统一”,因为通用操作系统控制所有内核的调度和应用程序之间的整体通信。此特性解决了在内核之间移动时的 AMP 应用程序移植问题;可以使用相同的机制在相同或不同内核上的应用程序之间进行通信。
单核处理器的分区调度端口可以通过为绑定到同一核心的每个应用程序创建具有关联组的相同子系统调度来实现。如果某些应用程序需要额外的吞吐量,则可以将其他内核分配给其地缘组,也可以从任何内核分配未使用的时间。
在 AMP 系统中(如图 2 所示),通过并行运行文件系统应用程序与相互依赖的应用程序来实现一定程度的并行性。如果应用程序需要比文件系统更高的吞吐量,则文件系统不会充分利用其核心。如图 3 所示,tuMP 通过创建一个将文件系统与依赖于它的应用程序(例如飞行管理)组合在一起的关联组,并为其分配多个内核,从而解决了利用率不足的问题。在此方案中,文件系统可以与特定核心具有相关性,应用程序在未用于文件系统操作时也会使用该核心。
当其他应用程序(例如 BIT)需要同时控制所有内核或现有应用程序不能容忍并行运行的其他应用程序时,在内核上集成来宾操作系统是一项设计挑战。在 tuMP 中,可以将来宾操作系统关联性组分配给多个分区时间窗口,这些时间窗口会分解核心的使用以支持这些其他要求。现在,可以为 BIT 应用程序的地缘组分配所有内核,以便它可以执行必要的硬件测试。
在 AMP 系统中,如果另一个内核有足够的未分配时间来支持更新的应用程序,则可以支持其核心吞吐量不足以支持更新的应用程序。借助 tuMP,应用程序(例如,板载维护)可以分布在与多个内核关联的时间窗口上,而不仅仅是一个内核。
图3:使用 tuMP 的应用程序增长注意事项
集成多核处理器
航空电子认证工作需要彻底了解使用这些技术的复杂性和后果。系统设计人员在将多核处理器集成到其航空电子平台设计中时,应牢记谨慎选择架构的重要性。系统设计人员应考虑根据其系统灵活性选择多核架构,以优化核心使用并管理认证风险。就用户而言,他们应该明白,他们的供应商今天的选择将影响未来软件扩展的经济可行性。
审核编辑:郭婷
-
处理器
+关注
关注
68文章
19286浏览量
229804 -
操作系统
+关注
关注
37文章
6822浏览量
123331
发布评论请先 登录
相关推荐
评论