x86 x64 arm64的区别

article/2025/9/17 1:35:35

x86 x64 arm64的区别

源地址:https://www.cnblogs.com/zhaoqingqing/p/13145115.html

我们常说的高通 865,麒麟990 不是 CPU 是 SoC(System On Chip),SoC 除了 CPU 外,还有 GPU,还有可选的浮点数加速器,专用于深度模型的加速器,等等。除此以外,SoC 还包括运存,基带芯片等等一系列集成式的东西,比电脑上的CPU集成度更高。
ARM 和各个 SoC 的关系:所有 ARM 架构的 CPU 都是 ARM 公司授权的,授权的形式是 IP 核,各个品牌得到授权,生产自己的 SoC。

高通公司的 SoC 对 ARM 的 IP 核做了二次包装,把 32位的 CPU 命名为 Krait 系列,把 64 位的 CPU 命名为 Kryo 系列。例如 骁龙855 使用的 CPU 是 Kryo 485,实际是由 Cortex-A55 + Cortex-A76 实现的。

手机CPU的ARM架构

ARM是英国ARM公司提供一种CPU架构的知识产权,目前主流的手机和平板电脑都采用ARM架构,套用一句话:ARM不生产芯片,只提供一个芯片设计的Idea。
可以说,作为一家不生产芯片的芯片厂商,ARM却在全球范围内支撑起了各种嵌入式设备、智能手机、平板电脑、智能穿戴和物联网设备的运行,只是ARM每年都会从构建上述设备体内的上亿颗处理器中“抽成”,严格遵守薄利多销的运营模式。

主流的手机/平板品牌,绝大数是采用ARM架构,当然现在ARM也进军PC市场。

  • 高通骁龙(snapdragon)
  • 三星(Exynos)
  • 联发科(Helio)
  • 华为(麒麟)
  • 苹果 (A11,A7,A6,M1)
  • Intel
  • Nvidia

安卓apk/lib 目录下的几个文件夹,代表不同的架构:

  • arm64-v8a

  • armeabi-v7a

  • x86

IOS模拟器
4s-5: i386
5s-7s Plus: x86_64
真机(iOS设备):
armv6: iPhone、iPhone 2、iPhone 3G、iPod Touch(第一代)、iPod Touch(第二代)
armv7: iPhone 3Gs、iPhone 4、iPhone 4s、iPad、iPad 2
armv7s: iPhone 5、iPhone 5c (静态库只要支持了armv7,就可以在armv7s的架构上运行)
arm64(注:无armv64): iPhone 5s、iPhone 6、iPhone 6 Plus、iPhone 6s、iPhone 6s Plus、 iPhone 7 、iPhone 7 Plus、iPad Air、iPad Air2、iPad mini2、iPad mini3、iPad mini4、iPad Pro

电脑CPU的x86架构

主流品牌:

  • Inter(英特尔)
  • AMD

比如操作系统区分

  • Windows 10 (Multiple Editions) (x64) - DVD (Chinese-Simplified)
  • Windows 10 (Multiple Editions) (x86) - DVD (Chinese-Simplified)

X86源于英特尔几十年前出品的CPU型号8086(包括后续型号8088/80286/80386/80486/80586)。
8086以及8088被当时的IBM采用,制造出了名噪一时的IBM PC机,从此个人电脑风靡一时。你如果年龄不是很小,可能听说过早年的386电脑、486电脑乃至586电脑的说法,就是从这来的。后来英特尔注册了奔腾品牌,不再沿用686、786……这样的命名,但后来的奔腾、奔腾2、奔腾3、奔腾4,以及我们熟悉的酷睿架构,都是从当初的80X86一脉相承下来的架构,只是不断优化、扩充功能、提升性能而已。而其他X86处理器厂商,比如AMD、威盛、全美达(已退出X86领域)等,其产品也都兼容X86架构。

X64是X86_X64的简称

之所以叫X86,是因为实在应用得过于广泛导致X86直接成为了其代名词。


X32和X64------这两个概念你可以大致的认为它们是居于X86之下(之内)的两个子概念。

它们指的不是CPU架构,而是CPU寄存器、运算器能访问、处理的数据位宽,以及与此相关的一整套CPU设计规范。
X32 CPU------32位的CPU(32bit的CPU); X64 CPU------64位的CPU(64bit的CPU)
简单的说,X32的X86 CPU只能处理32位的数据、运行32位的操作系统;

