ARM架构那些事之内核、SOC、指令集等
扫描二维码
随时随地手机看文章
1、ARM与指令集与架构
ARM的全称为Advanced RISC Machines,直译为高级精简指令集处理器;RISC即为精简指令集,那么对应的就存在CISC,其为复杂指令集。
CISC指令集在计算机早期比较常用,CISC指令比较长,实现的功能比较多,这样对内存的访问相对比较少,但CPU设计相对复杂;而采用RICS常用指令流水线来提高指令利用效率。
(注:RISC--Reduced Instruction Set Computers,CISC--Complex Instruction Set Computers)
我们需要明确的是ARM不生产芯片,它只是进行ARM架构的设计,并授权给相应的半导体厂家来生产芯片,所以大家通常称ARM为半导体知识产权(IP)提供商,与RISC-V这种完全开放架构不同,目前看来RISC-V完全开源且架构简单,给ARM带来了新的挑战。
ARM授权也是分不同层面的,包括架构层、内核层和应用层授权,不同层面所开放的具体内容不同,架构层可以直接修改成自己的处理器,而内核层也叫IP核层,主要是用于扩展自己的外设来形成自己的SOC等,而应用层权限就更少了。
2、ARM架构种类
内核与架构经常有一些朋友分不清,我们常说的ARMV1~ARMV9都是表示不同版本的架构,不同的架构,指令集也存在差异,然而根据不同的架构又开发出了不同CPU内核,比如Cortex-A,Cortex-M等。
目前主要是三种CPU架构系列:
-
A 系列 (应用)
所有架构系列的最高性能
主要的Arm 处理器 IP 范围:Cortex-A、Neoverse , Cortex-X
主要用于复杂的计算应用领域,例如PC、笔记本电脑、智能电视、服务器、联网设备、智能手机、车用信息娱乐系统、云存储设备和超级计算机。
-
R 系列( 实时)
针对具有实时需求的系统进行优化
主要的Arm 处理器 IP 范围:Cortex-R
需要实时响应需求的安全关键应用或需要决定性响应的应用,例如医疗设备、车辆驾驶、刹车与警示、网络和储存设备,以及嵌入式控制系统。
-
M 系列 (微控制器)
专为小型、低功耗、高效节能装置而设计
主要的Arm 处理器 IP 范围:Cortex-M
能源效率、功耗及尺寸优先。安全性处理器、物联网以及像是穿戴式装置、小型感测器、通讯模块和智慧家庭产品等嵌入式装置,大部分单片机都是基于此架构来设计。
3、SOC
在芯片行业SoC与电池中的SOC不同,这里的全称为System-on-a-chip,也叫片上系统。SOC上不仅仅包括处理器核还包括一些访问总线,外设控制器、片内RAM等等。
这样看来,我们平时看到的单片机,比如stm32芯片;处理器芯片,比如i.MX 6ULL;或者是DSP,TMS320280049等等,都可以认识为SoC。
SOC片上系统的各部分都是通过总线进行通信连接,通常总线分为地址总线、数据总线和控制总线。在CPU和内部RAM之间可能存在多级高速缓存,这些缓存速度非常快,可以提高CPU访问数据的能力。
那一般内核里面有些什么呢?如下是CORTEX-M55的内核大致功能框架:
比如一些平时开发中提到的MPU内存保护单元、FPU浮点运算单元、DSP处理单元,JTAG调试单元等等,都位于内核上。
3、两大体系结构
分别是冯诺依曼体系结构和哈佛体系结构。
冯·诺依曼结构采用代码与数据的统一编址,存储器上的程序和数据加载到RAM中,然后CPU根据指令运行对应的程序。
哈佛结构是独立编址的,代码空间与数据空间分开:
所以大部分的单片机都采用的哈佛架构,当然现在也出现了非常多两者混合的形式。