如何在多核嵌入式系统上开发软件

电子说

1.3w人已加入

描述

多核嵌入式系统的软件可能非常复杂。一个经常讨论的主题是如何在每个内核上实现代码,以便最佳地利用它。在这篇简短的文章中,有一个不同的观点:关注可以跨多个内核运行的软件。

多核硬件架构

从硬件的角度来看,多核设备大致有两种类型:同构多核,其中有多个相同类型的内核,以及异构多核,其中内核是不同类型的。异构设备可能包括一些相同的内核。

要跨多个内核运行单个软件,内核必须相同(无论如何从指令集的角度来看)。因此,需要一个同质的多核设备或异构设备中的同质“孤岛”。

对称多处理

构建多核系统的一个原因是以节能的方式最大化计算能力。这是个人电脑设计者采用的方法;多核处理器在笔记本电脑和台式机系统中几乎无处不在。嵌入式开发人员可能有相同的目标。最好的方法是使用支持对称多处理 (SMP) 的操作系统。

SMP OS 将进程分布在可用内核上。这通常是自动的,但嵌入式开发人员可能需要进行一些控制,并可能将某些应用程序锁定到特定内核。这些进程并不“知道”它们在不同的内核上运行;操作系统提供它们之间的通信和同步。提供多个实时操作系统 (RTOS) 的 SMP 版本;Linux 还提供 SMP 变体。

管理程序

尽管嵌入式 SMP OS 提供了某种程度的控制,但嵌入式开发人员通常希望确保资源的分配完全符合他们的喜好。因此,另一种选择是为每个内核配置自己的操作系统实例——所有内核不必运行相同的操作系统——和应用程序代码。然后,在所有可以控制其操作(引导顺序等)并提供内核间(或操作系统间)通信的内核上运行管理程序。

为了获得更大的灵活性……

到目前为止,我们通过从系统中的单个 (SMP) 操作系统迁移到多个可能不同的操作系统实例来提高灵活性。但是,如果需要更大的灵活性而需要使用不同架构的内核呢?这消除了跨多个内核运行代码的选项——SMP OS 或管理程序都需要同构多核环境。但是,还有另一种选择:在每个内核上运行一个多核框架(可能是基于 OpenAMP 的产品)。这种方法提供内核间通信和生命周期管理。此外,还可以选择在“裸机”(即没有操作系统)上运行应用程序。

结论

在多核嵌入式系统上开发软件是一项复杂的工作。了解一些选项至关重要——在相对简单性和完全灵活性之间进行权衡。

  审核编辑:汤梓红

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

全部0条评论

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

×
20
完善资料,
赚取积分