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

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

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

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

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

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

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

pYYBAGK-VjmAL8YhAABcapdIWYc625.png

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

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

审核编辑:郭婷

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值