armeabi-v7a armeabi arm64-v8a 参数的含义解释

简介: 严格意义上这个不是原创是从网上找的资源,理解后写成的,所有资料都注明了来源 armeabi是针对所有的arm cpu,只要支持arm的指令集就可以,v7a,v8a是针对arm后来出的指令集版本制定的cpu如符合arm7指令集的cpu armeabi-v7a是针对有浮点运算或高级扩展功能的arm v7 cpu。 armeabi-v7a(32位ARM设备), arm64-v8a

严格意义上这个不是原创是从网上找的资源,理解后写成的,所有资料都注明了来源大笑


armeabi是针对所有的arm cpu,只要支持arm的指令集就可以,
v7a,v8a是针对arm后来出的指令集版本制定的cpu如符合arm7指令集的cpu

armeabi-v7a是针对有浮点运算或高级扩展功能的arm v7 cpu。
armeabi-v7a(32位ARM设备),
arm64-v8a(64位ARM设备)


EABI

百度百科: 
应用程序二进制接口(application binary interface,ABI) 描述了应用程序和操作系统之间,一个应用和它的库之间,或者应用的组成部分之间的低层接口。ABI不同于应用程序接口(API),API定义了源代码和库之间的接口,因此同样的代码可以在支持这个API的任何系统中编译,然而ABI允许编译好的目标代码在使用兼容ABI的系统中无需改动就能运行。


百度百科: 
EABI,全称是Embedded application binary interface, 即嵌入式应用二进制接口,是描述“可连接目标代码、库目标代码、可执行文件影像”如何连接、执行和调试,以及目标代码生成过程,和c, c++语言接口的规范,是编译连接工具的基础规范,也是研究它们工作原理的基础,可惜arm的EABI迄今为止没有完全订好。作为EABI的组成部分有过程调用规范,可执行文件格式规范,c/c++ ABI规范和调试格式规范。


