您的嵌入式系统选择Cortex-M还是Cortex-A处理器?专家建议是这样的
就Cortex-M处理器核心来讲,ARM已经拥有非常丰富的产品类型。Cortex-M0是同系列的首款处理器,设计初衷是利用其小体积、低功耗的优势,满足深度嵌入、成本敏感的应用程序的要求,例如智能传感器节点。Cortex-M3处理器和Cortex-M4处理器则主要针对大众市场的微控制器。Cortex-M7处理器则是整个系列的最高端产品,性能更高,可以处理计算强度极高的工作负载,也包括信号处理。基于ARMv6-M和ARMv7-M架构的Cortex-M处理器,以简单易用的编程模型,通过搭载高度可配置核心,满足多种不同设备的应用。
Cortex-M处理器关注的重点不是运行更高层次的操作系统,因此也不需要考虑运行负责操作系统的必备功能。例如,Cortex-M没有内存管理单元(MMU),不支持虚拟存储环境,因此也就不支持这类操作系统。如果应用程序需要更丰富的操作环境,通常第一个选择是“超高效率”的Cortex-A核心。这些核心可以为平台操作系统提供更高级的功能支持,同时保持对很高的功耗效率。
得益于此,ARM Cortex-A处理器在深度嵌入式应用程序中得到广泛部署,尤其是在需要Linux或其他复杂操作系统的市场中,其采纳更为普遍。
Cortex-A32是ARMv8-A 架构中能效最高的CPU,是可穿戴设备、物联网及富嵌入式应用的理想选择,而且尤其适合需要使用Linux等平台操作系统的应用。
Cortex-A32是ARM架构中独一无二的产品,拥有重要地位。Cortex-A32基于ARMv8-A架构,却是针对32位设计的处理器。下图介绍了Cortex-A32与ARMv8-A架构的匹配程度,并与Cortex-A35进行了对比。
Cortex-A32和ARMv8-A
Cortex-A35可以实现两种执行态,分别为32位AArch32及64位AArch64,从而充分发挥ARMv8-A架构的64位操作能力;相对比,Cortex-A32仅支持32位AArch32执行态,这一决定不仅进一步压缩产品面积,对于不需要64位操作能力的用例,还可以带来显著的功耗优化。无可否认,部分嵌入式应用可以从64位获益;但许多其他应用都是32位的,将来很长一段时间市场也会依旧如此,Cortex-A32则专为这些应用程序量身打造。
· END ·