我们常说的高通 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架构-维基百科

架构 别名 处理器家族
ARMv7 armeabi-v7a ARM Cortex-AARM Cortex-MARM Cortex-R
ARMv8 arm64-v8a Cortex-A35、Cortex-A50系列[14]、Cortex-A72、Cortex-A73

armv7和armv8的区别对照表

特性 ARM V8 ARM V7
指令集 64位指令集 AArch64, 并且兼容32位指令集 AArch32 32位指令集 A32 和16位指令集 T16
支持地址长度 64位 32位
通用寄存器 31个 x0-x30(64位)或者 w0-w30(32位) 15个, r0-r14 (32位)
异常模式 4层结构 EL0-EL3 2层结构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 深度学习基础 – 系统和硬件

x86 x64 arm64的区别的更多相关文章

  1. x86,x64,Any CPU区别

    https://blog.csdn.net/zuguangboy/article/details/51509670 1,即主程序(编译出来是exe文件的)是x86平台下编译的,而它所依赖的一个项目(或 ...

  2. X86 X64 X86_64 AMD64 区别

    X86:32位(一般i386是32位CPU的统称) X64:64位(代表CPU:IA64,现在几乎没有这样纯粹的64位CPU,都是兼容32位的64位CPU,如下) X86_64:兼容32位的64位CP ...

  3. 关于VS项目平台的x86,x64,Any CPU以及Debug和Release的区别

    相信对于很多刚接触打包程序的同志来说,关于x86,x64,Any CPU这三个项目平台,以及解决方案配置Debug和Release有什么区别?这个问题一定有许多的困惑,甚至不乏一些已经工作了很久的老程 ...

  4. 关于.NET编译的目标平台(AnyCPU,x86,x64) (转)

    关于.NET编译的目标平台(AnyCPU,x86,x64)(转) 今天有项目的代码收到客户的反馈,要求所有的EXE工程的目标平台全部指定成x86,而所有DLL工程的目标平台全部指定成AnyCPU . ...

  5. windows7内核分析之x86&x64第二章系统调用

    windows7内核分析之x86&x64第二章系统调用 2.1内核与系统调用 上节讲到进入内核五种方式 其中一种就是 系统调用 syscall/sysenter或者int 2e(在 64 位环 ...

  6. The Boot Process at a Glance x86/x64系统启动过程解析

    哥又来干体力活了.人肉翻译一下: The Boot Process at a Glance This section explains the boot process in sufficient d ...

  7. 数据库管理工具GUI - PremiumSoft Navicat Premium Enterprise 11.2.15 x86/x64 KEY

    转载自: 数据库管理工具GUI - PremiumSoft Navicat Premium Enterprise 11.2.15 x86/x64 KEY Navicat Premium(数据库管理工具 ...

  8. [原创] 【2014.12.02更新网盘链接】基于EasySysprep4.1的 Windows 7 x86/x64 『视频』封装

    [原创] [2014.12.02更新网盘链接]基于EasySysprep4.1的 Windows 7 x86/x64 『视频』封装 joinlidong 发表于 2014-11-29 14:25:50 ...

  9. SQL Server 2008 R2 Developer (x86, x64, ia64) – DVD (Chinese-Simplified)

    http://blog.sina.com.cn/s/blog_4aedf6370101j9tz.html 1. SQL Server 2008 R2 Developer (x86, x64, ia64 ...

  10. System Address Map Initialization in x86/x64 Architecture Part 2: PCI Express-Based Systems

      原文  http://resources.infosecinstitute.com/system-address-map-initialization-x86x64-architecture-pa ...

随机推荐

  1. Solon2 常用注解之 @Component 与 @Bean 的区别

    @Component 与 @Bean 设计的目的是一样的,都是注册 Bean 到容器里. 1.@Component 注解 及它的子类型 @Configuration,@Controller,@Remo ...

  2. .Net Core 多语言

    StartUp.cs public void Configure(IApplicationBuilder app, IWebHostEnvironment env) { app.UseEndpoint ...

  3. 用 WebRTC 打造一个音乐教育 App,要解决哪些音质难题?

    在去年疫情期间,在线教育行业获得了井喷式的发展,这背后的技术功臣非 RTC 莫属.本文将分享 RTC 技术在音乐教育场景下的实践经验. 作者| 逸城 审校| 泰一 音乐教育场景 - 在线陪练 2020 ...

  4. QA32增强

    一.QA32报表新增字段 二.QA32报表程序RQEEAL10 结构增加字段,该结构就是报表展示字段列的结构 表新增字段 找到报表展示的子例程 找到程序RQEEAL10,子例程中新增隐式增强 隐式增强 ...

  5. 在 Ubuntu 20.04 上安装 Visual Studio Code

    Visual Studio Code 是一个由微软开发的强大的开源代码编辑器.它包含内建的调试支持,嵌入的 Git 版本控制,语法高亮,代码自动完成,集成终端,代码重构以及代码片段功能. Visual ...

  6. JSP | JSP 动作详解

    原作者为 RioTian@cnblogs, 本作品采用 CC 4.0 BY 进行许可,转载请注明出处. 本篇学习自:C语言中文网,部分内容转载仅供学习使用. \[QAQ \] JSP 动作利用 XML ...

  7. AcWing 第五场周赛

    比赛链接:Here AcWing 3726. 调整数组 签到题 void solve() { int n; cin >> n; int x = 0, y = 1, c; for (int ...

  8. 素数算法补充之"筛法"

    国庆中秋双节,就不写太长的文章了. 补充和复习一下以前没写的素数区间筛法算法吧 部分证明过程来自OI wiki 素数筛法 如果我们想要知道小于等于 \(n\) 有多少个素数呢? 一个自然的想法是我们对 ...

  9. 第五届蓝桥杯(2014)C/C++大学A组省赛题解

    第一题.猜年龄 小明带两个妹妹参加元宵灯会.别人问她们多大了,她们调皮地说:"我们俩的年龄之积是年龄之和的6倍".小明又补充说:"她们可不是双胞胎,年龄差肯定也不超过8岁 ...

  10. vue-li3结合vantUI框架实现国际化语言切换

    vue-cli3结合vantUI框架实现国际化语言切换 https://blog.csdn.net/weixin_45045199/article/details/105838517?utm_medi ...