ARM和X86的功耗控制区别很大,ARM是以低功耗出了名的,而X86 的高功耗是ARm的几十倍,不过在性能方面,ARM和X86是没有可比性的。ARM和X86原本是没有什么交集的,但是随着智能手机和智能平板的到来,ARM和X86也不可避免的发生碰撞,从两者架构优势到功耗控制都成了大家探讨的对象。
X86 与 ARM 的功耗控制差距如此之大完全是因为他们的市场定位不同导致的,X86的“复杂指令集”主攻的就是高性能市场,因为内部复杂的指令集和关注高性能的目的让它的功耗居高不下,而ARM的“精简指令集”主要针对的是对功耗敏感度比较高的移动端市场,Arm本身的设计就是将低功耗作为目标,X86 与 ARM本身的设计思路走的就不是同一个方向。
X86 与 ARM 的设计思路不同,也让它们表现出来的性能也有着巨大的差异,面向的设备也不一样。目前手机中的集成线路芯片都是采用了ARm架构作为核心基础,可以根据自身不同的需求去改变芯片的架构,而像英特尔、Amd则是采用的X 86架构,而x86的复杂指令系统大大提高了电脑的运算速度和处理效率,而ARm的性能只有x86的几十分之一。
虽然x86与ARm都试图弥补自己的短处学习对方的长处,但是无论进行怎样的优化,X86都无法实现Arm的低功耗,而ARm也没有办法和x86在性能上比拼的实力。由于两者最初的设计理念不同,现在想要进入对方的领域也并不容易,所以两者只能不断的通过各种尝试而缩小彼此之间的差异。
X86架构与ARM架构的区别:
1、含义不同:
X86使用CISC(Complex Instruction Set Computer,复杂指令集计算机)。
ARM使用RISC(Reduced Instruction Set Computer,精简指令集计算机),ARM英文全称Advanced RISC Machine。
2、产品特点:
X86追求性能最优,缺点是功耗大,不节能(和ARM对比)。
ARM追求低功耗(节能),缺点是采用精简指令集,导致编译器处理复杂,因此性能相对X86差。
3、所用机型不一样:
X86主要是PC机(Intel、AMD),X86服务器。
ARM主要是应用于移动设备(手机、平板电脑等嵌入式领域)。
4、典型代表:X86结构主要是Intel、AMD等PC电脑;ARM主要是移动终端,IBM的Power PC。
首先聊聊64位CPU,Intel和AMD早期采用了完全不同的策略。Intel为64位设计了全新的IA64架构。由于是原生的64位架构,性能更强,但是对传统X86应用兼容不佳。AMD则选择在原始32位X86指令集的基础上扩展64位X86-64指令集,并且将其命名为AMD64。在兼容原有X86的基础上,同时支持X86-64的扩展64位计算。由于市场对IA64架构反应冷淡,Intel最终按照AMD64的模式推出EM64T技术。类似于AMD64,EM64T包括两种工作模式,传统IA-32模式(传统32位模式)和IA-32e扩展模式(支持扩展64位计算)。最终,IA64逐步退出历史舞台,而采用AMD64/EM64T技术的处理器称为x86-64处理器,简称x64处理器。
对于64位Windows如何运行32位应用,选择有两种。第一,将32位系统库(C:\Windows\System32)移植,并直接在x64处理器(x86-64)上运行32位代码。第二,将32位系统库移植,转换为64位代码,随后在本机运行。WOW64(WindowsonWindows64)选择了后者,首先将32位系统库Windows\System32移植至Windows\SysWOW64,随后通过动态二进制编译器,将32位数据类型重新编组为64位,调用约定则自动封装(X86-64对X86指令集的扩展)。最终,无论是32位应用还是64位应用,全部通过调用同样的NTDLL完成与内核的交互,确保了与内核和设备的交互都可以按本地硬件的速度进行。
WOW64系统库(Windows\SysWOW64,移植自32位System32)
WindowsARM运行32位x86应用的方案与64位Windows运行32位x86应用类似。不同是,为了降低二进制翻译器的开销,WindowsARM采用CHPE(CompiledHybridPortableExecutable)技术,CHPE在X86DLL中嵌入相同的ARM64代码。唯一的不同是,为了32位x86应用交互,数据类型仍使用32位。64位据类型的封装则在WOW抽象层进行。通过CHPE技术,X86toARM64二进制编译器得以高效进行。最终的过程则与64位运行32位应用完全一致,不再赘述。整个开销取决于应用程序代码、系统代码和内核融合的速度。最终,x86应用将获得非常接近于处理器原生性能的运行速度。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)