armv8 和 arm64 是一样的吗?

Posted

技术标签:

【中文标题】armv8 和 arm64 是一样的吗?【英文标题】:Are armv8 and arm64 the same? 【发布时间】:2017-04-26 19:01:11 【问题描述】:

ios 的开发环境 xcode 中。创建时 一个新项目。构建设置声明它支持 armv7armv7sarm64 架构。

下图显示了苹果设备的架构:

armv8 没有在任何地方提及。这是否意味着 armv8arm64 是一回事?

我不会使用以下二进制文件: http://www.libjpeg-turbo.org/Documentation/OfficialBinaries

它说这个二进制文件的 1.5.1 版本支持 armv8 架构。这也说明 armv8 和 arm64 是一回事。

另一个关于二进制的问题。该链接是否表明使用 iOS 1.5.1 版本是安全的?

【问题讨论】:

如果你看iossupportmatrix.com你会发现64位和ARMv8是一样的。 我得到了答案,谢谢。您能否添加一个答案并提及 libjpeg,以便我可以给您一个信用?再次感谢。 Arm Armv8 CPU 架构具有三个配置文件。 A、R、M。aarch64 和 aarch32 是 Armv8-A 可以支持的两种 CPU 处理器状态。 【参考方案1】:

哦,含糊不清的术语 - 在这种情况下,“架构”实际上并不是指 ISA 意义上的架构或 ARM 制定的系统架构,它真正的意思是“iOS 目标”,即特定的系统配置和ISA 支持级别:

“armv7”代表 ARMv7-A 架构的某种配置。 “armv7s”表示 ARMv7-A 架构的配置略有不同,在基本“armv7”目标之上提供了更多可选功能。 “arm64”代表ARMv8-A架构的AArch64状态;没有“armv8”目标。

【讨论】:

但是,如何命名构建在 32 位系统和 ARMv8-A 处理器上的包?他们叫armhf吗?但这只是 ARMv7 中硬浮点特性的一个指标,而不是 armv8 中的扩展指令,不是吗? “ISA”代表什么? @user920391 指令集架构,见https://en.wikipedia.org/wiki/Instruction_set_architecture【参考方案2】:

不,ARMv8-A 指令集 (armv8) 也可以存在于 32 位架构上,尽管我不知道有一个例子。所以从技术上讲,你可以区分它们,就像在 docker 中所做的那样:

ARMv5 32 位 (arm32v5):https://hub.docker.com/u/arm32v5/

ARMv6 32 位 (arm32v6): https://hub.docker.com/u/arm32v6/ (别名armel)

ARMv7 32 位 (arm32v7): https://hub.docker.com/u/arm32v7/ (别名armhf)

ARMv8 64 位 (arm64v8): https://hub.docker.com/u/arm64v8/ (别名arm64)

ARMv8 32 位 (arm32v8): https://hub.docker.com/u/arm32v8/ 不受支持,因此没有软件包。

【讨论】:

在 Apple 世界之外,您当然可以构建 32 位 ARM 模式或 Thumb 模式代码,以利用 ARMv8 引入 32 位模式的功能。喜欢gcc -mcpu=cortex-a53。例如,在 std::atomic 获取/释放加载与使用障碍的 ARMv7 代码的指令选择中值得注意。 godbolt.org/z/9Y46bM

以上是关于armv8 和 arm64 是一样的吗?的主要内容,如果未能解决你的问题,请参考以下文章

如何在armv7中得到armv8中的64位Vn.8h,就像arm寄存器中的D寄存器一样?

armeabi-v7a armerabi arm64-v8a区别

ARM知识

关于ARM架构的一些知识

Android中的armeabi、armeabi-v7a、arm64-v8a及x86的详解

ARMV8 datasheet学习笔记1:概述