X64的 CPU则可以处理64位以及32位的数据、运行32位以及64位的操作系统------X64向下兼容X32。

奔腾直到奔腾4早期型号的CPU,都是X32的X86架构;

从后期的奔腾4 CPU开始直至今天的酷睿i架构的CPU,都是X64的X86架构。

当然,AMD的处理器目前也都是X64的X86架构。

ARM与X86架构对比#

Intel和ARM的处理器除了最本质的复杂指令集(CISC)和精简指令集(RISC)的区别之外,下面我们再从以下几个方面对比下ARM和X86架构。

一、制造工艺#

ARM和Intel处理器的一大区别是ARM从来只是设计低功耗处理器,Intel的强项是设计超高性能的台式机和服务器处理器。

二、64位计算#

对于64位计算,ARM和Intel也有一些显著区别。Intel并没有开发64位版本的x86指令集。64位的指令集名为x86-64(有时简称为x64),实际上是AMD设计开发的。Intel想做64位计算,它知道如果从自己的32位x86架构进化出64位架构,新架构效率会很低,于是它搞了一个新64位处理器项目名为IA64。由此制造出了Itanium系列处理器。
同时AMD知道自己造不出能与IA64兼容的处理器,于是它把x86扩展一下,加入了64位寻址和64位寄存器。最终出来的架构,就是 AMD64,成为了64位版本的x86处理器的标准。IA64项目并不算得上成功,现如今基本被放弃了。Intel最终采用了AMD64。Intel当前给出的移动方案,是采用了AMD开发的64位指令集(有些许差别)的64位处理器。

而ARM在看到移动设备对64位计算的需求后,于2011年发布了ARMv8 64位架构,这是为了下一代ARM指令集架构工作若干年后的结晶。为了基于原有的原则和指令集,开发一个简明的64位架构,ARMv8使用了两种执行模式,AArch32和AArch64。顾名思义,一个运行32位代码,一个运行64位代码(详情戳)。ARM设计的巧妙之处,是处理器在运行中可以无缝地在两种模式间切换。这意味着64位指令的解码器是全新设计的,不用兼顾32位指令,而处理器依然可以向后兼容。

三、异构计算#

ARM的big.LITTLE架构是一项Intel一时无法复制的创新。在big.LITTLE架构里,处理器可以是不同类型的。传统的双核或者四核处理器中包含同样的2个核或者4个核。一个双核Atom处理器中有两个一模一样的核,提供一样的性能,拥有相同的功耗。ARM通过big.LITTLE向移动设备推出了**异构计算。这意味着处理器中的核可以有不同的性能和功耗。当设备正常运行时,使用低功耗核,而当你运行一款复杂的游戏时,使用的是高性能的核。

参考自:CPU的构架之ARM和Intel的区别(x86/x64/ARM64/ARM)

armv7和armv8对比#

摘自:ARM架构-维基百科

架构别名处理器家族
ARMv7armeabi-v7aARM Cortex-A、ARM Cortex-M、ARM Cortex-R
ARMv8arm64-v8aCortex-A35、Cortex-A50系列[14]、Cortex-A72、Cortex-A73

armv7和armv8的区别对照表#

特性ARM V8ARM V7
指令集64位指令集 AArch64, 并且兼容32位指令集 AArch3232位指令集 A32 和16位指令集 T16
支持地址长度64位32位
通用寄存器31个 x0-x30(64位)或者 w0-w30(32位)15个, r0-r14 (32位)
异常模式4层结构 EL0-EL32层结构vector table
NEON默认支持可选支持
LAPE默认支持可选支持
Virtualization默认支持可选支持
big.LITTLE支持支持
TrustZone默认支持默认支持
SIMD寄存器32个 X 128位32个 X 64位

Google Play下载应用时的架构#

比如我在下载google play上的应用,有下面这些选项:

解释一下每个的架构区别

  1. armeabi: 第5代、第6代的ARM处理器,早期的手机用的比较多。
  2. armeabiv-v7a: 第7代及以上的 ARM 处理器
  3. arm64-v8a: 第8代、64位ARM处理器,2016年之后中高端的手机,比如骁龙8系列,麒麟9系列,联发科1000+
  4. x86: 平板、模拟器用得比较多。
  5. x86_64: 64位的平板。

查看手机的arm架构#

方法一

下载Devcheck,安装后,在系统信息这一栏中点击,可以查看当前的架构

