曾经也想对ARM Cortex-M做一些总结,在网上闲逛时,突然发现有位博主写的很不错,借此转载。
转载网址:
ARM Cortex-M底层技术(一)ARM Cortex-M系列微控制器概况
写在前面的话:
近些年来ARM Cortex-M阵营各厂商(ST、NXP、ATMEL、Freescale……)发布新产品的节奏越来越快,以及微控制器应用普及程度的加深,越来越多的开发者把更多精力投注在应用层开发上,花在对底层技术上的时间越来越少。小编我希望借助我之前对底层的一些积累,可以帮到大家快速的建立对Cortex-M系列处理器(M0/M0+/M3/M4/M7以及新的M23/M33)的底层技术:芯片内核、编译器/开发环境底层、底层软件、调试技术等的快速积累,可以帮助大家更好、更快、更可靠的开发产品。
ARM Cortex-M系列微控制器概况:
老的ARM5、ARM7、ARM9、ARM11时代的处理器都是历史,ARM公司从ARMv6-ARMv7时代开始ARM开始使用A、R、M系列来命名其新的处理器。
这里简单啰嗦几句A和R系列处理器的概况:
A系列为应用处理器,其中A可以理解为Application,现在主流的智能手机几乎都是ARM的A系列内核,从早期的A8、A9、到后来的A15、A57、到现在的A72、A73、A75内核。主要用于运行iOS、Android、Linux等操作系统。
R系列为实时处理器,其中R为RealTime,R7、R8等主要用于硬盘、4G通信模块、相机等领域,这个系列处理器性能也非常彪悍,有兴趣的童鞋可以自己去ARM官网看看,蛮有意思的。
M系列处理器,其中M指的是Microcontroler目前主要有M0、M0+、M3、M4、M7以及新发布不久的基于ARMv8-M构架的M23、M33,其中M23为M0&M0+的升级,M33为M3、M4的升级。性能天梯如下图:
上图为同等主频下,各个内核可以提供的运算性能的大概的对比关系,评判一个处理器处理性能一直是一个难题,有很多的评判标准,上图是ARM官网提供的,Cortex-M系列在ARM官网上一直是以Coremark分数为主要评测标准,大家可以参考,真实的性能对比还要看具体应用。
M23是基于最新的ARMv8-M构架的主要关注低功耗应用的微控制器,未来会是M0、M0+的替代品。
M33是基于最新的ARMv8-M构架的主要关注高能效应用的微控制器,未来会替换M3、M4。
M7是老一点的ARMv7-M构架专注高性能的微控制器,从上图中也看得出,M7性能最强。
具体参考下图:
M0+简述
下面简单说一下M0+,M0作为过去时的微控制器这里略过,以90nm工艺为例M0+与M0的主要区别大家能用到的主要是以下几点:
1、M0+功耗更低,比M0低约30%,这里说的只是内核功耗,真正落到芯片上还要算上外设、时钟系统等功耗,差距并没有30%那么大。现在大家看到的M0+功耗更低更多的是来自工艺的精进上,M0早些年上市时主要是130nm/140nm/180nm工艺,而到了M0+时代更多的变成了90nm,内核&工艺两方面的改进使得M0+相比M0功耗要低得多。现在ARM官网上也挂出了40nm工艺的M0+功耗数据,几乎只有90nm工艺M0+的40%,但目前市面上还没有看到40nm工艺的M0+产品,不过估计离上市不远了。早期M0的动态功耗多集中于110uA/MHz~160uA/Mhz之间,而现在的M0+处理器,功耗已经可以做到65uA/MHz甚至更低了;
2、流水线由3级改成2级;
3、在M0+芯片中,GPIO是直接挂在M0+内核上的,而M0内核的芯片中,GPIO是挂在APB总线上的;这是什么意思呢?简单来说,M0+芯片中GPIO翻转速率可以达到系统内核时钟的一半,而M0的GPIO要慢得多,因为M0+内核直接访问GPIO并予以控制,M0芯片则是M0内核要先访问AHB总线,再访问APB总线,再访问GPIO才能进行控制。
上图为M0+处理器在三种不同工艺下内核面积、动态功耗以及性能的对比。
M4简述
先上M4的性能表:
现在主流的M4处理器基本都集中在90nm工艺的范畴上,内核动态功耗基本上是M0+的3倍多,晶元面积是M0+的4倍左右,同等主频下性能大概提升接近40%。考虑到具体应用,M0+的量产芯片大都主频较低,M4相对高不少,所以实际功耗以及性能差距会更大。随着M4的出现M3现在在市场上面的新的应用越来越少,这里就不单独介绍M3了。
现在新的M4微控制器呈现了以下几个发展方向,代表未来几年的微控制器发展方向:
1、高能效比:早期的M3/M4功耗大都在300+uA/MHz左右,现在新的90nmLP工艺下新的M4微控制器的功耗已经下降到100-200uA/MHz的水平,未来会更低,能效比会更高;
2、向着更高的工艺挺进:目前我了解到NXP已经开始着手设计40nm工艺的M4处理器,国内的GD也开始尝试用55nm甚至更高的工艺设计M3/M4微控制器,一旦这些更先进工艺处理器落地,M4微控制器的价格&功耗会被大幅度拉低,M4的能效比会比现在90nm工艺的M0+更高,这会是一个相当重要的改变;
3、安全:最近1-2年各个大的半导体厂商设计的新的微控制器很多都加入了安全单元,各种对称/非对称加密的协处理引擎被加入到新的M4控制器中,AES、SHA、3DES等,为了适应新的物联网应用,安全都是未来微控制器的设计重点,这点在新的ARMv8-M中体现尤为明显,安全特性功能是M33与M4最大的区别,以后我们找机会单独说M23与M33。
4、SOC/SIP化:这点体现的最早,基本上从M3时代,M0/M3就被大量SOC化,市面上大量的无线SOC都是M0/M3/M4内核,国内近1-2年大量厂商开始试水SIP,国内目前大量SIP芯片内部集成了M0/M3/M4裸片。
M7简述
目前市面上量产的M7芯片并不多,只有ST、ATMEL、NXP有少数几个型号;
M7性能非常彪悍,几乎比同主频下的M4提升近50%(M7的六级超标量流水线真不是盖的~),NXP新量产的i.MXRT1050(据说是40nm工艺)系列M7处理器甚至飙到了3000+的CoreMark,以前的传统M3/M4的CoreMark超过300的都凤毛麟角,M7一下子把Cortex-M系列微控制器的性能提升了至少10倍,但目前从市场占有率来说,M7还比较新应用还偏狭窄,未来可以畅想的空间还很大。
这篇里面扯了比较多的废话,以后的文章会重点从技术底层细节着手,扯更多的蛋
。