x86x64arm64的区别
在⽇常⼯作中也许我们会接触arm、x86、x64这⼏个名词,本篇整理⼀下它们的基础知识和区别。
⼿机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
电脑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架构对⽐
x86架构和arm架构区别
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向移动设备推出了**异构计算。这意味着处理器中的核可以有不同的性能和功耗。当设备正常运⾏时,使⽤低功耗核,⽽当你运⾏⼀款复杂的游戏时,使⽤的是⾼性能的核。