多核时代似乎终于到来了
今天在FreeRTOS官网看到一篇博文《Introducing the FreeRTOS Symmetric Multiprocessing (SMP) Github Branch》,大概说的是FreeRTOS现在支持SMP(对称多处理器)了,已经在GitHub发布源码。
原文大意
随着半导体工艺提升,集成电路中晶体管尺寸不断缩小并接近物理极限,在过去十年里,我们都习惯了复杂性和性能不断提高的多核芯片,从而将摩尔定律扩展到我们的台式机和笔记本电脑中。
在嵌入式控制中,成本、尺寸和稳定性要求往往优先于性能,随着一系列用于物联网、通信、数字信号处理和人工智能的创新多核微控制器的引入,似乎多核的时代终于到来了。
FreeRTOS社区已经认识到这一上升趋势,并做出了许多贡献,目的在于扩展FreeRTOS内核以支持对称多处理(SMP)应用程序。
为了给这些贡献留出空间,我们创建了一个新的FreeRTOS内核 SMP 分支。 我们必须认可乐鑫科技公司和XMOS科技公司为此做出的卓越贡献。使得开发、测试和维护更简单,更具有成本效益。
相关连接:
乐鑫科技:https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-guides/freertos-smp.html
XMOS:
https://www.xmos.ai/xmos-announces-the-launch-of-smp-freertos-for-multicore-processors-in-collaboration-with-amazon-web-services/
FreeRTOS SMP分支:
可能有的小伙伴对多核处理器不是很了解,所以下面我们简单的介绍一下,希望对大家有所帮助。
多核处理器系统(multiple-processor systems)
2005年4月,英特尔第一款双核处理器奔腾处理器至尊版840问世,标志着多核处理器系统时代的来临。
SMP(Symmetric Multiprocessing)
SMP(对称多处理器)就是多个处理器核心共享一块内存,由一个操作系统负责统一管理多个核心,多个任务运行时,由操作系统根据每个核心的空闲状态,决定某个任务应该运行在哪个CPU核心上,动态调度,实现负载均衡,使CPU使用效率最大化。
我们平时使用的电脑和智能手机通常都是SMP架构的,ARM-Linux系统一般也都是SMP架构。
APM(Asymmetric Multiprocessing)
AMP(非对称多处理器)就是每个处理器核心都是独立的,有自己的内存,各自独立运行程序。
程序编译后会分别下载到每个CPU核心,多个CPU核心之间能够相互通信。就像是将多个单独的芯片集成在了同一个封装中。
FreeRTOS对AMP架构的芯片也有相应的支持,由于是AMP架构,所以每个CPU核心上都运行了一个FreeRTOS系统和自己的应用程序,FreeRTOS提供了多个CPU核心之间的通信功能。
详细信息,可以查看FreeRTOS创始人Richard Barry发表的博文(有针对STM32H745平台的Demo):
https://www.freertos.org/2020/02/simple-multicore-core-to-core-communication-using-freertos-message-buffers.html
随着物联网(AIoT)技术的不断发展,对嵌入式系统的要求也越来越高:信号处理,安全,人工智能等,对MCU的性能要求也越来越高,有很多厂家已经推出了多核MCU,比如:
RP2040(Raspberry Pi Pico)
树莓派Pico,双核ARM Cortex-M0+@133MHz,SMP架构。
STM32H745
STM32H745,双核,Cortex-M7和Cortex-M4,AMP架构。
随着AIoT时代的发展,相信多核MCU及其生态会越来越普及。