ARM内核和架构都是什么意思,它们到底是什么关系?

ARM 255浏览

ARM内核架构都是什么意思?内核和架构的关系是什么?比如ARMv7架构,这个架构指的是什么?


1.ARM内核:从ARM7、ARM9到Cortex-A7、A8、A9、A12、A15再到Cortex-A53、A57等,总之不同版本 ARM 有不同的想法。比如为高速度设计的Cortex A8、A9都是ARMv7a 架构;Cortex M3、M4是ARMv7m架构;前者是内核,后者是指令集的架构。

2.ARM的架构都是基于RISC指令集而架构的,而其内核只是实现这一指令集的硬件架构的基础,Thumb-2指令集架构(ISA)的子集,包含所有基本的16位 和32位Thumb-2指令、 、哈佛处理器架构,在加载/存储数据的同时能够执行指令取指,带分支预测的三级流水线等。

3.好比你盖房子,刚开始因为水平低流行盖平房,这就是一种架构(V5T),然后这种平房架构你可以设计出一款独立卫生间的款式, 这叫ARM7内核。 然后其他人(芯片设计公司)想盖房子的就买你这个图纸去盖,接着过一段时间,有人觉得光独立卫生间还不够啊, 我还想有个小院子! 好吧,那ARM就满足你们的要求,出个带小院子的款式(ARM9)。

又过了很久, 这种平房的架构就随着大伙的需求一直改啊改啊,后来经过ARM研究发现: 现在大伙盖房子的能力duang duang直升啊(包括工艺、设计能力、时钟主频),只盖这种平房施展不开啊! 好吧,ARM为了不让这帮设计的人闲着,就推出一种二三层楼房的样式, 这因为跟平房设计结构完全不一样嘛, 那就叫一种新的架构(ARMv6),同样这种楼房样式ARM也为大家准备了带游泳池的和带车库的款式(ARM11),好吧继续改啊改啊, 改到后来大家已经开始有能力盖十层以上的大楼了。 ARM一如既往地出了新的款式(ARMv7架构), 这时ARM觉得以前名字都太土鳖了, 什么ARM5、 ARM6、 ARM7—又难听又难记, 我要取个看起来牛逼的名字, 咱至少也算个能设计摩天大楼的主儿了, 于是后面的内核都叫Cortex。

改名只是一部分, 随着这个架构出来后, ARM发现以前用咱们图纸盖出的楼也就做个民宅, 民宅图个啥? 实惠嘛(功耗低)。 现在不一样了,现在咱的图纸盖得楼不仅可以做民宅,还可以做军事基地、 还可以做高档写字楼, 以前这些高级功能的楼房可是只有小英(英特尔)才能设计出来的啊!为了满足这些不同的需求, ARM把这个架构设计出来的款式分成3个系列(M系列、R系列、A系列)。

M系列是为民宅设计的, 因为老百姓图实惠嘛, 这种设计就设计个十层左右(功耗低); R系列是为军事基地设计的, 这种楼设计的也不高— 十层左右吧, 但是关键是要对特殊情况要有快速反应的能力(中断快); 最后A系列是给商业大佬用的, 那当然是要高端大气上档次, 就是要性能高,各种LED灯灯光秀啊都给我上。

*************************************************************************************************************************************************


ARM 处理器传统的命名是 ARM + 数字的方式:ARM7、ARM9、ARM11,在 ARM11 以后,ARM 公司使用了新的命名方式:Cortex,对比传统的方式就应该是 ARM12。

Cortex 架构目前分为 3 个系列,性能及复杂度由低到高分别是:M、R、A。

Cortex-M 系列主要的目标是微控制器市场,就是传统的 MCU、单片机之类,分为 Cortex-M0、Cortex-M0+、Cortex-M1、Cortex-M3、Cortex-M4 等几个档次。

Cortex-R 系列主要目标是高端的实时系统,包括基带、汽车、大容量存储、工业和医疗市场等等,分为 Cortex-R4、Cortex-R5、Cortex-R7 几个档次。

Cortex-A 系列主要面向通用处理应用市场,可向托管丰富 OS 平台和用户应用程序的设备提供全方位的从超低成本手机、智能手机、移动计算平台、数字电视和机顶盒到企业网络、打印机和服务器解决方案,处理器有:Cortex-A5、Cortex-A7、Cortex-A8、Cortex-A9、Cortex-A12、Cortex-A15、Cortex-A17、Cortex-53、Cortex-A57 等等。

*********************************************************************************************************************************************


问题1:单片机和CPU的区别
在嵌入式领域ARM芯片和CPU有什么区别呢?其实随着嵌入式科技的不断发展,单片机(像ARM芯片)和CPU的界限越来越模糊,我们暂且可以认为ARM芯片就是一个CPU,或者暂且认为单片机就相当于一个CPU。
问题2:什么是ARM芯片
凡是采用ARM内核的芯片(或者凡是采用ARM内核的CPU)都是ARM芯片。示例高通的OMAP36X0系列处理器(Droid 2和Droid X用的OMAP3630),采用的就是ARM内核,所以在概念上我们也可以将其称为ARM芯片
问题3:什么是ARM内核
所谓内核,就是CPU里面实现运算的核心,我们也可以将内核称之为CPU(注意,该CPU是真正意义上的CPU,因为它实现了数据的运算与处理)。而问题一中所说的单片机和芯片相当于一个CPU只是指宏观意义上的CPU。ARM内核只是一个统称,它有以下几个系列:ARM7,ARM9,ARM11,CORTEX等几个内核家族,每个内核家族都有不同的内核种类,比如CORTEX内核家族就有:Cortex-A8内核、Cortex-A9内核、Cortex-R4内核、Cortex-M0内核、Cortex-M1、Cortex-M3、Cortex-M4内核等,目前使用最广的STM32系列芯片使用的就是Cortex-M3内核。具体内核家族分类见:http://hardware.mydrivers.com/2/223/223488_all.htm
问题4:什么是架构
片面上讲,我们可以将架构理解为内核所使用的指令集。示例:用于高端的(手机等)Cortex-A8,Cortex-A9等内核用的是ARMv7-A架构,或者说用的是ARMv7-A指令集架构,我们常用到的STM32的Cortex-M3内核用到的是ARMv7-M架构。
问题5:什么是指令集
所谓指令集就是一整套底层指令的统称。分为RISC(简单指令集)和CISC(复杂指令集),相比较而言RISC指令集的指令格式统一,种类比较少,寻址方式也比复杂指令集少,而CISC指令集的效率比较高。拿STM32系列芯片使用的ARMv7指令集来讲,ARMv7意思是ARM的第七个版本的指令,采用的RISC