目录

  • 产品分类
    • ARM 自己设计的内核
    • ARM内核发布时间
    • 由具有ARM架构许可证的公司独立开发的内核
    • 经典ARM系列和Cortex系列
    • Classic处理器介绍
    • Cortex系列介绍
  • 一、ARM架构与ARM内核
    • 1.1 ARM架构与内核关系
    • 1.2 ARM各架构之间区别
      • 1.2.1 ARM版本Ⅰ: V1版架构
      • 1.2.2 ARM版本Ⅱ: V2版架构
      • 1.2.3 ARM版本Ⅲ : V3版架构
      • 1.2.4 ARM版本Ⅳ : V4版架构
      • 1.2.5 ARM版本Ⅴ : V5版架构
      • 1.2.6 ARM版本Ⅵ : V6版架构
  • 二、ARM产品型号
    • 2.1 内核产品型号
    • 2.2 产品命名规则
    • 2.3 内核产品应用
架构 内核位宽 第三方 Cortex profile
ARMv1 32 ARM1
ARMv2 32 ARM2,
ARM250,
ARM3
ARMv3 32 ARM6,
ARM7
ARMv4 32 ARM11
ARMv4T 32 ARM7TDMI,
ARM9TDMI,
SecurCore SC100
ARMv5TE 32 ARM7EJ,
ARM9E,
ARM10E
XScale,
FA626TE,
Feroceon
ARMv6 32 ARM11
ARMv6-M 32 ARM Cortex-M0,
ARM Cortex-M0+,
ARM Cortex-M1,
SecurCore SC000
ST stm8 Microcontroller
ARMv7-M 32 ARM Cortex-M3,
SecurCore SC300
ST stm32f1 Microcontroller
ARMv7E-M 32 ARM Cortex-M4,
ARM Cortex-M7
ST stm32f4/f7,
Nordic nrf52
Microcontroller
ARMv7-R 32 ARM Cortex-R4,
ARM Cortex-R5,
ARM Cortex-R7
Real-time
ARMv7-A 32 ARM Cortex-A5,
ARM Cortex-A7,
ARM Cortex-A8,
ARM Cortex-A9,
ARM Cortex-A12,
ARM Cortex-A15,
ARM Cortex-A17
Krait,
Scorpion,
Apple A6/A6x,
NXP i.mx6/mx7/mx8
Application
ARMv8-A 64 ARM Cortex-A35,
ARM Cortex-A53,
ARM Cortex-A57,
ARM Cortex-A72
X-Gene,
Nvidia Project Denver,
AMD K12,
Apple A7/A8/A9/A9x,
Cavium Thunder x,
Qualcomm Kryo
Application
ARMv8.1-A 64 TBA Application
ARMv8-R 32 TBA Real-time
ARMv8-M 32 TBA Microcontroller

