ARMv8-A 架构是针对应用配置文件的最新一代 ARM 架构。ARMv8 这个名称用于描述整体架构,现在包括 32 位执行和 64 位执行。它引入了使用 64 位宽寄存器执行执行的能力,同时保留了与现有 ARMv7 软件的向后兼容性。
ARMv8-A 架构引入了许多变化,从而可以设计出性能显着提高的处理器实现。
大物理地址
这使得处理器能够访问超过 4GB 的物理内存。
64位虚拟寻址
这使得虚拟内存超出 4GB 限制。这对于使用内存映射文件 I/O 或稀疏寻址的现代桌面和服务器软件非常重要。
自动事件信号
这使得高能效、高性能的自旋锁成为可能。
更大的寄存器文件
三十一个 64 位通用寄存器可提高性能并减少堆栈使用。
高效的 64 位立即生成
对文字池的需求较少。
相对于 PC 的寻址范围较大
+/-4GB 寻址范围可在共享库和位置无关的可执行文件中实现高效数据寻址。
额外的 16KB 和 64KB 翻译颗粒
这减少了转换后备缓冲区(TLB) 丢失率和页面遍历深度。
新的异常模型这降低了操作系统和管理程序软件的复杂性。
高效的缓存管理
用户空间缓存操作提高了动态代码生成效率。使用数据缓存清零指令快速清除数据缓存。
硬件加速加密
提供 3 倍到 10 倍更好的软件加密性能。这对于小颗粒解密和加密非常有用,因为小颗粒解密和加密太小而无法有效地卸载到硬件加速器,例如 https。
加载-获取、存储-释放指令
专为 C++11、C11、Java 内存模型而设计。它们通过消除显式内存屏障指令来提高线程安全代码的性能。
NEON 双精度浮点高级 SIMD
这使得 SIMD 矢量化能够应用于更广泛的算法,例如科学计算、高性能计算(HPC) 和超级计算机。