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

多核嵌入式系统的软件可能非常复杂。一个经常讨论的主题是如何在每个内核上实现代码,以便最佳地利用它。在这篇简短的文章中,有一个不同的观点:关注可以跨多个内核运行的软件。
多核硬件架构
从硬件的角度来看,多核设备大致有两种类型:同构多核,其中有多个相同类型的内核,以及异构多核,其中内核是不同类型的。异构设备可能包括一些相同的内核。
要跨多个内核运行单个软件,内核必须相同(无论如何从指令集的角度来看)。因此,需要一个同质的多核设备或异构设备中的同质“孤岛”。
对称多处理
构建多核系统的一个原因是以节能的方式最大化计算能力。这是个人电脑设计者采用的方法;多核处理器在笔记本电脑和台式机系统中几乎无处不在。嵌入式开发人员可能有相同的目标。最好的方法是使用支持对称多处理 (smp) 的操作系统。
smp os 将进程分布在可用内核上。这通常是自动的,但嵌入式开发人员可能需要进行一些控制,并可能将某些应用程序锁定到特定内核。这些进程并不“知道”它们在不同的内核上运行;操作系统提供它们之间的通信和同步。提供多个实时操作系统 (rtos) 的 smp 版本;linux 还提供 smp 变体。
管理程序
尽管嵌入式 smp os 提供了某种程度的控制,但嵌入式开发人员通常希望确保资源的分配完全符合他们的喜好。因此,另一种选择是为每个内核配置自己的操作系统实例——所有内核不必运行相同的操作系统——和应用程序代码。然后,在所有可以控制其操作(引导顺序等)并提供内核间(或操作系统间)通信的内核上运行管理程序。
为了获得更大的灵活性……
到目前为止,我们通过从系统中的单个 (smp) 操作系统迁移到多个可能不同的操作系统实例来提高灵活性。但是,如果需要更大的灵活性而需要使用不同架构的内核呢?这消除了跨多个内核运行代码的选项——smp os 或管理程序都需要同构多核环境。但是,还有另一种选择:在每个内核上运行一个多核框架(可能是基于 openamp 的产品)。这种方法提供内核间通信和生命周期管理。此外,还可以选择在“裸机”(即没有操作系统)上运行应用程序。
结论
在多核嵌入式系统上开发软件是一项复杂的工作。了解一些选项至关重要——在相对简单性和完全灵活性之间进行权衡。


川普上台iPhone可能会大幅涨价 不排除未来MADE IN U.S的可能
荣耀10 GT发布:手持超级夜景功能,8GB版本给用户畅享到底的体验
手机壳制造商Olixar称不会推出廉价版小型iPhone X SE
DBA抓包神器tshark测评
土壤肥力检测仪的工作原理是什么
如何在多核嵌入式系统上开发软件
智能家居不尽人意的地方有哪些
AMD10月销量比例大幅领先英特尔
是否有一种模型能在特定时间内自动识别视频中的某个人物呢?
高频变压器的作用_高频变压器测量方法
Flex Logix希望能使得处理器芯片更具有可编程性
R4网络中的关键技术
浅谈三相电的关键点:总功率
RFID汽车工业有什么额外的效果
苹果中国区大规模下架近5万款应用:重塑行业规则、打击无版号游戏
比特币界的神秘“鲸鱼whales”对市场的影响
继LG化学后,三星SDI也因ESS影响导致Q1利润环比减半
Arduino篇—多位数码管的应用
红米Note4强势登陆印度,Note4x离上市也不远了
阻抗匹配和史密斯图阻抗