EABI ,说的是这样的一种新的系统调用方式 
mov r7, #num 
swi 0x0 
原来的系统调用方式是这样, 
swi (#num | 0x900000) (0x900000是个magic值)


简单的说,ABI规范了应用程序对寄存器的使用方法,Call procedure,以及如何进入trap。符合某一平台ABI规范的应用程序就可以在这一平台上运行。这一规范是针对binary,而不是source的。所以同样的高级语言代码,使用不同的toolchain,可以得到符合不同ABI规范的binary。 
arm abi,非正式称呼为eabi,是一种规范,符合这种规范的编译器有arm-eabi-gcc。






ARM是一种指令集,X86也是一种指令集
ARM是一种指令集,知识产权属于(ARM公司),X86也是一种指令集,X86指令集的知识产权属于Intel公司,ARM是精简指令集(RISC),X86使用的是复杂指令集(CISC)。
ARM推出指令集的同时,也推出了指令集的实现形式叫Cortex-A等系统架构,
当然如果有实力可以不使用指导的系统架构来做CPU(简单地说是CPU,实际是上核心),可以自己做架构(如高通,三星),


Intel的使用X86的指令集,自己做架构然后做出CPU来叫(奔腾,酷睿,I3),使用ARM指令集同进也使用ARM公司的架构做出的CPU有海思,使用ARM指令集不使用ARM公司架构的有高通系列CPU,苹果的CPU


(可以不看,不要搞混了     
 ARM Cortex-A8处理器是首款基于ARMv7体系结构的产品
  Cortex-A8 高性能处理器目前已经非常成熟,从高端特色手机到上网本、DTV、打印机和汽车信息娱乐,Cortex-A8处理器都提供了可靠的高性能解决方案。
应用案例:TI OMAP3系列、苹果A4处理器(iPhone 4)、三星S5PC110(三星I9000)、瑞芯微RK2918、联发科MT6575等。另外,高通的MSM8255、MSM7230等也可看做是A8的衍生版本。
ARM Cortex-A7处理器隶属于Cortex-A系列,基于ARMv7-A架构,它的特点是在保证性能的基础上提供了出色的低功耗表现。
ARM Cortex-A5处理器隶属于Cortex-A系列,基于ARMv7-A架构,它是能效最高、成本最低的处理器。
)
  



 看到移动设备对64位计算的需求后,ARM于2011年发布了ARMv8 64位架构,这是为了下一代ARM指令集架构工作若干年后的结晶。为了基于原有的原则和指令集,开发一个简明的64位架构,ARMv8使用了两种执行模式,AArch32和AArch64。

 arm8,还有arm10,昙花一现,过度产品,高不成低不就,很快就被历史淹没了。
arm8和arm v4一起诞生,成为了arm7 tdmi和arm9 tdmi的垫脚石,主要技术数据都被arm7 ej给继承了。
arm10e碰上xsale大败,转而开发arm11。
arm8开发板偶尔还能遇上,完整性又比不上7ej-s,自然比较冷门。有个产品Acorn Risc PC prototype CPU card就是arm8。


在2011年11月,ARM公司发布了新一代处理器64位架构ARMv8的部分技术细节(也就是我们常说的Cortex-A57A53),代表着未来移动处理器迈入64位行列。我们得明确一点,ARM公司自己本身并没有64位芯片设计技术,他是通过了收购MIPS64处理器架构的部分技术使用权,再结合ARM的一些特性设计出来的。也就是说:MIPS、ARM、X86三大架构中,唯一没有64位技术的ARM,通过收购MIPS的形式得到了64位。
 
所谓的ARMv8架构,就是在MIPS64架构上增加了ARMv7架构中已经拥有的的TrustZone技术、虚拟化技术及NEON advanced SIMD技术等特性,研发成的。




作者:匿名用户
链接:https://www.zhihu.com/question/22705732/answer/22336022
来源:知乎



说到ARM,首先有必要了解一下ARM、x86(x64)、Intel处理器、骁龙处理器的区别了。


ARM与X86都是处理器的架构,ARM架构属于RISC指令集,X86构架属于典型的CISC指令集。
Intel处理器是基于x86(x64)指令集的处理器,主要用于PC端,除了英特尔,其他公司也有制造x86指令集的处理器,AMD就是Intel以外最成功的制造商。骁龙是基于ARM指令集的处理器,主要用于智能手机端,除了骁龙以外,有大量的公司制作ARM指令集的处理器,例如:三星、苹果等。
x86表示32位处理器,x64表示64位处理器。
关于ARM与x86的详细区别,可以参考下面的链接: 
http://mobile.hiapk.com/knowledge/common/130718/1438966.html


通过上面的比较,我们知道了ARM是属于RISC指令集的处理器架构,




 参考文章
 http://blog.csdn.net/u011983531/article/details/51514033


指令集
CPU执行计算任务时都需要遵从一定的规范,程序在被执行前都需要先翻译为CPU可以理解的语言。这种规范或语言就是指令集(ISA,Instruction Set Architecture)。程序被按照某种指令集的规范翻译为CPU可识别的底层代码的过程叫做编译(compile)。x86、ARM v8、MIPS都是指令集的代号。指令集可以被扩展,如x86增加64位支持就有了x86-64。厂商开发兼容某种指令集的CPU需要指令集专利持有者授权,典型例子如Intel授权AMD,使后者可以开发兼容x86指令集的CPU。


架构
CPU的基本组成单元即为核心(core)。多个核心可以同时执行多件计算任务,前提是这些任务没有先后顺序。


核心的实现方式被称为微架构(microarchitecture)。微架构的设计影响核心可以达到的最高频率、核心在一定频率下能执行的运算量、一定工艺水平下核心的能耗水平等等。此外,不同微架构执行各类程序的偏向也不同,例如90年代末期Intel的P6微架构就在浮点类程序上表现优异,但在整数类应用中不如同频下的对手。


ARM公司可以指导对于指令集的实现,但是用不用就是公司说了算了


ARM公司将自己研发的指令集叫做ARM指令集,同时它还研发具体的微架构如Cortex系列并对外授权。但是,一款CPU使用了ARM指令集不等于它就使用了ARM研发的微架构。Intel、高通、苹果、Nvidia等厂商都自行开发了兼容ARM指令集的微架构,同时还有许多厂商使用ARM开发的微架构来制造CPU。


作者:王强
链接:https://zhuanlan.zhihu.com/p/19893066
来源:知乎


相关文章
|
7月前
|
Android开发 芯片 开发者
adb 查看安卓手机 CPU 类型(armeabi、armeabi-v7a、arm64-v8a ...)
adb 查看安卓手机 CPU 类型(armeabi、armeabi-v7a、arm64-v8a ...)
1503 0
|
Android开发
Android NDK: 如何编译JNI为指定的指令集(armeabi/arm64)
Android NDK: 如何编译JNI为指定的指令集(armeabi/arm64)
167 0
|
12天前
|
机器学习/深度学习 弹性计算 人工智能
阿里云服务器架构有啥区别?X86计算、Arm、GPU异构、裸金属和高性能计算对比
阿里云ECS涵盖x86、ARM、GPU/FPGA/ASIC、弹性裸金属及高性能计算等多种架构。x86架构采用Intel/AMD处理器,适用于广泛企业级应用;ARM架构低功耗,适合容器与微服务;GPU/FPGA/ASIC专为AI、图形处理设计;弹性裸金属提供物理机性能;高性能计算则针对大规模并行计算优化。
|
2月前
|
编解码 弹性计算 应用服务中间件
阿里云服务器Arm计算架构解析:Arm计算架构云服务器租用收费标准价格参考
阿里云服务器架构分为X86计算、Arm计算、高性能计算等多种架构,其中Arm计算架构以其低功耗、高效率的特点受到广泛关注。本文将深入解析阿里云Arm计算架构云服务器的技术特点、适用场景以及包年包月与按量付费的收费标准与最新活动价格情况,以供选择参考。
|
2月前
|
机器学习/深度学习 弹性计算 编解码
阿里云服务器计算架构X86/ARM/GPU/FPGA/ASIC/裸金属/超级计算集群有啥区别?
阿里云服务器ECS提供了多种计算架构,包括X86、ARM、GPU/FPGA/ASIC、弹性裸金属服务器及超级计算集群。X86架构常见且通用,适合大多数应用场景;ARM架构具备低功耗优势,适用于长期运行环境;GPU/FPGA/ASIC则针对深度学习、科学计算、视频处理等高性能需求;弹性裸金属服务器与超级计算集群则分别提供物理机级别的性能和高速RDMA互联,满足高性能计算和大规模训练需求。
|
2月前
|
存储 Docker 容器
ARM架构鲲鹏主机BClinux离线安装docker步骤
下载并安装适用于ARM架构的Docker CE二进制文件,解压后移动至/usr/bin目录。创建docker组,配置systemd服务脚本(docker.service、docker.socket、containerd.service),重载systemd配置,启动并启用docker服务。编辑daemon.json配置存储驱动、镜像加速地址等,最后拉取所需镜像。
54 0
|
2月前
|
NoSQL MongoDB Docker
求助,有没有大神可以找到arm64架构下mongodb的3.6.8版本的docker镜像?
在Docker Hub受限的情况下,寻求适用于ARM架构的docker镜像资源或拉取链接,以便在x86架构上获取;内网中的机器为ARM架构,因此优先请求适合ARM的Docker镜像或Dockerfile,非常感激您的帮助。