CPU中的ARM和X86架构是什么?这两者的区别又是什么?
1.定位不同
ARM处理器本身定位于嵌入式平台,应付轻量级、目的单一明确的程序,现在应用在移动设备上正是得心应手。x86定位于桌面和服务器,这些平台上很多应用是计算密集型的,比如多媒体编辑、科研计算、模拟等等。
2.架构不同
ARM处理器基于精简指令集(RISC)架构。指令集数量少就可以简化硬件逻辑的设计,减少晶体管数量,也就意味着低功耗。而且由于移动平台应用通常简单,程序的控制流不复杂,执行效率没有必要很高,所以流水线、分支预测等硬件逻辑都比较简单。这些都降低了晶体管总量。同时因为移动设备有电池的能源限制,ARM的电源管理是作为重要部分特别设计了的。比如移动设备的处理器在待机时通常只以极低的主频在运行,甚至可以暂时关闭闲置的核心、协处理器来降低功耗。
x86是复杂指令集(CISC)架构,存在很多机器指令,只为了高效地完成一项专门任务(比如MMX, SSE中的指令)。这就使得硬件的逻辑很复杂,晶体管数量庞大。为了高效地进行运算,x86架构有较长的流水线以达到指令级并行(ILP)。长流水线带来的一个弊端,就是当遇到分支时,如果预载入分支指令不是未来真实的分支,那么要清空整个流水,代价较高。所以x86为此还必须有复杂的分支预测机构,确保流水线的效率。再加上多级cache,支持超线程、虚拟化等等,x86的复杂度其实相当高。
X86手机功耗高发热大,因为没有专为X86平台开发的手机APP,你跑在X86手机上的APP全都是二次转换运行的,芯片一直高负载。
3.性能
X86结构的电脑无论如何都比ARM结构的系统在性能方面要快得多、强得多
4.扩展能力
X86结构的电脑采用“桥”的方式与扩展设备(如:硬盘、内存等)进行连接,而且x86结构的电脑出现了近30年,其配套扩展的设备种类多、价格也比较便宜,所以x86结构的电脑能很容易进行性能扩展,如增加内存、硬盘等。
ARM结构的电脑是通过专用的数据接口使CPU与数据存储设备进行连接,所以ARM的存储、内存等性能扩展难以进行(一般在产品设计时已经定好其内存及数据存储的容量),所以采用ARM结构的系统,一般不考虑扩展。基本奉行“够用就好”的原则
5.操作系统的兼容性
X86系统由微软及Intel构建的Wintel联盟一统天下,垄断了个人电脑操作系统近30年,形成巨大的用户群,也深深固化了众多用户的使用习惯,同时x86系统在硬件和软件开发方面已经形成统一的标准,几乎所有x86硬件平台都可以直接使用微软的视窗系统及现在流行的几乎所有工具软件,所以x86系统在兼容性方面具有无可比拟的优势。
ARM系统几乎都采用Linux的操作系统,而且几乎所有的硬件系统都要单独构建自己的系统,与其他系统不能兼容,这也导致其应用软件不能方便移植,这一点一直严重制约了ARM系统的发展和应用。GOOGLE开发了开放式的Android系统后,统一了ARM结构电脑的操作系统,使新推出基于ARM结构的电脑系统有了统一的、开放式的、免费的操作系统,为ARM的发展提供了强大的支持和动力。
在iOS 开发中涉及到的内容
iOS测试分为模拟器测试和真机测试,处理器分为32位处理器,和64位处理器,
模拟器32位处理器测试需要i386架构(iphone5,iphone5s以下的模拟器)
模拟器64位处理器测试需要x86_64架构 (iphone6以上的模拟器)
真机32位处理器需要armv7架构(iphone4真机/armv7)
真机32位处理器需要armv7s架构( ipnone5,iphone5c真机/armv7s)
真机64位处理器需要arm64架构 (iphone6,iphone6p以上的真机)
指令集 支持的设备
armv6 iPhone,iPhone3,iPhone3G及对应的iTouch(iPhone4代以前)
armv7 iPhone4,iPhone4S(iPhone4)
armv7s iPhone5,iPhone5C (iPhone5)
arm64/armv8 iPhone5S及以上设备(iPhone5s以上)
ARMv8 是 2011年11月推出的
此外
iPhone4S 即以上机型都能升级至 iOS 9
Architectures配置
指定工程被编译成可支持哪些指令集类型,而支持的指令集越多,就会编译出包含多个指令集代码的数据包,对应生成二进制包就越大,也就是ipa包会变大