随着MCU应用开始要求提供更高的数字信号处理(DSP)性能,Arm推出Cortex-M4以满足市场的需求。该内核可为浮点运算提供支持,得到许多厂商的采用。一种常见的配置是将强大的Cortex-M4F内核与较为简单的Cortex-M0或Cortex-M0+整合在一起,为用户提供高效的电源管理和资源分配。
在赛普拉斯 PSoC6 或恩智浦(NXP)LPC5411x等器件中,M0+内核可以处理中断(interrupts),使M4或M4F可自由处理 DSP 任务,而不会产生中断,从而能够最大限度地提高数据吞吐量。这种责任划分也使更强大的M4内核能够在活动突发之间进行较长时间睡眠。低功耗M0+ 可在相对有限的运行期间处理比较简单的系统管理任务。
图 2:来自赛普勒斯半导体的 PSoC6。
2014 年,Arm推出了M7内核,将 Cortex-M 的性能提高到新的层级。此内核采用六级超标量(superscalar)流水线架构,支持乱序操作,并通过完整的浮点运算单元来进一步增强。意法半导体的STM32F730x8集成了M7内核、各种外设和公司专有的ART加速器技术(能够实现闪存的零等待状态执行)。
Cortex-A
2005 年,出于满足手机业务向智能手机和平板电脑方向发展的需求变化,Arm推出了Cortex-A家族的首个成员。Cortex-A 旨在提供一系列针对应用处理器定制的功能,也为在服务器和其他高端计算系统中部署 Arm内核铺平了道路。
Cortex-A 处理器与其他系列处理器之间的一个主要区别是支持分页内存管理单元(MMU)。Linux和类似的操作系统都需要MMU,因为它能够将程序及其数据在现实内存中映射到不同虚拟地址空间,这提供了一定程度的安全保护功能,可防止不同任务使用的数据被破坏,此外还能够将物理内存视为大型缓存。尽管程序是动态加载和卸载,它还能够避免内存碎片化引起的问题。