产品分类

 ARM产品的分类可以按照ARMv1、ARMv2、ARMv3、ARMv4等构架来分类。从1983年开始,ARM内核共有ARM1、ARM2、ARM6、ARM7、ARM9、ARM10、ARM11和Cortex以及对应的修改版或增强版组成,越靠后的内核,初始频率越高、架构越先进,功能也越强。架构和内核对应关系如下图(截取自维基百科:https://en.wikipedia.org/wiki/List_of_ARM_microarchitectures )所示:

ARM 自己设计的内核

ARM内核发布时间

由具有ARM架构许可证的公司独立开发的内核

 除了 ARM 公司自己设计的内核,还有些内核实现了ARM指令集,是由具有ARM架构许可证的公司独立开发

经典ARM系列和Cortex系列

 ARM 处理器产品分为经典ARM处理器系列和最新的Cortex处理器系列:

Classic处理器介绍

 ARM7微处理器系列:1994年推出,使用范围最广的 32 位嵌入式处理器系列。 0.9MIPS/MHz的三级流水线和冯诺依曼结构。ARM7系列包括ARM7TDMI、ARM7TDMI-S、带有高速缓存处理器宏单元的ARM720T。该系列处理器提供Thumb 16位压缩指令集和EmbededICE软件调试方式,适用于更大规模的SoC设计中。ARM7TDMI基于ARM体系结构V4版本,是目前低端的ARM核。

 ARM9微处理器系列:ARM9采用哈佛体系结构,指令和数据分属不同的总线,可以并行处理。在流水线上,ARM7是三级流水线,ARM9是五级流水线。由于结构不同,ARM7的执行效率低于ARM9。基于Arm9内核的处理器,是具有低功耗,高效率的开发平台。广泛用于各种嵌入式产品。它主要应用于音频技术以及高档工业级产品,可以跑Linux以及Wince等高级嵌入式系统,可以进行界面设计,做出人性化的人机互动界面,像一些网络产品和手机产品。

 ARM9E微处理器系列:ARM9E中的E就是Enhance instrcTIons,意思是增强型DSP指令,说明了ARM9E其实就是ARM9就一个扩充,变种。ARM9E系列微处理器为可综合处理器,使用单一的处理器内核提供了微控制器、DSP、Java应用系统的解决方案,极大的减少了芯片的面积和系统的复杂程度。ARM9E系列微处理器提供了增强的DSP处理能力,很适合于那些需要同时使用DSP和微控制器的应用场合。

 ARM10E微处理器系列:ARM10E系列微处理器为可综合处理器,使用单一的处理器内核提供了微控制器、DSP、Java应用系统的解决方案,极大的减少了芯片的面积和系统的复杂程度。ARM9E系列微处理器提供了增强的DSP处理能力,很适合于那些需要同时使用DSP和微控制器的应用场合。ARM10E与ARM9E区别在于,ARM10E使用哈佛结构,6级流水线,主频最高可达325MHz,1.35MIPS/HZ。

 ARM11微处理器系列:ARM公司近年推出的新一代RISC处理器,它是ARM新指令架构——ARMv6的第一代设计实现。该系列主要有ARM1136J,ARM1156T2和ARM1176JZ三个内核型号,分别针对不同应用领域。ARM11的媒体处理能力和低功耗特点,特别适用于无线和消费类电子产品;其高数据吞吐量和高性能的结合非常适合网络处理应用;另外,也在实时性能和浮点处理等方面ARM11可以满足汽车电子应用的需求。

Cortex系列介绍

 ARM公司在经典处理器ARM11以后的产品改用Cortex命名,并分成A、R和M三类,旨在为各种不同的市场提供服务。Cortex系列属于ARMv7架构,由于应用领域不同,基于v7架构的Cortex处理器系列所采用的技术也不相同,基于v7A的称为Cortex-A系列,基于v7R的称为Cortex-R系列,基于v7M的称为Cortex-M系列。

 Application Processors(应用处理器):面向移动计算,智能手机,服务器等市场的的高端处理器。这类处理器运行在很高的时钟频率(超过1GHz),支持像Linux,Android,MS Windows和移动操作系统等完整操作系统需要的内存管理单元(MMU)。 如果规划开发的产品需要运行上述其中的一个操作系统,你需要选择ARM 应用处理器.

 Real-time Processors (实时处理器):面向实时应用的高性能处理器系列,例如硬盘控制器,汽车传动系统和无线通讯的基带控制。多数实时处理器不支持MMU,不过通常具有MPU、Cache和其他针对工业应用设计的存储器功能。实时处理器运行在比较高的时钟频率(例如200MHz 到 >1GHz ),响应延迟非常低。虽然实时处理器不能运行完整版本的Linux和Windows操作系统, 但是支持大量的实时操作系统(RTOS)。

 Microcontroller Processors(微控制器处理器):微控制器处理器通常设计成面积很小和能效比很高。通常这些处理器的流水线很短,最高时钟频率很低(虽然市场上有此类的处理器可以运行在200Mhz之上)。 并且,新的Cortex-M处理器家族设计的非常容易使用。因此,ARM 微控制器处理器在单片机和深度嵌入式系统市场非常成功和受欢迎。

 Cortex-M 处理器家族更多的集中在低性能端,但是这些处理器相比于许多微控制器使用的传统处理器性能仍然很强大。例如,Cortex-M4 和 Cortex-M7 处理器应用在许多高性能的微控制器产品中,最大的时钟频率可以达到400Mhz。


三个处理器系列的主要特征


一、ARM架构与ARM内核

1.1 ARM架构与内核关系

 目前为止,ARM总共发布8种架构:ARMv1、ARMv2、ARMv3、ARMv4、ARMv5、ARMv6、ARMv7 、ARMv8,这是ARM架构指令集的多个v版本。

 基于不同的ARM架构可以设计出不同特点的内核处理器p***essor。比如基于ARMv3架构设计出的处理器ARM6、ARM7,这两款处理器适用于不同的场景,硬件可能不同,但是架构指令集是一样的。

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

 即ARMv1/2/3等是指令集的架构,ARM7/9等是基于架构设计出的内核处理器。ARM的架构都是基于RISC指令集而设计的,内核是实现这一指令集的硬件架构的基础。

1.2 ARM各架构之间区别

1.2.1 ARM版本Ⅰ: V1版架构

 该版架构只在原型机ARM1出现过,只有26位的寻址空间,没有用于商业产品。其基本性能有:

  • 基本的数据处理指令(无乘法);
  • 基于字节、半字和字的Load/Store指令;
  • 转移指令,包括子程序调用及链接指令;
  • 供操作系统使用的软件中断指令SWI;
  • 寻址空间:64MB(226)。

1.2.2 ARM版本Ⅱ: V2版架构

 该版架构对V1版进行了扩展,例如ARM2和ARM3(V2a)架构。包含了对32位乘法指令和协处理器指令的支持。版本2a是版本2的变种,ARM3芯片采用了版本2a,是第一片采用片上Cache的ARM处理器。同样为26位寻址空间,现在已经废弃不再使用。V2版架构与版本V1相比,增加了以下功能:

  • 乘法和乘加指令;
  • 支持协处理器操作指令;
  • 快速中断模式;
  • SWP/SWPB的最基本存储器与寄存器交换指令;
  • 寻址空间:64MB。

1.2.3 ARM版本Ⅲ : V3版架构

 ARM作为独立的公司,在1990年设计的第一个微处理器采用的是版本3的ARM6。它作为IP核、独立的处理器、具有片上高速缓存、MMU和写缓冲的集成CPU。

 变种版本有3G和3M。版本3G是不与版本2a向前兼容的版本3,版本3M引入了有符号和无符号数乘法和乘加指令,这些指令产生全部64位结果。

 V3版架构( 目前已废弃 )对ARM体系结构作了较大的改动:

  • 寻址空间增至32位(4GB);
  • 当前程序状态信息从原来的R15寄存器移到当前程序状态寄存器CPSR中(Current Program Status Register);
  • 增加了程序状态保存寄存器SPSR(Saved Program Status Register);
  • 增加了两种异常模式,使操作系统代码可方便地使用数据访问中止异常、指令预取中止异常和未定义指令异常。;
  • 增加了MRS/MSR指令,以访问新增的CPSR/SPSR寄存器;
  • 增加了从异常处理返回的指令功能。

1.2.4 ARM版本Ⅳ : V4版架构

 V4版架构在V3版上作了进一步扩充,V4版架构是目前应用最广的ARM体系结构,ARM7、ARM8、ARM9和StrongARM都采用该架构。V4不再强制要求与26位地址空间兼容,而且还明确了哪些指令会引起未定义指令异常。

 指令集中增加了以下功能:

  • 符号化和非符号化半字及符号化字节的存/取指令;
  • 增加了T变种,处理器可工作在Thumb状态,增加了16位Thumb指令集;
  • 完善了软件中断SWI指令的功能;
  • 处理器系统模式引进特权方式时使用用户寄存器操作;
  • 把一些未使用的指令空间捕获为未定义指令

1.2.5 ARM版本Ⅴ : V5版架构

 V5版架构是在V4版基础上增加了一些新的指令,ARM10和Xscale都采用该版架构。

 这些新增命令有:

  • 带有链接和交换的转移BLX指令;
  • 计数前导零CLZ指令;
  • BRK中断指令;
  • 增加了数字信号处理指令(V5TE版); 为协处理器增加更多可选择的指令
  • 改进了ARM/Thumb状态之间的切换效率;
  • E—增强型DSP指令集,包括全部算法操作和16位乘法操作;
  • J—支持新的JAVA,提供字节代码执行的硬件和优化软件加速功能。

1.2.6 ARM版本Ⅵ : V6版架构

 V6版架构是2001年发布的,首先在2002年春季发布的ARM11处理器中使用。在降低耗电量地同时,还强化了图形处理性能。通过追加有效进行多媒体处理的SIMD(Single Instruction, Multiple Data,单指令多数据 )功能,将语音及图像的处理功能提高到了原型机的4倍。

 此架构在V5版基础上增加了以下功能:

  • THUMBTM:35%代码压缩;
  • DSP扩充:高性能定点DSP功能;
  • JazelleTM:Java性能优化,可提高8倍;
  • Media扩充:音/视频性能优化,可提高4倍

二、ARM产品型号

2.1 内核产品型号

基于各ARM架构设计的内核型号如下图所示:

https://blog.csdn.net/kinsor/article/details/37761989

https://blog.csdn.net/ZCShouCSDN/article/details/84393473

ARMv7之前均为32位总线位宽,从ARMv8开始扩展为64位总线位宽(数据总线、地址总线、控制总线位宽均为64位,一般寻址空间不会用满)。

2.2 产品命名规则

arm处理器命名格式:

ARM x y z T D M I E J F -S

x:序列

y:2:带MMU, 4带MPU,6没有

z:0:标准cache,2:减小的cache, 6可变的cache

T:处理器支持Thumb指令集

D:支持JTAG调试器

M:支持长乘法指令

I:有嵌入式跟踪宏单元

E:支持增强指令(基于TDMI)

J:支持JAVA硬件加速(Jazelle)

F:支持向量浮点单元

S:可综合版本

2.3 内核产品应用

ARM7:ARMv4架构,ARM9:ARMv5架构,ARM11:ARMv6架构,ARM-Cortex 系列:ARMv7架构。

ARM7没有MMU(内存管理单元),只能叫做MCU(微控制器),不能运行诸如Linux、WinCE等这些现代的多用户多进程操作系统,因为运行这些系统需要MMU,才能给每个用户进程分配进程自己独立的地址空间。ucOS、ucLinux这些精简实时的RTOS不需要MMU,当然可以在ARM7上运行。

ARM9、ARM11,是嵌入式CPU(处理器),带有MMU,可以运行诸如Linux等多用户多进程的操作系统,应用场合也不同于ARM7。

到了ARMv7架构的时候开始以Cortex来命名,并分成Cortex-A、Cortex-R、Cortex-M三个系列。三大系列分工明确:“A”系列面向尖端的基于虚拟内存的操作系统和用户应用;“R”系列针对实时系统;“M”系列对微控制器。简单的说Cortex-A系列是用于移动领域的CPU,Cortex-R和Cortex-M系列是用于实时控制领域的MCU

(1)Cortex-M系列:M-Profile,即"Mic***ontroller" -Profile,侧重微控制器单片机方面的场合。

(2)Cortex-R系列:R-Profile,即"Real-Time"-Profile,侧重于实时系统的场合。

(3)Cortex-A系列:A-Profile,即“Application”-Profile,侧重于应用功能的场合。


参考博客:https://blog.csdn.net/ZCShouCSDN/article/details/84393473

嵌入式Linux--ARM架构相关推荐

  1. linux 嵌入式汇编 adc,嵌入式Linux ARM汇编(四)——ARM汇编程序设计

    嵌入式Linux ARM汇编(四)--ARM汇编程序设计 汇编程序有顺序.循环.分支.子程序四种结构形式. 一.顺序结构 程序实例: AREA Buf,DATA,READWRITE;定义数据段Buf ...

  2. 嵌入式linux ASoC架构声卡驱动开发

    嵌入式linux ASoC架构声卡驱动开发 文章目录 嵌入式linux ASoC架构声卡驱动开发 需求分析 ASoC架构下声卡驱动代码结构 codec驱动 snd_soc_register_codec ...

  3. 通过vscode进行嵌入式linux arm开发板gdb调试

    下载和安装vscode, 下载 vscode for windows 地址:  Visual Studio Code - Code Editing. Redefined 安装 "remote ...

  4. [嵌入式基础]-arm架构和x86架构区别

    ARM架构过去称作进阶精简指令集机器(AdvancedRISCMachine,更早称作:AcornRISCMachine),是一个32位精简指令集(RISC)处理器架构,其广泛地使用在许多嵌入式系统设 ...

  5. 嵌入式系统——ARM架构及分类

    文章目录 一.什么是架构 二.ARM架构分类 Arm-A架构 Armv7-A (1)指令集 (2)处理器模式 (3)通用寄存器 (4)特殊寄存器 Armv8-A 寄存器 指令集 异常模型及处理器模式 ...

  6. 嵌入式linux系统架构

    嵌入式linux的组成部分? 软件部分:bootloader+linux内核+ c函数库(接口机制 系统调用 中断)+应用程序 + QT 硬件部分:三星2410--arm核+控制器+外围设备 嵌入式l ...

  7. 嵌入式linux内核启动过程,嵌入式Linux:ARM Linux启动流程

    ARM Linux启动流程大致为:bootloader---->kernel---->root filesystem.bootloader 是一上电就拿到cpu 的控制权的,而bootlo ...

  8. 基于Cortex-A7架构的嵌入式linux ARM裸机开发<2>——LED灯闪烁(C版本)

    文章目录 一.利用汇编初始化C环境 二.C语言部分实验程序编写 三.Makefile程序编写 四.链接脚本程序编写 五.编译及烧录 利用汇编编写LED灯点亮程序我们已经实现过了,所以这里不再着重讲解基 ...

  9. 基于Cortex-A7架构的嵌入式linux ARM驱动开发<1>——字符设备驱动开发

    一.什么是字符设备 字符设备是 Linux 驱动中最基本的一类设备驱动,字符设备就是一个一个字节,按照字节流进行读写操作的设备,读写数据是分先后顺序的.比如我们最常见的点灯.按键.IIC.SPI, L ...

  10. 嵌入式linux ARM 开发板 使用pyqt显示界面

    野火linux开发板 ubuntu18.04 pyqt5 开发流程 一. 需要准备的材料 二. 连接单片机 三. 配置网络 四.配置python 环境 五. apt安装pyqt5 基础模块 五点一. ...

最新文章

  1. 项目CPU异常高分析
  2. es dsl java api_ElasticSearch 系列 - RestFulAPI(DSL)
  3. 使用友盟分享心得(SSO登陆,不能获取accesstoken,不能跳转APPSSO登陆的问题)
  4. Java精选笔记_JDBC
  5. 小米android系统耗电量大,小米手机耗电快的解决方法,亲测有效~
  6. 蓝桥杯 ADV-12 算法提高 计算时间
  7. linux动态库路径生效,Linux下如何解决动态库的链接问题
  8. C++11 列表初始化
  9. [USACO18DEC]The Cow Gathering
  10. 42表盘直径是从哪测量_万用表测量电容容量的方
  11. NLP特征工程(待完善细节)
  12. GD32F103学习笔记(1)——搭建环境、编译烧写
  13. Mac下nginx配置虚拟主机,访问报错502
  14. Angular +Ionic修改日期组件英文按钮
  15. 计数oracle,SQL数据透视表子组计数
  16. 大数据处理系统,分布式存储系统和分布式计算框架介绍
  17. ctf MISC 放松一下吧
  18. MIDI模式设定演奏起始小节等其它要点
  19. SpringWeb项目Maven执行clean命令后编译拒绝访问的解决方法
  20. linux环境安装部署RF+Jenkins+Git(非完整版)

热门文章

  1. 4.root用户登录
  2. SQL数据库语言总结及代码示例
  3. 申请深造计算机专业的理由,申请理由和到境外留学期间学习的初步计划.doc
  4. 通过位运算进行两个变量值的交换功能
  5. python中小写字母和数字用什么表示_Python变量名可以由数字、大、小写英文字母和 下划线组成。...
  6. python加密解密 sha256_SHA256加密和解密(Python 2.7) - 相同的词,但不同的散列
  7. vue项目实战-4.前端渲染.微信小程序
  8. 翔云平台编程实现两张图片的人脸识别
  9. 神经网络 和 NLP —— 神经网络入门
  10. 用来记录一下走过的路