使用OpenAMP多核框架来满足控制和通信要求

描述

每个嵌入式系统都是不同的。因此,随着多核设计变得越来越普遍,几乎到了成为主流的程度,不同的硬件和软件架构也在不断发展。

从软件的角度来看,大致有两种选择:对称多处理 (SMP) 和非对称多处理 (AMP)。

SMP 系统只能在同构多核平台上实现(即,所有内核都是相同的)。操作系统的单个实例跨所有内核运行。此操作系统需要是支持 SMP 操作的特定变体。Linux 和许多实时操作系统产品都支持 SMP。任务自动分布在核心之间。但是,如果特定应用程序需要,可以选择将任务锁定到特定内核。SMP 的目标是以节能的方式提高可用的处理性能,这在台式机和笔记本电脑上很常见。

对于嵌入式应用,AMP 提供了更大的灵活性,因此也更为常见。在 AMP 系统中,每个内核都运行自己的操作系统(或者可能根本不运行操作系统——“裸机”)。操作系统不需要相同。每个操作系统都可以根据内核的预期功能进行选择,它不需要是特殊的“支持多核”的版本。与 SMP 不同,AMP 不要求所有内核都相同;它可以在异构多核平台上实现。大多数多核片上系统设备包括各种核心架构。不同的核心架构可能适用于应用程序的不同部分。

在 AMP 设计中需要解决两个问题:生命周期管理(启动顺序等)和内核间通信。这些问题不会出现在 SMP 系统中,因为操作系统可以控制哪些任务在何时何地运行,并且任务间通信使用标准的操作系统 API——这些任务不需要“知道”它们在多核上下文中运行。在AMP系统中,每个操作系统都不知道其他操作系统的存在,因此必须做出具体规定。

配置 AMP 系统的最佳方式是使用某种多核框架来满足控制和通信要求。OpenAMP 是定义此类框架架构的标准;许多供应商都提供了 OpenAMP 的实现。

cpu

该框架的一个实例在每个核心上运行。使用Remoteproc提供生命周期管理,其中一个核心被指定为“主”。内核间通信使用RPMsg进行管理,RPMsg在内核之间提供基于通道的双向通信链路。

使用多核框架的替代方法是部署管理程序。这是一个强大的选项,但受限于它要求所有 CPU 都是相同的,因此它只能在同构多核平台上使用。然而,在一个复杂的多核系统中,可能有一组相同的核可以使用 SMP 操作系统或管理程序进行管理,并使用多核框架链接到系统的其余部分。

审核编辑:郭婷

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分