常常能看到ARM7,ARM9,ARM11,以及armv6k等不同的表达。且在GCC编译中,常常要用到 -march,-mcpu等。他们分别表达什么涵义呢?Sam自己也不很清楚,只是大概有个模糊的概念。今天就仔细研究一下。

ARM(Advanced RISCMachines)是微处理器行业的一家知名企业。设计了大量高性能、廉价、耗能低的RISC处理器、相关技术及软件。1985年,第一个ARM原型在英国剑桥诞生。ARM公司的特点是只设计芯片,而不生产。ARM将其技术授权给世界上许多著名的半导体、软件和OEM厂商,每个厂商得到的都是一套独一无二的ARM相关技术及服务。利用这种合伙关系,ARM很快成为许多全球性RISC标准的缔造者。

ARM公司定义了6种主要的指令集体系结构版本。V1-V6。(所以上面提到的ARMv6是指指令集版本号)。即:ARM architecture

ARMv1:

该版本的原型机是ARM1,没有用于商业产品。

ARMv2:

对V1版进行了扩展,包含了对32位结果的乘法指令和协处理器指令的支持。

ARMv3:

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

ARMv4:

当前应用最广泛的ARM指令集版本。

ARM7TDMI、ARM720T、ARM9TDMI、ARM940T、ARM920T、Intel的StrongARM等是基于ARMv4T版本。
ARMv5:

ARM9E-S、ARM966E-S、ARM1020E、ARM 1022E以及XScale是ARMv5TE的。

ARM9EJ-S、ARM926EJ-S、ARM7EJ-S、ARM1026EJ-S是基于ARMv5EJ的。

ARM10也采用。

其中后缀意义如下:

E:增强型DSP指令集。包括全部算法和16位乘法操作。

J:支持新的Java。

ARMv6:

采用ARMv6核的处理器是ARM11系列。

ARM1136J(F)-S基于ARMv6主要特性有SIMD、Thumb、Jazelle、DBX、(VFP)、MMU。

ARM1156T2(F)-S基于ARMv6T2 主要特性有SIMD、Thumb-2、(VFP)、MPU。

ARM1176JZ(F)-S基于ARMv6KZ 在 ARM1136EJ(F)-S 基础上增加MMU、TrustZone。

ARM11 MPCore基于ARMv6K 在ARM1136EJ(F)-S基础上可以包括1-4 核SMP、MMU。

ARMv7-A:

ARM处理器核:

ARM公司开发了很多ARM处理器核,最新版位ARM11。

ARM7微处理器系列
低功耗的32位RISC处理器,冯·诺依曼结构。极低的功耗,适合便携式产品。
具有嵌入式ICE-RT逻辑,调试开发方便。
3级流水线结构。能够提供0.9MIPS的三级流水线结构
代码密度高,兼容16位的Thumb指令集。
对操作系统的支持广泛,包括Windows CE、Linux、Palm OS等。
指令系统与ARM9系列、ARM9E系列和ARM10E系列兼容,便于用户的产品升级换代。
主频最高可达130MIPS。
主要应用领域:工业控制、Internet设备、网络和调制解调器设备、移动电话等多种多媒体和嵌入式应用。

ARM7TDMI微处理器
4种类型:
ARM7TDMI、ARM7TDMI-S、ARM720T、ARM7EJ。
ARM7TMDI是目前使用最广泛的32位嵌入式RISC处理器,属低端ARM处理器核。
注:“ARM核”并不是芯片,ARM核与其它部件如RAM、ROM、片内外设组合在一起才能构成现实的芯片。

ARM9微处理器系列
ARM9系列微处理器在高性能和低功耗特性方面提供最佳的性能。
5级整数流水线,
哈佛体系结构。
支持32位ARM指令集和16位Thumb指令集。
全性能的MMU,支持Windows CE、Linux、Palm OS等多种主流嵌入式操作系统。
支持数据Cache和指令Cache,具有更高的指令和数据处理能力。
主要应用:无线设备、仪器仪表、安全系统、机顶盒、高端打印机、数码照相机和数码摄像机。
3种类型:ARM920T、ARM922T和ARM940T。

ARM9E微处理器系列
单一处理器内核提供微控制器、DSP、Java应用系统的解决方案。
支持DSP指令集。
5级整数流水线,指令执行效率更高。
支持32位ARM指令集和16位Thumb指令集。
支持VFP9浮点处理协处理器。
全性能的MMU,支持Windows CE、Linux、Palm OS等多种主流嵌入式操作系统。
MPU支持实时操作系统。
支持数据Cache和指令Cache,
主频最高可达300MIPS。
主要应用:下一代无线设备、数字消费品、成像设备、工业控制、存储设备和网络设备等领域。
3种类型:ARM926EJ-S、ARM946E-S和ARM966E-S。

