“看不见”的霸主ARM Cortex

摘要: 今天,ARM正式发布了Cortex-M7处理器,或者确切地说是微型控制器(MCU)。虽然只有一个字母的不同,但它和Cortex-A系列完全属于两个世界,确切地说是一个更大的世界。ARM Cortex-A系列处理器广为认知,严格来说它属于应用处理器,针对高性能移动应用。Cortex-M、Cortex-R则是ARM旗下的另外两个主力产品,都针对嵌入式,前者属于微型控制器,后者属于实时处理器。Corte

今天,ARM正式发布了Cortex-M7处理器,或者确切地说是微型控制器(MCU)。虽然只有一个字母的不同,但它和Cortex-A系列完全属于两个世界,确切地说是一个更大的世界。

ARM Cortex-A系列处理器广为认知,严格来说它属于应用处理器,针对高性能移动应用。Cortex-M、Cortex-R则是ARM旗下的另外两个主力产品,都针对嵌入式,前者属于微型控制器,后者属于实时处理器。

Cortex-A、Cortex-M/R最大的不同就是后两者没有内存管理单元(MMU)。它的主要任务是在处理器、内存之间架起一座桥梁,执行物理地址、虚拟地址转换,Linux(Android)、Windows、Mac OS X、iOS等通用目的操作系统都需要它才能正常工作。

Cortex-M/R搭配的则是实时操作系统(RTOS)。

虽然不起眼,虽然很低调,Cortex-M系列其实要比Cortex-A系列更猛,无论出货规模还是应用范围都要广得多,Cortex-A也经常需要它们的配合才能构建完整平台。

事实上,你身边的大量电子设备里都有它的身影,而且往往很多设备上有很多颗Cortex-M芯片,只是你没注意过罢了。小到智能恒温器、智能手表、电源管理单元,大到汽车、卫星,里边都是它们。

诺基亚微软Lumia Glance Screen、SensorCore,摩托罗拉Moto Voice、Moto Display,苹果iPhone M协处理器,这些技术的实现背后,贡献更大的其实并不是应用处理器,恰恰就是MCU。

Cortex-M系列诞生于2004年,第一代叫做Cortex-M3。迄今为止,Cortex-M处理器出货量已达80亿颗,超过其他所有ARM处理器加起来的总和!去年一年这个数字就达29亿颗,今年上半年更是已有17亿颗,速度越来越快。

Cortex-M授权企业也已经增至175家。

【Cortex-M7架构解析】

虽然很小很小,M7的首要使命却是高性能,号称达到了前所未有的水平,同时还要维持该系列一贯的超小面积、超低功耗。

之所以努力提升性能,ARM一是希望和传统的8/16位产品进一步拉开档次(M7 32位的),二就是满足可能的下一个爆发点:物联网(IoT)、可穿戴设备,特别是增强了DSP处理能力后,M7比以往更适合作为音频和视觉传感中心。

当然,对于传统的工控、汽车等应用领域,它也是如鱼得水。

架构上,M7具备六级、顺序、双发射超标量流水线,拥有单精度、双精度浮点单元、指令和数据缓存、分支预测、SIMD支持、紧耦合内存(TCM)。

指令和数据缓存、分支预测、TCM都是以往M系列上没有的。MCU经常不考虑缓存,有时候甚至将闪存作为唯一的内存接口。通过加入高性能的指令和数据缓存(最大均为64KB),M7开始向典型的高性能处理器设计靠拢。

TCM之前也只在A、R系列上存在,可以用来扩展M7的有效缓存,最大容量16MB,是MCU物理内存映射的一部分。

它可以拥有真正缓存的性能,但其内容是直接由开发者控制的,可以放置一些关键的代码和数据供,通过中断服务请求等途径来访问,而且性能很高。

分支预测的加入则可以让M7用于独立的DSP服务。代码运行在始终开启的MCU上时,几乎总是会不停循环。如果没有分支预测器,代码必须不断评估循环状况,但其中99.9%的时候结果都是同一路径。当然了,分支预测器会消耗一些核心面积,但对于DSP应用来说是值得的。

由于ARM Cortex处理器都是只卖授权,具体产品得看合作伙伴的实现情况,因此现在没办法确切地讨论面积、功耗、性能等指标,也没办法估算。

AMD唯一提到的就是能耗比和以前是同样的水平,那么鉴于理论性能增加了50-70%,功耗也会付出这么大的代价。

Cortex-M系列指令集

Cortex-M系列面积、性能、功耗

【M+A双剑合璧】

M、A两大系列往往是共存协作的,前者经常被视为协处理器,ARM则认为还不如说A系列是协处理器,因为MCU永远都会在线,应用处理器则不一定。

据此,ARM将可穿戴系统架构分成了三个档次,最基本的只有MCU,而没有A系列这样的应用处理器,比如手环、简单手表等。

这里其实涉及到如何设计IoT、可穿戴设备平台的问题。你需要选择一个最合适的架构、平台,在性能、功耗之前权衡,看自己究竟需要什么。

因为刚刚兴起,目前专门针对IoT、可穿戴的平台还不多,很多产品都直接挪用了传统平台,问题自然很多,尤其是普遍糟糕的电池续航。

比如说A15,ARM的建议是运行在1.2GHz左右频率,但为了追求高性能,很多厂商都选择了加压提频,功耗自然也上去了。类似的,如果将这种平台放到可穿戴设备里,自然无法保证续航。

就连苹果的Apple Watch都只能坚持一天,但其处理器S1还比较神秘,很期待它是怎么设计的。

对此,ARM也提出了一系列建议,指导芯片厂商如何重新利用A7、A5,针对可穿戴设备进行优化设计,特别是将核心面积、频率砍掉至少一半。

ARM还建议,通过软件优化,将特定任务转交给MCU,能将平台功耗减少最多85%。看,说到底还是鼓励大家多用Cortex-M。

【结语】

Cortex-M7将MCU的性能提升到了新的档次,而且进一步将DSP的角色纳入倒了单独一个32位ARM指令集的CPU之中。性能、功能的丰富,可以让设备厂商更多地依赖MCU,应用处理器则尽量少用,自然能改进整体功耗,甚至做出以前不敢想象的产品。

ARM还改进了M7的中断延迟,并提供了一些安全标准认证套件,包括ISO 26262(汽车)、IEC 61508。有这方面工作经验的朋友都会知道,这类套件有多么昂贵。

主要MCU芯片厂商中的Atmel、飞思卡尔、意法半导体都已经购买了Cortex-M7的授权,NXP、德州仪器相信也会很快跟上。

未来的可穿戴肯定会更精彩。

分享到:
(0)

相关推荐