ARM及指令集

  

常常能看到ARM7,ARM9,ARM11,以及armv6k等不同的表达。且在GCC编译中,常常要用到 -march, -mcpu等。他们分别表达什么涵义呢?今天就仔细研究一下。

 

ARM(Advanced RISC Machines)是微处理器行业的一家知名企业。设计了大量高性能、廉价、耗能低的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和SecurCore SC210。

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 ARM processor)。

可选的参数为: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等。

时间: 2024-09-11 03:40:23

ARM及指令集的相关文章

ARM与Intel的人工智能战争即将开始

微软2017年3月在美国矽谷举行的开放运算计划(OCP Summit 2017),宣布正与高通(Qualcomm)子公司Qualcomm Datacenter Technologies(QDT)及Cavium打造基于ARM架构的数据中心服务器.在手机领域大放异彩的芯片业者ARM触角再向外延伸,抢攻英特尔(Intel)独占的服务器市场,目标至2021年市占从零提高到25%. ARM早在2011年就曾进军服务器市场,其挹注新创业者Calxeda 1亿美元, Calxeda于2011年推出搭载ARM处

跟随Android进入ARM v8a的世界(1) - 从例子说起

跟随Android进入ARM v8a的世界 从例子说起 目前我们在Android上运行的ARM芯片,有6套指令集,32位的ARM v5指令集,16位的thumb指令集,32位的ARM v7a指令集,16位和32位混合的thumb2指令集,32位的ARM v7a带Neon的指令集,还有64位的ARM v8a指令集. 16位的Thumb指令集是个不完备的指令集,需要跟ARM指令混编才可以完成全部的功能. 我们先向经典致敬,看看求最大公约数的代码. C代码是这样的: unsigned int gcd(

ART世界探险(3) - ARM 64位CPU的架构快餐教程

ART世界探险(3) - ARM 64位CPU的架构快餐教程 前面我们说过,Dalvik如果没有JIT的话,可以做到架构无关,让Dalvik指令都解释执行.但是ART是AOT,要编译成针对芯片具体的机器指令. 所以,研究Dalvik的时候可以不用太关心目标指令,而我们研究ART必须对目前最流行的微处理器的架构有个基本的了解. 在上一讲我们对于ART从java byte code到ARM64 v8指令的整个流程有了一个大概的了解之后,我们就目前最流行的ARM64位芯片的知识进行一些探索. 我们的目

《逆向工程权威指南》—第3章3.4节ARM

3.4 ARM 根据我个人的经验,本书将通过以下几个主流的ARM编译器进行演示. 2013年6月版本的Keil编译器. Apple Xcode 4.6.3 IDE (含LLVM-GCC 4.2编译器) .[10] 面向 ARM64的GCC 4.9 (Linaro),其32位的Windows程序可由下述网址下载:http://www. linaro.org/ projects/armv8/. 除非特别标注,否则本书中的ARM程序都是32位ARM程序.在介绍64位的ARM程序时,本书会称其为ARM6

Intel缘何为ARM代工,新标准能被广泛接受么

日前,Intel公开表示将为ARM阵营IC设计厂商代工生产芯片.且还公开叫板"友商",称Intel的10nm工艺比三星.台积电的10nm工艺更具优势.ARM方面表示很期待与英特尔合作.此外,不知道是否因为台积电和三星制造工艺注水的问题,Intel的专家Mark Bohr还发布了一个更合理的衡量半导体工艺水平的公式.那么,Intel缘何开始为ARM阵营IC设计公司代工芯片,Intel提出的新计算公式能得到台积电.三星.格罗方德等代工大厂的认同么?     Intel罕有为第三方提供代工业

国内ARM阵营IC设计公司会不会处处受制于人?

到底什么才是自主可控的国产芯片,必须要有一个明确的认定.目前主流的在ARM技术授权的基础上搞国产芯片开发的方式,显然值得商榷. 近年来,在国家大力扶持集成电路产业的背景下,国内从事高性能CPU设计的单位或公司数量不断壮大. 但美中不足的是,几乎所有单位都认为自己的产品和技术路线符合自主可控标准. 比如飞腾在和中国电子合作后,将购买自ARM的Cortex A57产品打上自主可控标签进军信息安全市场:展讯把购买自ARM的Cortex A53和Mali的T720MP2集成得到的椒图芯片打上了自主可控.

《逆向工程权威指南》—第1章1.1节指令集架构

第一部分 指令讲解逆向工程权威指南在最初接触C/C++时,我就对程序编译后的汇编指令十分着迷.按照从易到难的顺序,我循序渐进地研究了C/C++语言编译器生成汇编指令的模式.经过日积月累的努力,现在我不仅可以直接阅读x86程序的汇编代码,而且能够在脑海里将其还原成原始的C/C++语句.我相信这是学习逆向工程的有效方法.为了能够帮助他人进行相关研究,我把个人经验整理成册,以待与读者分享. 本书包含大量x86/x64和ARM框架的范例.如果读者熟悉其中某一种框架,可以跳过相关的篇幅. 第1章 CPU简

ARM透露正在开发新一代的64位ARM v8架构

[天极网服务器频道7月29日消息]进入http://www.aliyun.com/zixun/aggregation/33721.html">2014年,ARM的64位架构成为芯片厂商关注的重点.ARM自己已经推出了64位的ARM参考架构也就是Cortex-A57.A53架构.不过市场反响还不够强烈.所以AMD出面了,宣布推出64位的ARM计算架构. AMD已经公布了旗下CPU和SoC产品的发展路线图,预计在2015年将会推出低功耗版的Cortex-A57,Project Skybridg

C语言调用汇编及使用指令集对代码进行优化实例教程

搭建环境 x264使用汇编优化的思想是将汇编代码编译到一个静态库里,供C代码调用,所以首先需要构建一个汇编函数得静态库.因为手动配置使用yasm来编译汇编文件,并生成一个lib相当麻烦,我选择的是使用cmake来构建. 在demo里有一个sum.asm的汇编文件,文件里是所有的汇编函数,通过yasm编译后生成sum.obj,然后通过sum.obj来创建一个sum.lib库供C代码使用.还有一个main.c的C文件,用来生成可执行文件main,CMakeLists.txt文件如下: cmake_m