让我们来看看多核微控制器相对于传统单核微控制器的三个优势。
优势 #1 – 平衡性能和能源消耗
使用多核微控制器的第一个优势是它为开发人员提供了平衡性能和能耗的额外方法。在单核处理器中,开发人员主要依靠低功耗模式或时钟缩放来最大限度地降低能耗(尽管可以采用数十种技术)。多核解决方案允许开发人员通过使所有内核以最高效率运行,从而获得其设备所需的性能。当不需要所有马力时,可以关闭内核以节省能源并最大限度地延长电池寿命。
在微控制器领域,目前典型的多核解决方案是双核实现。最常见的实现是将高性能、功能丰富的处理器(如 Cortex-M4 或 Cortex-M7)与低功耗 Cortex-M0+ 处理器配对。这允许低功耗 M0+ 处理低功耗状态,并且当需要完成一些需要处理的事情(例如 GUI 更新、运行机器学习推理等)时,可以重新打开 M4。这为嵌入式开发人员提供了几种用于平衡性能和能耗的潜在配置文件。
优势 #2 – 关注点分离(域)
使用多核微控制器的第二个优点是它允许通过分离关注点或域来分解应用程序代码。目前有三个主要的领域类别非常适合大多数应用程序,但肯定还有其他的。这三个领域包括:
- 丰富/实时执行
- 安全/非安全
- 应用/通讯(Wi-Fi/BT)
在丰富/实时执行实现中,应用程序根据其时序要求分为两个域。支持图形用户界面等丰富执行功能的组件将位于一个内核中,可能是 Cortex-M4/M7。支持传感器采集和控制等实时要求的组件将位于第二个内核中,可能是 Cortex-M0+。
在安全/非安全实现中,应用程序的分解不是基于其执行需求,而是基于安全问题。支持安全启动、加密库、安全通信或其他一些安全功能的组件将在一个处理器(如 Cortex-M0+)上执行。再一次,在嵌入式开发中,通用应用程序组件将从其他处理器(如 Cortex-M4/M7)执行,这种实现的主要好处是 Cortex-M0+ 充当安全的处理器和执行环境,它与应用程序的其余部分是硬件隔离的。
在应用程序/通信实现中,一个核心专用于专门处理一个通信堆栈。这个堆栈可以是 Wi-Fi 堆栈、蓝牙堆栈、其他一些通信堆栈,甚至可能是组合。这里的优点是它可以拥有一个具有集成通信功能的微控制器。然后,第二个内核专用于正常的应用程序代码。
这些是使用多核微控制器非常有意义的几种实现方式,在某些情况下,甚至有两个以上的内核也可能有意义!
优势#3 – 工作负载分配
最后一个优势是它允许开发团队分配工作负载。首先,我们可以将开发和维护应用程序的工作量分配给多个嵌入式开发人员或团队,我们可以有一个核心一应用团队和一个核心二应用团队,然后,每个团队专注于其核心的应用程序组件,并且显然与第二个团队在可能存在重叠关注或需要仔细协调核心之间的应用程序行为的领域进行交互。
我们可以分配工作负载的第二种方式是相当明显的,因为我们可以将我们的应用程序工作负载分配到多个处理器上。我们可以获得真正的并发应用程序行为,因为我们有多个内核。不要忘记,就像在使用 RTOS 的并发应用程序中一样,当我们有多个内核并发时,我们可能会遇到有趣的竞争条件、时序问题、共享资源问题和其他并发行为问题。在内核之间分离工作负载时,务必非常小心使用何种处理器间通信方法。
结论
多核微控制器无疑为嵌入式开发团队提供了许多优势,可以帮助他们解决越来越复杂的系统问题。将应用程序划分为关注区域或域的能力目前是采用多核微控制器的主要驱动力。在考虑迁移到多核解决方案时,平衡性能与能耗以及分配工作负载的能力也是主要优势。