ARM10E微处理器系列
与同等的ARM9比较,在同样的时钟频率下,性能提高了近50%,功耗极低。
支持DSP指令集。
6级整数流水线,指令执行效率更高。
支持32位ARM指令集和16位Thumb指令集。
支持VFP10浮点处理协处理器。
全性能的MMU,支持Windows CE、Linux、Palm OS等多种主流嵌入式操作系统。
支持数据Cache和指令Cache。
主频最高可达400MIPS。
内嵌并行读/写操作部件。
主要应用:下一代无线设备、数字消费品、成像设备、工业控制、通信和信息系统等领域。
3种类型:ARM1020E、ARM1022E和ARM1026EJ-S。

SecurCore微处理器系列
专为安全需要而设计,提供了完善的32位RISC技术的安全解决方案。
灵活的保护单元,以确保操作系统和应用数据的安全。
采用软内核技术,防止外部对其进行扫描探测。
可集成用户自己的安全特性和其他协处理器。
主要应用:对安全性要求较高的应用产品及应用系统,如电子商务、电子政务、电子银行业务、网络和认证系统等领域。
4种类型:SecurCore SC100、SecurCore SC110、SecurCore SC200和SecurCoreSC210。

Xscale处理器
基于ARMv5TE体系结构的解决方案,是一款全性能、高性价比、低功耗的处理器。
支持16位的Thumb指令和DSP指令集。
已使用在数字移动电话、个人数字助理和网络产品等场合。
Xscale处理器是Intel目前主要推广的一款ARM微处理器

ARM11:指令集ARMv6,8级流水线,1.25DMIPS/MHz

Cortex-A8:指令集ARMv7-A,13级整数流水线,超标量双发射,2.0DMIPS/MHz,标配Neon,不支持多核
Scorpion:指令集ARMv7-A,高通获得指令集授权后在A8的基础上设计的。13级整数流水线,超标量双发射,部分乱序执行,2.1DMIPS/MHz,标配Neon,支持多核
Cortex-A9:指令集ARMv7-A,8级整数流水线,超标量双发射,乱序执行,2.5DMIPS/MHz,可选配Neon/VFPv3,支持多核
Cortex-A5:指令集ARMv7-A,8级整数流水线,1.57DMIPS/MHz,可选配Neon/VFPv3,支持多核

Cortex-A15:指令集ARMv7-A,超标量,乱序执行,可选配Neon/VFPv4,支持多核

当使用ARM toolchain时,会有-march -mcpu等。

-mcpu=

-mtune=

他们指定目标处理器(target ARMprocessor)。

可选的参数为:arm2',`arm250',`arm3', `arm6', `arm60', `arm600', `arm610', `arm620', `arm7', `arm7m', `arm7d', `arm7dm', `arm7di', `arm7dmi', `arm70', `arm700', `arm700i', `arm710', `arm710c', `arm7100', `arm7500', `arm7500fe', `arm7tdmi', `arm7tdmi-s', `arm8', `strongarm', `strongarm110', `strongarm1100', `arm8', `arm810', `arm9', `arm9e', `arm920', `arm920t', `arm922t', `arm946e-s', `arm966e-s', `arm968e-s', `arm926ej-s', `arm940t', `arm9tdmi', `arm10tdmi', `arm1020t', `arm1026ej-s', `arm10e', `arm1020e', `arm1022e', `arm1136j-s', `arm1136jf-s', `mpcore', `mpcorenovfp', `arm1176jz-s', `arm1176jzf-s', `xscale', `iwmmxt', `ep9312',Cortex-A8, Cortex-A9

-march=

target ARM architecture。 目标处理器架构。

