多核嵌入式系统的软件可能非常复杂。一个经常讨论的主题是如何在每个内核上实现代码,以便最佳地利用它。在这篇简短的文章中,有一个不同的观点:关注可以跨多个内核运行的软件。
多核硬件架构
从硬件的角度来看,多核设备大致有两种类型:同构多核,其中有多个相同类型的内核,以及异构多核,其中内核是不同类型的。异构设备可能包括一些相同的内核。
要跨多个内核运行单个软件,内核必须相同(无论如何从指令集的角度来看)。因此,需要一个同质的多核设备或异构设备中的同质“孤岛”。
对称多处理
构建多核系统的一个原因是以节能的方式最大化计算能力。这是个人电脑设计者采用的方法;多核处理器在笔记本电脑和台式机系统中几乎无处不在。嵌入式开发人员可能有相同的目标。最好的方法是使用支持对称多处理 (SMP) 的操作系统。
SMP OS 将进程分布在可用内核上。这通常是自动的,但嵌入式开发人员可能需要进行一些控制,并可能将某些应用程序锁定到特定内核。这些进程并不“知道”它们在不同的内核上运行;操作系统提供它们之间的通信和同步。提供多个实时操作系统 (RTOS) 的 SMP 版本;Linux 还提供 SMP 变体。
管理程序
尽管嵌入式 SMP OS 提供了某种程度的控制,但嵌入式开发人员通常希望确保资源的分配完全符合他们的喜好。因此,另一种选择是为每个内核配置自己的操作系统实例——所有内核不必运行相同的操作系统——和应用程序代码。然后,在所有可以控制其操作(引导顺序等)并提供内核间(或操作系统间)通信的内核上运行管理程序。
为了获得更大的灵活性……
到目前为止,我们通过从系统中的单个 (SMP) 操作系统迁移到多个可能不同的操作系统实例来提高灵活性。但是,如果需要更大的灵活性而需要使用不同架构的内核呢?这消除了跨多个内核运行代码的选项——SMP OS 或管理程序都需要同构多核环境。但是,还有另一种选择:在每个内核上运行一个多核框架(可能是基于 OpenAMP 的产品)。这种方法提供内核间通信和生命周期管理。此外,还可以选择在“裸机”(即没有操作系统)上运行应用程序。
结论
在多核嵌入式系统上开发软件是一项复杂的工作。了解一些选项至关重要——在相对简单性和完全灵活性之间进行权衡。
审核编辑:汤梓红
-
嵌入式系统
+关注
关注
41文章
3716浏览量
133114 -
内核
+关注
关注
4文章
1436浏览量
42505 -
多核系统
+关注
关注
0文章
11浏览量
7618
发布评论请先 登录
CW32嵌入式软件开发的必备知识
RT-Thread 2025嵌入式软件大赛重磅来袭
新一代嵌入式开发平台 AMD嵌入式软件和工具2025.1版现已推出
AMD 2025.1版嵌入式软件和工具的新增功能
嵌入式软件开发常用的软件有哪些?
运行在嵌入式系统上的emApps
嵌入式开发入门指南:从零开始学习嵌入式
嵌入式开发:高门槛的系统性工程与 996 的行业困局
IAR分析嵌入式系统的市场前景
嵌入式开发必备-RK3562演示Linux常用系统查询命令(上)触觉智能出品

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