在物联网高度发展的今天,各种智能产品深入到了生活的方方面面,其中扮演了极其重要的角色莫过于IP提供商ARM公司 (中文翻译为安谋)。小到手持吸尘器,上到高性能手机都有它的身影。那它都有哪些产品线划分?各产品线的主攻方向都是哪些?今天会在这篇公众号中简单做个介绍,其中就嵌入式工程师大量接触的CortexM系列芯片会有较多篇幅的介绍。

ARM全称是Advanced RISC Machines, 是精简指令集微处理器行业一家不可忽视的存在,设计了大量的高性能、廉价、低功耗的RISC处理器。可以看做是Apple、Acorn、VLSI等知名公司的合资企业。各大芯片产商在拿到ARM IP授权后,通过自行设计外设(USB/GPIO/TIMER/SDIO等等),则可更快的完成成品芯片设计,抢占市场。

ARM旗下的的芯片主要分为五大系列,它们分别是

主打高性能的Cortex A(Advanced)系列,

主打实时性的Cortex R (Real-Time)系列

主打各类MCU平台的Cortex M(Microcontroller)平台

主打机器学习的Machine-Learning系列

安全内核Secure Core系列。

每一种内核的详细设计介绍可以去安谋中国官网查看相关介绍:https://www.armchina.com/armip?dataId=13&istitle=CPU




arm芯片架构 a系列r系列 arm系列芯片有哪些_M4


就一般嵌入式工程师而言,大家关注比较多的还是CortexM,所以如下图为当前的M系列的家族成员


arm芯片架构 a系列r系列 arm系列芯片有哪些_M4_02


经常看到CortexM0与CortexM0+两两出现,它们都有哪些区别?

这两款都属于Armv6-M架构,所以M0和M0+具有完全相同的指令集和相似的编程模型,不同的是M0+可以选择是否支持非特权执行等级和MPU。M0只有特权模式,并且不支持MPU;而且M0具有三级流水线(取指、解析、执行)而M0+仅有二级流水线(取指+预解析、解析+执行),所以M0+相对于M0系列减少了更多的处理器内振器的数量,所以动态功耗进一步的得到下降。

CortexM3与CortexM4也是成双成对的出现,那主要区别又是哪些呢?

这两款芯片都属于Armv7-M架构芯片,但是M4主要是增强了DSP处理能力、支持浮点运算(单精度)、支持单指令多数据(SIMD)操作、支持快速MAC与乘法指令、支持饱和运算指令。其他方面的话其实两个内核的感知力并不强烈。

通常CortexM0+系列内核的芯片运行频率最高能到80MHz, CortexM3和CortexM4能到180MHz,可见M0内核处理能力还是有一定限制的。CortexM0+通常是能够具备外设GPIO/TIMER/UART/SPI/I2C/CAN, 但是例如I2S/ENET/USB/SDIO/DCI/LCD等就一般是出现在CortexM3/M4内核芯片上了。综上,在实际项目中根据所需外设、性能、功耗可以选择合适的芯片。

对于软件工程师,其实不同内核区别带来的感受就是对指令的使用限制。如下图所见是各个M系列内核所支持的指令,所以可通过下表查看自己当前使用的芯片可支持的指令范围。


arm芯片架构 a系列r系列 arm系列芯片有哪些_Powered by 金山文档_03


下面为一些附属列表,记录了ARM的主要发展历程

各主要架构与内核对照:


arm芯片架构 a系列r系列 arm系列芯片有哪些_M4_04


各内核发展时间表:


arm芯片架构 a系列r系列 arm系列芯片有哪些_M4_05