`armv2', `armv2a',`armv3', `armv3m',`armv4', `armv4t',`armv5', `armv5t',`armv5te', `armv6',`armv6j', `iwmmxt',`ep9312'. armv7-a等。

1. 处理器IP核

通常说的ARM7,ARM9,ARM11等,都是处理器的IP名字,每种市面上的CPU,比如S3C2440之类的,都会对应一个处理器的IP核,这些核都是ARM授权的。当然,ARM9之类的名字可能包括多种处理器内核,比如ARM920T,ARM926ejs等。具体的ARM处理器IP核包括:

arm2', `arm250', `arm3', `arm6', `arm60', `arm600', `arm610', `arm620', `arm7', `arm7m', `arm7d', `arm7dm', `arm7di', `arm7dmi', `arm70', `arm700', `arm700i', `arm710', `arm710c', `arm7100', `arm7500', `arm7500fe', `arm7tdmi', `arm7tdmi-s', `arm8', `strongarm', `strongarm110', `strongarm1100', `arm8', `arm810', `arm9', `arm9e', `arm920', `arm920t', `arm922t', `arm946e-s', `arm966e-s', `arm968e-s', `arm926ej-s', `arm940t', `arm9tdmi', `arm10tdmi', `arm1020t', `arm1026ej-s', `arm10e', `arm1020e', `arm1022e', `arm1136j-s', `arm1136jf-s', `mpcore', `mpcorenovfp', `arm1176jz-s', `arm1176jzf-s', `xscale', `iwmmxt', `ep9312','cortex-A5', 'cortex-A8', 'cortex-A15'

等等,这些都是IP核的名字.有的厂家,会拿去ARM的IP核,自己修改和加强出新的IP核.

2. 体系架构

ARM 体系结构是构建每个 ARM 处理器的基础。ARM 体系结构随着时间的推移不断发展,其中包含的体系结构功能可满足不断增长的新功能、高性能需求以及新兴市场的需要。

体系结构是对处理器的架构描述,包括:

  • 统一寄存器文件加载/存储体系结构,其中的数据处理操作只针对寄存器内容,并不直接针对内存内容。
  • 简单寻址模式,所有加载/存储地址只通过寄存器内容和指令字段确定。

等等,体系结构相对稳定,可能会适时的推出新的特性,同时体系结构是兼容的.不同的处理器IP核,可能实现了不同的体系结构.ARM的体系架构包括:

