随着越来越多的嵌入式系统设计有多个 CPU(最常见的是芯片上的多个内核),多核设计仍然是一个热门话题。理解多核的一个挑战是该术语被广泛用于描述许多设计方法和架构。需要一些明确性。
弄清楚术语是第一个挑战。..。..
“多核”一词让许多人想到台式电脑、平板电脑、智能手机等中使用的微处理器芯片。这些设备由许多(有时是大量!)相同的 CPU 构成,它们提供了巨大的计算能力和运行并行算法的机会,这对某些应用程序非常有益。这些设备被正确地称为“同质多核”,因为所有 CPU 都是相同的。该软件的架构是对称多处理 (SMP),它是通过在所有 CPU 上运行操作系统(Windows、Linux 或 MacOS)来实现的。(使用操作系统的单个副本。)
在嵌入式系统中,SMP 也占有一席之地。它用于需要在经济和节能配置中提供大量计算能力的地方。因此,可以使用许多实时操作系统的 SMP 版本。
可以预见,同构的替代多核架构是异构的,其中各种内核具有不同的架构。这对嵌入式系统开发人员很有吸引力,因为 CPU 可以部署到应用程序中最适合它们的部分。这种系统的软件架构必然是非对称多处理 (AMP),其中每个 CPU 运行自己的操作系统(或者可能根本没有操作系统)。这意味着可以酌情为每个 CPU 部署不同的操作系统。例如,一些 CPU 可能运行 RTOS,而其他 CPU,考虑到不需要实时行为,可能运行 Linux。
多核设计的一些其他方面:
如果需要,您可以在同构多核设备上实施 AMP。
在复杂的系统中,可能存在 SMP 和 AMP 的组合。由于运行 SMP 的 CPU 集群看起来有点像单个 CPU,因此它可以是 AMP 系统的一部分。
AMP 设计方法提供了以各种方式对软件进行细分的绝佳机会。不仅实时软件和其他软件可以分离,而且安全关键软件组件可以很容易地与其他软件子系统分离(和保护)。
SMP 系统中的 CPU 间通信由 OS 提供;可以使用正常的任务间通信。对于 AMP 系统,需要选择合适的机制和协议。
多核系统设计具有挑战性,我认为有两个方面特别麻烦:
配置——构建一个系统涉及到让所有部分——操作系统、内核间通信等——很好地协同工作。随着内核的种类越来越广泛,这一挑战变得越来越关键。一个好的方法是考虑一些异构多核基础设施软件——一个框架或管理程序——它提供了经过充分验证的“粘合剂”。
调试——通常,调试比编码花费更多的时间(即使开发人员会否认这一点!)。如果您使用 RTOS,调试多线程代码很困难,因为显然同时执行的线程之间的交互是微妙的。在具有真正同时性的多核系统中,情况只会变得更糟。传统的“停止和凝视”调试不会破解它。需要更复杂的工具来捕获完整系统的操作并使开发人员能够根据需要放大以查看细节。
毫无疑问,多核将很快从普遍走向无处不在。设计和开发挑战仍将存在,需要认识到思考和解决问题的新方法。
审核编辑:郭婷
-
嵌入式
+关注
关注
5082文章
19126浏览量
305214 -
Linux
+关注
关注
87文章
11304浏览量
209507 -
WINDOWS
+关注
关注
3文章
3545浏览量
88701
发布评论请先 登录
相关推荐
评论