在日常工作中也许我们会接触arm64、x86、
这几个名词,本篇整理一下它们的基础知识和区别。
今天小编就带你深入了解CPU
的这两大架构:ARM
和X86
。
- ARM
ARM64
是CPU
构架的一种,通常用于手机、平板等CPU
,目前笔记本电脑
也会采用ARM64构架的CPU
。- x86
x86
是CPU
构架的一种,通常用于笔记本电脑、台式电脑、服务器、超级计算机
。
ARM
手机和PC端CPU
的ARM
架构
ARM
是一种CPU架构
,常用在手机上,套用一句话:ARM不生产芯片,只提供一个芯片设计的Idea
。
可以说,作为一家不生产芯片的芯片厂商,ARM
却在全球范围内支撑起了各种嵌入式设备
、智能手机
、平板电脑
、智能穿戴
和物联网设备
的运行,只是ARM
每年都会从构建上述设备体内的上亿颗处理器中“抽成”,严格遵守薄利多销的运营模式。
手机CPU
的主流品牌,绝大数是采用ARM架构
,当然现在ARM
也进军PC
市场。
- 高通骁龙(snapdragon)
- 三星(Exynos)
- 联发科(Helio)
- 华为(麒麟)
- 苹果 (A11,A7,A6)
- 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
X86
电脑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
从来只是设计X86
低功耗处理器,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
向移动设备推出了**异构计算。这意味着处理器中的核可以有不同的性能和功耗
。当设备正常运行时,使用低功耗核
,而当你运行一款复杂的游戏时,使用的是高性能的核
。