`armv2', `armv2a', `armv3', `armv3m', `armv4', `armv4t', `armv5', `armv5t', `armv5te', `armv6', `armv6j', `iwmmxt', `ep9312'. armv7-a等。

3. 指令集

指令集实际上和体系结构是相互对应的,指令集和体系结构一样,是不断扩展的,同时保证了兼容性。相应的体系结构特征,需要对应的指令去实现。体系结构和指令集,可以在一起成为指令集架构,每个处理器IP核会实现特定的一种指令集架构.

ARM的指令集包括:ARM指令集,Thumb指令集.

4. 总结

市面上的CPU或者SOC,都是基于某IP核,这个IP核心实际上实现了一种指令集架构(体系结构特性+特定指令集) .指令集架构决定了功能范围,IP核决定了处理器性能,具体的CPU或者SOC决定了处理器的功能范围.
举个例子: S3C2440是个Soc,使用了ARM920T的处理器IP核,ARM920T核实现了ARMv4架构,支持支持32位ARM指令集和16位Thumb指令集.

ARM 指令集版本和ARM 版本

ARM11指令集ARMv6,8级流水线,1.25DMIPS/MHz

Cortex-A8指令集ARMv7-A,13级整数流水线,超标量双发射,2.0DMIPS/MHz,标配Neon,不支持多核
Scorpion:指令集ARMv7-A,高通获得指令集授权后在A8的基础上设计的。13级整数流水线,超标量双发射,部分乱序执行,2.1DMIPS/MHz,标配Neon,支持多核
Cortex-A9:指令集ARMv7-A,8级整数流水线,超标量双发射,乱序执行,2.5DMIPS/MHz,可选配Neon/VFPv3,支持多核
Cortex-A5:指令集ARMv7-A,8级整数流水线,1.57DMIPS/MHz,可选配Neon/VFPv3,支持多核

Cortex-A15指令集ARMv7-A,超标量,乱序执行,可选配Neon/VFPv4,支持多核

ARM 指令集版本和ARM 版本相关推荐

  1. ARM知识扫盲-RISC架构-ARM寄存器-ARM指令集

    文章目录 简介: ARM寄存器 特殊寄存器 ARM指令集 简介: ARM本身使用的是RISC精简指令集架构,除此之外还有开源的RISC指令集架构RISC-V,复杂指令集CISC(Complex Ins ...

  2. 什么是Cortex、ARMv8、arm架构、ARM指令集、soc

    参考:到底什么是Cortex.ARMv8.arm架构.ARM指令集.soc?一文帮你梳理基础概念[科普] 发布时间: 一口Linux 网址:https://blog.csdn.net/daocaoka ...

  3. Cortex、ARMv8、arm架构、ARM指令集、soc?Cortex A8、A9都是ARMv7a 架构;Cortex M3、M4是ARMv7m架构;前者是处理器(内核)后者是指令集的架构(架构)

    架构组成元素的指令集状态或者语法thumb指令集与arm指令集的区别例如thumb指令集是什么_thumb指令集与arm指令集的区别以及thumb-2的关系在下一文中介绍,本文暂时不讨论 有粉丝问我到 ...

  4. 到底什么是Cortex、ARMv8、arm架构、ARM指令集、soc?一文帮你梳理基础概念【科普】

    前言 有粉丝问我到底什么是ARM,搞不清楚Cortex.arm内核.arm架构.ARM指令集.soc这些概念都是什么关系,下面一口君给大家整理一下关于ARM相关的一些概念. 1.ARM既可以认为是一个 ...

  5. ARM 指令集版本和ARM 版本z

    a9是cortex-a9的简称,属于v7指令集,属于目前比较新的了. arm9就是arm9,属于v5指令集,arm9后面的是arm11,属于v6指令集,之前的是arm7,属于v4指令集. 虽然他们之间 ...

  6. 《铜豌豆 Linux》 ARM 架构 11.5.2 版本发布

    https://www.atzlinux.com/News/2022/20221026.htm <铜豌豆 Linux> ARM 架构 11.5.2 版本发布 2022-10-26 2022 ...

  7. IAR for 8051 V10.10.1版本for ARM V8.32.1 版本

    IAR for 8051 V10.10.1版本for ARM V8.32.1版本 IAR for 8051 V10.10.1版本 IAR for 8051 V10.10.1版本资源下载地址 链接:ht ...

  8. ARM指令集复习 | 基本指令用法

    文章目录 1.ARM指令集概述 2.ARM的寻址方式 2.1 立即寻址 2.2 寄存器寻址 2.3 多寄存器及块拷贝寻址 2.4 堆栈寻址 2.5 相对寻址 3.ARM指令集 3.1 存储器访问(L/ ...

  9. ARM指令集 和 条件执行 详解

    算术和逻辑指令 ADC : 带进位的加法 (Addition with Carry) ADC{条件}{S} <dest>, <op 1>, <op 2>dest = ...

  10. ARM学习-ARM指令集详解

    目录 1. ARM 存储器访问指令 1.1 LDR 和STR 加载/存储字和无符号字节指令 1.2 LDM和STM 批量加载/存储指令 1.3 SWP 寄存器和存储器交换指令 2.  ARM 数据处理 ...

最新文章

  1. js php 正则差别,正则表达式(括号)、[中括号]、{大括号}的区别小结,正则表达式小结...
  2. 五一好礼70份免费送:示波器、开发板、焊台等!
  3. CodeForces - 1141CPolycarp Restores Permutation搜索+剪枝
  4. python3 判断大小端的一种方法
  5. (06)Verilog HDL组合逻辑:always
  6. 【数电】(一) 进制转换编码 原码,反码,补码
  7. TensorFlow经典入门示例MNIST(识别手写的数字图片)
  8. python微博爬虫实战_Python爬虫实战演练:爬取微博大V的评论数据
  9. 实现手机访问网站时点击手机号码直接拨打电话的功能
  10. (5)数据结构-栈顺序存储
  11. SVM支持向量分类器原理及OpenCV实现
  12. 重装ubuntu16.04之搜狗拼音输入法
  13. python语句分号_你知道分号在各种编程语言中的作用吗?
  14. matlab ga函数详解,求对ga函数的详细解释
  15. possible formatting directive
  16. java微信小程序的在线学习平台
  17. 驾考题库API接口,免费好用
  18. kaggle | 入门教程
  19. 图片(旋转/缩放/翻转)变换效果(ccs3/滤镜/canvas)
  20. 【每日早报】2019/09/03

热门文章

  1. Linux下PCI设备驱动程序开发
  2. java万能万年历的程序_Java万年历
  3. Python爬虫之起点中文网完本小说
  4. 基于51单片机GPS的导航系统设计(3)---毕设论文
  5. 史上最全的互联网思维精髓总结
  6. Linux系统,Hadoop,R语言,RHadoop的安装
  7. 服务器安装固态硬盘的步骤,服务器系统安装中不识别固态硬盘问题
  8. McCabe环路复杂度计算方法
  9. xxx/ASPNET帐户登陆失败情况处理
  10. SIFT算法流程介绍