一、ARM是什么?二、ARM内核与架构
随便哪一款arm芯片,主要是由两大部分给构成的,一部分是arm内核 ,另一部分是外设。
ARM内核
arm内核,其主要构成涉及,寄存器,指令集,总线,存储器映射规则,中断逻辑,调试组件等。
内核是被ARM公司设计,且是以销售的方式授权给各个芯片厂商去使用的,ARM公司自身并不从事芯片方面的生产。比如说,为了实现高速度而进行设计的Cortex A8,还有Cortex A9,它们都属于ARMv7a架构。然后,Cortex M3以及Cortex M4属于ARMv7m架构。前面所说的前者是处理器,也就是内核,这后者则是指令集的架构,也被简称为架构。
外设,包含计时器,A/D转换器,存储器,I2C,UART,SPI,ROM等等,是由各个芯片厂商自行设计并且与ARM内核衔接配套的,不同的芯片厂商有着不同的外设,所以构成了数量和规格庞大的ARM芯片产业。
arm指令集架构
对于处理器结构而言,指令集的设计属于最为关键重要的部分,在arm的术语范畴里,它被称作ISA,也就是Instruction Set Architecture。
可以这么讲,指令集属于 cpu 设计的灵魂所在,它像是开启 CPU 这个潘多拉魔盒的咒语,若想运用 cpu,我们是只能藉由这些指令来对 cpu施行操作之举的。
对于32位的cpu,这些指令是一个个32位的01序列,不同的值代表不同机器指令,cpu硬件能完美解析并执行这些指令,像寻址、运算、异常处理等。
我们以手机玩王者荣耀时,需清楚,我们每所发出的一招一式,实际上最终全都被进行了翻译,使其变为一系列机器指令,这是一个事实,是不可违背的规律。
1985年,ARMv1架构诞生,之后,到了2011年,ARM架构发展至第八代,即ARMv8。
ARM11之前的处理器和指令集架构
ARM11芯片之前,每一个芯片对应的架构关系如下:
ARM11之后处理器和指令集架构
在ARM11芯片往后的时候,具体来说就是在ARMv7架构起始之后的阶段,ARM的命名方式发生了改变。
被重新加以命名的新族处理器产品,现在开始采用 Cortex 作为其名称标识,并且该族产品又被细致划分成为了三个不同的系列,其中之一是 Cortex - A,另一个是 Cortex - R,还有一个则是 Cortex - M。
ARM处理器的型号,是称作Cortex - A系列的那种,其中A代表的是Application,也就是应用。
针对消费娱乐不断增长的情况,以及无线产品的设计,其应用于这样的领域:具有高计算要求,运行丰富操作系统,还能提供交互媒体和图形体验,像智能手机,平板电脑,汽车娱乐系统,数字电视,智能本,电子阅读器,家用网络,家用网关,以及其他各类产品。
Cortex-R系列 (R:Real-time 实时)
关于那些有着需要运行实时操作要求的系统应用,是面向像汽车制动系统这样的,还有动力传动解决方案这类的,以及大容量存储控制器这类深层嵌入式实时应用。
Cortex-SC系列(SC:SecurCore)
实际上,除去上述所说的三大系列以外,另外存在一个着力以安全为主打的Cortex - SC系列,其中SC代表SecurCore,该系列主要是被应用于政府安全芯片。
拥有基于ARMv6架构的ARM11系列,其中涵盖了ARM11MPCore处理器,还有ARM1176处理器,以及ARM1156处理器,另外还有ARM1136处理器。
隶属于Cortex-A系列的ARM Cortex-A5处理器,基于ARMv7-A架构,Cortex-A7处理器,基于ARMv7-A架构,Cortex-A8处理器,基于ARMv7-A架构,Cortex-A9处理器,基于ARMv7-A架构,Cortex-A15处理器,基于ARMv7-A架构。
Cortex - A53这款处理器,属于Cortex - A50系列,它首次采用了64位ARMv8架构 ,Cortex - A57这款处理器,同样属于Cortex - A50系列,也首次采用了64位ARMv8架构。
2020年,ARM发布了一款CPU架构,它是全新的,名为Cortex - A78,此架构基于ARMv8.2指令集。
三、什么是SOC?
SoC的全称称作System-on-a-Chip ,其在中文里所表达的意思是,将系统全部都做在一个芯片之上。
手机上极为关键的诸多部件被集成于SoC上,像是CPU,还有GPU,还有内存,也就是说,尽管它于主板上呈现为一个芯片,然而其内部却是由众多部件封装而成的。
像是平常我们经常讲的高通801 ,麒麟950 ,三星的exynos 4412 ,A6等等此类 ,实际都仅仅是系统部件完成打包封装 ,也就是SoC之后的那个总的称呼 ;话说回来 ,各个家实施打包封装包含的内容却并不是完全一样 ,其中原因也不是完全相同。
经过经典的 ARM 系统级芯片,也就是可谓被称作 Soc 的那种,它涵盖着好多组件,然而这里面仅仅是部分才直接来源于 ARM。首先呢,核心自身往往在设备内部被深深铭刻,在设备这个范围里一般不会直接被看到,而调试接口一般是唯一和核心自身相连接的露在外面的部分,还有一些像是时钟与复位集成电路这样的粘合逻辑。
因为ARM核心仅仅有两个中断输入,很常见的外设便是某种中断控制器 ,在外设的内部,各个组件借助芯片上互联总线架构彼此连接 ,对于绝大多数基于ARM的设备来讲,这就是标准的AMBA互联。
有两个总线被 AMBA 指定,其一乃是被称作 AXI 的高性能系统总线,另一则是被称作 APB 的低功耗外设总线,APB 通常用以连接全部外设而使得与之相关的连接得以实现,AXI 却是用于存储器以及其他高速设备的连接工作,大多数设备具备一定数量的芯片上存储还有连接外设存储器设备的接口,然而需要留意,与设备的外部连接并非 AMBA 总线,它仅在设备内部予以使用,并不会向外露出。
四、举例:Exynos 4412 SCP
下面,我们拿三星的Exynos(猎户座)4412 SCP当作例子,用以讲解这几个概念。
从上面这个图能够知道,exynos 4412当中,除了有4个Cortex - A9核之外,还涵盖着数量众多的外设控制器 ,这些控制器包括DRAM Controller ,还有SROM Controller ,以及Camera IF ,再有JPEG ,另外还有GPS/GLONASS ,接着是Power Management ,然后有USB Host ,随后是I2C ,跟着是UART ,最后是SPI等等。
与三星一样的、其他那些跟arm合作的各大厂商,通常会把它的CPU以及各类外围IP整合到一块儿,接着亲自拿着图纸去进行流片,生产出来的是个正方形,其下面带有诸多引脚,这个物品,并非只含有CPU,还涵盖了其他的控制器,此物品就被称作SOC(system on chip)。
如图所示,这便是三星所最终制造产生的Exynos 4412 ,当然,仅仅拥有这个soc是不能够运行安卓的,还得借助外围数量众多且大量存在的那些需要额外设置添补的别的设备才能够最终达成形成一个完整的体系,然而大部分最为复杂繁琐的硬件部分模块都已经被集合融入到了这个soc当中。
五、总结
下面我们总结下这些概念:
ARM公司有着这样一个名字,它叫ARM,即Advanced RISC Machines ;ARM的前身Acorn公司所设计出的第一款微处理器,被称作ARM,也就是Acorn RISC Machine;ARM处理器具备这样一些名字,以前它叫ARM9、ARM11,而新的命名规则将其改为以Cortex来命名,分别是Cortex-A,Cortex-R,Cortex-M;并且,这三个字母A、R、M组合到一块之后又成为了ARM。就ARM指令集为ARM架构而言了,像ARMv8这种,每个处理器进行设计时都得依赖一定的ARM架构;对于SOC情况是呀,各大厂商去购买ARM的授权,从而得到ARM处理器的源代码,之后呢自己去搞一些外围设备的IP(要么购买要么自己设计),进而组成一个SOC,比如说三星的Exynos 4412,华为的麒麟990。










