多核微控制器开始在嵌入式系统设计人员中流行起来。设计人员可以通过将其应用程序分解为单独的应用程序(执行)域来利用多个内核。然后,每个域都有一个专用的功能在系统中完成。在嵌入式开发中,虽然多核已在安全关键型应用中使用了一段时间,但随着多核微控制器成本的降低和可用性的提高,我发现还有几个其他用例正变得越来越流行。在这篇文章中,我们将研究三个最常见的用例。
用例 #1 – 实时控制
第一个,也许是最流行的用例,是使用多核微控制器将应用程序分成两个独立的实时应用程序域。在这些应用程序中,开发人员可能有两组相互竞争的实时需求。例如,物联网设备可能需要对一组传感器进行采样,同时将传感器数据传输到云端。电池供电的设备会尝试最小化 CPU 功率,这可能会导致连接堆栈和传感器采集任务之间发生冲突。一种潜在的解决方案是将连接性放在一个核心中,而传感器和其他活动则在另一个核心中执行。(这就是 ESP32 模块所做的)。
用例 #2 – 基于硬件的安全隔离
第二个也是我最喜欢的多核微控制器用例之一是在安全应用中。开发安全应用程序的一种租户是具有基于硬件的隔离。这个想法是有两个执行域:安全处理环境(SPE)和非安全处理环境(NSPE)。
一些单核微控制器使用 Arm TrustZone® 来创建基于硬件的隔离。转换确实使用最多三个时钟周期来切换执行域。在嵌入式开发中,多核处理器的酷炫之处在于,您可以将一个核心专用于 SPE,而将另一个核心专用于 NSPE。无需在执行域之间来回切换,因为每个内核都是一个专用的执行域!这也允许 NSPE 和 SPE 并行运行。加密操作可以在为用户更新显示的同时运行。
目前,这可能是多核微控制器最有效的用例,尽管毫无疑问还有许多其他的越来越受欢迎。
用例#3——机器学习和实时控制
我们今天将讨论的多核微控制器的最终用例是将机器学习推理与实时控制应用程序域分开。 就像实时用例一样,我们希望将实时应用程序的各个部分单独保存在一个核心中,以便它们能够满足他们的实时要求。然后,我们可以在另一个内核中运行机器学习推理,这通常是 CPU 密集型操作。
随着机器学习进入更多嵌入式应用程序,将嵌入式应用程序分解为多个应用程序域并跨多个内核运行这些应用程序将变得更加重要。
结论
对于嵌入式系统开发人员面临的许多设计问题,利用多核微控制器是一个令人兴奋的解决方案。 该解决方案允许开发人员将他们的应用程序分解为多个独立运行但仍共享数据和资源的应用程序域。 因此,可以使用多个内核来改善设备能耗并最大限度地利用片上资源。 众多的应用程序域也使分解问题变得更容易,并允许多个团队或嵌入式开发人员同时处理应用程序。
发表评论 取消回复