分类: Android平台
2015-03-03 15:15:08
在ARM公司提出64位处理器战略之初,各方人士均预测ARM准备抢占Intel的服务器市场,但随着智能终端设备的高速发展,ARM64却成为了高性能智能设备的主流选择,包括苹果与绝大多数Android设备厂商。目前为止,智能手机处理器前十大厂商已经全部购买ARM64授权,并且Intel开始代工生产ARM64芯片。可以预见,未来的智能终端一定是ARM64的天下。
当然,并不排除ARM64与Intel抢占服务器市场的可能性,尤其是“微服务器”市场。ARM64在注重功耗、网络能力的“微服务器”市场具有一定优势,DELL等厂商已经推出了基于ARM64的微型服务器。
首次实现ARM64的ARMv8-A架构在功能和性能上都有着32位ARM(ARMv7及更早)无可比拟的优势,同时ARMv8完全兼容32位的ARMv7。
从上图可以看出,基于ARMv8的Cortex-A53最高性能可以达到A7的1.7倍,Cortex-A53可以达到A15的近2倍。即使是运行原来相同的32位程序,ARM64处理器也远超过之前的32位处理器。
性能提升的同时,功耗并没有增加,反而有一定下降,如下图所示
ARMv8引入了64位架构,新增64位指令集,完全兼容ARMv7架构,同时对原有的功能进行了改进。
ARM64引入“Execution
State”的概念,用以区分64位架构模式和兼容的32位架构模式,分别是AArch64和AArch32两种模式。其中AArch64模式可以执行64位指令集A64,AArch32模式可以执行32位指令集A32和T32。
A64是一种支持AArch64执行状态的全新32位固定长度指令集,主要有以下特点:
A64与A32的主要差异有:
有一些针对 IEEE754-2008 的附加浮点指令:
A64 中的寄存器封装模型也不同于 A32,所有向量寄存器均为 128 位宽,Vx[127:0]:
支持AES。2个加密和2个解密指令。基于增强的SIMD 128位寄存器,2条加密/解密指令完成一轮AES算法。
支持SHA-1 and SHA-256。哈希算法持续在2个128位寄存器中进行,1条指令完成4个字的数据哈希,key的生成也可以通过指令加速。
与以往的处理器模式和特权级别定义不同,ARM64定义了EL0~EL3四个特权等级,级别从低到高。一个典型的应用如下图所示:
不同EL级别之间的转换必须遵循以下准则:
在AArch64模式下,处理能够访问更大范围的地址空间,不再仅仅是2^32B,地址可以用64位表示,但其中有效位是48位。也就是可以访问256T字节范围的物理地址。
在不同的EL级别下,MMU使用的地址转换机制不同,进而使用的地址转换控制寄存器也不同。MMU最关键的寄存器是TTBR(Translation Table Base Register)和TCR(Translation
Control Register)