方法三

查看手机的SOC,查找该SOC的信息,比如A55+A76,然后去查找对应的ARM信息

方法二

配置好adb环境,在cmd下输入以下命令:adb shell getprop ro.product.cpu.abi
查看打印的字符,比如:arm64-v8a

更多手机硬件相关的知识可参考这篇《Android 深度学习基础 – 系统和硬件》


http://chatgpt.dhexx.cn/article/t5axUILT.shtml

相关文章

Python线性方程求解-矩阵左除“\“、右除“/“

目录 1 线性方程组求解方法 2 左除“\”→AxB 3 右除"/"→xAB 4 其它说明 1 线性方程组求解方法 如果AxB,则xA\B,称为左除;如果xAB,则xB/A,称为右除。 式中x为未知数。一般情况下,左除用的系…

Matlab:用矩阵的除法替代逆运算的操作(inv)

在matlab中直接用逆运算常常会提示,建议用矩阵的左除或右除替换,因为inv(A)*b速度更慢且准确度更低。 matlab中部分详细信息:为了求解线性方程组,矩阵的逆主要是理论值。 切勿使用矩阵的逆 ,即 x inv(A)*b 来求解线性…

逆矩阵的概念、应用和求解

目录 逆矩阵的概念 求解逆矩阵 应用例子 可能没有逆矩阵 求解逆-方法1:初等行运算(高斯-若尔当) 求解逆-方法2:余子式、代数余子式和伴随 求解逆-方法3:程序库 逆矩阵的概念 矩阵运算中,…

利用矩阵的逆(伪逆)与除法求解

利用矩阵的逆(伪逆)与除法求解: 对于线性方程组Axb,若其为恰定方程组且A是非奇异的,则求x最明显的方法便是利用矩阵的逆,即xA\b;若不是恰定方程组,则可利用伪逆来求其一个特解。 运用pinv命令…

9、矩阵的简单运算

目录 一、矩阵的加减运算 二、矩阵的乘方运算 1.数与矩阵的乘法 2.矩阵与矩阵的乘法 三、矩阵的除法 四、矩阵的幂运算 五、矩阵元素的查找 六、矩阵元素的排序 七、矩阵元素的求和 八、矩阵元素的求积 九、矩阵元素的差分 一、矩阵的加减运算 进行矩阵加法、减法运…

矩阵的相乘与相除

这里写自定义目录标题 矩阵的数组乘/除及乘方参与除运算的两个矩阵同维时参与运算的矩阵有一个标量时数组乘方的运算规则Matlab的符号计算:Matlab画图 矩阵的数组乘/除及乘方 参与除运算的两个矩阵同维时 运算为矩阵相应的元素相除 参与运算的矩阵有一个标量时 …

矩阵乘法

两个矩阵可以相乘&#xff0c;必须满足的条件是&#xff1a;左边矩阵的列等于右边矩阵的行 如&#xff1a;一个3x4的矩阵和一个4x2的矩阵相乘&#xff0c;得到一个3x2的矩阵&#xff1b; 矩阵乘法函数&#xff1a; mat3 add(mat1 A,mat2 B){mat3 ans; for(int i0;i<s1;i)f…

算法——矩阵算法

目录 一.矩阵快速幂&#xff08;1&#xff09;矩阵定义&#xff08;2&#xff09;加法运算&#xff08;3&#xff09;减法运算&#xff08;4&#xff09;数乘&#xff08;5&#xff09;P3390 【模板】矩阵快速幂 二.矩阵求斐波那契数列三.[一个详解矩阵各种高难应用的博客] 一.…

python中的除法运算_python中矩阵除法运算的三种实现方法

介绍过python矩阵的乘法运算&#xff0c;numpy库中虽然乘法是矩阵运算的主要运算&#xff0c;但是numpy作为python中实现矩阵运算的好工具&#xff0c;也是可以轻松实现除法计算的&#xff0c;本文python中矩阵除法的三种实现方法&#xff1a;1、x/y计算对应元素相除(矩阵点除)…

矩阵算法之矩阵乘法

矩阵算法在图像处理、神经网络、模式识别等领域有着广泛的用途。 在矩阵乘法中&#xff0c;A矩阵和B矩阵可以做乘法运算必须满足A矩阵的列的数量等于B矩阵的行的数量。 运算规则&#xff1a;A的每一行中的数字对应乘以B的每一列的数字把结果相加起来。 定义 注意事项 1、当矩阵…

