ARMv8架构

1. 背景

ARMv8架构_第1张图片

  • 从1995年,ARMV4(主要对应ARM7 family)开始到现在ARM RISC体系结构到现在已经演化了20多年。从设计一开始ARM就关注到了低功耗
  • 到2011年,所有的ARM-Cotex family都被设计成使用ARMV7架构。

1.1. 发展历程

  • ARM7:采用ARMV4架构
  • ARM9:ARMV4的变体
  • ARM11:ARMV4的变体
  • Cotex-A8:为了匹配不同的市场,ARMV7从Cotex-A8开始被划分为三种属性:Application-Profile、RealTime-Profile、Microcontroller-Profile
  • Cotex-A9:引入了多核
  • Cotex-A5:引入低功耗、低成本的网络互联
  • Cotex-A7:引入了出色的能效管理,可以延长手机的续航时间
  • Cotex-A15:引入了很多可选的扩展,如LPAE、虚拟化

1.2. 为何要引入ARMv8?

  • 考虑到ARMV7被市场广泛接受,以及形成的成熟的生态,因此后续的体系结构升级需要做到向后兼容;
  • 另外要让厂商能够愿意将软件系统迁移到新的体系结构,新的体系结构一定要有原体系结构不具有的优势
  • 为了解决旧有架构遗留的问题,提供一种更加清晰的架构,同时考虑到将来的发展趋势,采用一种全新的架构来实现

2. ARMv8架构基本特性

ARMv8架构_第2张图片

  • ARMV8目前只定义了Application profile
  • ARMV8定义了48bit符号虚拟地址和达到48bit物理地址
  • ARMV8采用了新的指令集A64
  • ARMV8兼容ARMV7的指令
  • A32和A64的转换只能发生在异常级别转换时

3. ARMv8两种执行状态

在ARMv8中引入了两种执行状态,如下:

  • AArch32
    • ARMv7的升级版
    • A32(ARM)和T32(thumb),两种指令集
    • ARMv8架构中,增加了一些指令
    • 传统ARM的特权模式
    • 通用寄存器位宽是32bit
    • 使用单一CPSR保存PE状态
    • 使用32bit的虚拟地址
    • 支持协处理器
  • AArch64
    • 通用寄存器位宽是64bit
    • 提供64bit PC,SP 和 ELR(exception-link-register)
    • 新的指令集-A64,固定32bit的指令集
    • 新的特权模式
    • 使用一组PSTATE保存PE状态
    • 不支持协处理器
    • 使用64bit虚拟地址

        AArch32(简称A32),兼容以前的arm指令,包括ARM和thumb指令,而AArch64,是全新的指令集,不兼容以前的arm指令。对于A64,使用64bit的虚拟地址,因此支持操作更大的memory空间。而pc也是64bit,因此可以在更大的memory空间上取指令执行。

        可以认为AArch64(简称A64),是全新的ARM指令,和以前ARM指令完全不一样,因此区别也是比较大的。推出全新的指令集,是为了设计出更高性能的CPU。

参考资料

ARMV8体系结构简介 - yooooooo - 博客园

ARMv8架构简介 | 骏的世界



 

你可能感兴趣的:(ARM,arm开发)