MATLAB数值计算——矩阵运算乘法、除法、乘方

一、矩阵 矩阵是线性代数的基本单元矩阵含有M行N列数值矩阵中的元素可以是实数或复数矩阵相关的基本运算&#xff1a;加、减、内积、逆矩阵、转置、线性方程式、特征值、特征向量、矩阵分解 二、矩阵的运算 2.1、矩阵的乘法运算 运算符&#xff1a; * %矩阵乘法 …

第三章 矩阵运算

矩阵运算 生成矩阵如何生成数值矩阵 如何生成复数矩阵矩阵变换矩阵求值矩阵的特征值和特征向量稀疏矩阵 矩阵是数组的一种表现形式。 生成矩阵 两种方式&#xff1a;1.枚举式直接赋值法。2.用函数 如何生成数值矩阵 1.实数矩阵输入规则 所有元素都要放在“[ ]”中&#xff1…

两个元素的矩阵乘除法

矩阵的乘除法&#xff1a; 1 矩阵相乘&#xff0c;两个矩阵只有当左边的矩阵的列数等于右边矩阵的行数时,两个矩阵才可以进行矩阵的乘法运算 主要方法就是&#xff1a;用左边矩阵的第一行&#xff0c;逐个乘以右边矩阵的列&#xff0c;第一行与第一列各个元素的乘积相加&#x…

线性代数代码实现(六)矩阵除法(C++)

前言&#xff1a; 距离上一篇文章发布已经五天过去了&#xff0c;在这里先给一直等待的伙伴们说声抱歉&#xff0c;因为博主最近的事情很多&#xff0c;只好暂时停更&#xff0c;望大家理解&#xff01;上一篇文章中&#xff0c;我们介绍了求解逆矩阵的方法&#xff0c;我提到&…

Comsol 2020全套教学视频 教程入门讲解新手的福音

本视频为官方中文教学视频&#xff0c;给各位想学仿真的同学提供一点福音。本培训视频共有59个视频&#xff0c;本分享提供了前4节基础强化视频&#xff0c;如有需要剩下的各个板块的内容请评论区留言。 百度云链接&#xff1a;https://pan.baidu.com/s/16CdQY77zJ2akNpJxNTlvO…

COMSOL中文指导教程全集

个人体会&#xff0c;学习COMSOL&#xff0c;案例教学最有效&#xff0c;首先从官方案例入手&#xff0c;然后是几何建模教程、网格划分教程、后处理教程&#xff0c;学完这四个部分你基本就入门了。再结合自己的研究方向多学几个案例&#xff0c;基本就可以熟练了。 最有用的…

COMSOL安装教程

点击安装包路径下的setup.exe文件。COMSOL5.2\COMSOL_Multiphysics_5.2-SSQ\COMSOL_5.2_DVD的 setup.exe 选择简体中文 选择新安装COMSOL 5.2 允许用户协议&#xff0c;将许可证格式修改为“许可证文件”&#xff0c;然后点击浏览载入安装包中“_SolidSQUAD_”目录下的“Coms…

comsol_multiphysics入门教程

COMSOL Multiphysics简介 COMSOL的起源:COMSOL最先是Matlab的一个工具箱(Toolbox)&#xff0c;叫做Toolbox 1.0。后来改名为Femlab 1.0(FEM为有限元&#xff0c;LAB是取用的Matlab)&#xff0c;这个名字也一直沿用到Femlab 3.1。 发展至今&#xff0c;COMSOL当前有一个基本模块…

COMSOL建立孔隙尺度多孔介质结构模型教程 AbyssFish

首先获取一张多孔介质图片&#xff0c;这里就以COMSOL官网教程图片为例了。 通过软件将png格式的图片转换为DXF格式文件&#xff0c;也就是AutoCAD支持的文件&#xff1a; 下一步打开COMSOL软件建立二维模型&#xff0c;导入事先准备好的dxf模型&#xff0c;需要注意导入选项…

comsol学习中心:定义与材料选择

显示选择 在几何选项中的选择栏的第一个。 创建显示选择&#xff0c;选择你要选择的几何&#xff0c;这样&#xff0c;被选择的几何就被包含在一个标签中。 注意这里非几何实体层选择的是域 同样的也可以添加空气的。 这样就可以在选择的时候直接根据标签选择&#xff0c;不…