ARM架构

来源:互联网 发布:微博域名搜索 编辑:程序博客网 时间:2024/06/05 13:35
 

 

ARM 架构支持各种性能点上的实现。在许多细分市场中它都占有主要架构的地位。ARM 处理器架构简单,因而可以进行极小规模的实现,而小规模的实现则意味着设备的功耗可以很低。实现规模、性能和非常低的功耗是 ARM 架构的关键特性。

32 位 ARM 指令集基于 RISC 原理,其中包括:

  • 大型统一寄存器文件
  • 加载/存储架构,其中的数据处理操作只针对寄存器内容,并不直接针对内存内容
  • 简单寻址模式,所有加载/存储地址只通过寄存器内容和指令字段确定。

此外,ARM 架构还包括某些可改进代码密度和性能的其他主要特性:

  • 可组合使用转换与算术或逻辑运算的指令
  • 用于优化程序循环的自动递增和自动递减寻址模式
  • 加载和存储多个指令以使数据吞吐量最大化
  • 几乎所有指令都采取条件执行的方式以使执行吞吐量最大化。

这些对基本 RISC 架构的增强使 ARM 处理器可以实现较高性能、较小代码大小、较低功耗和较小硅面积的良好平衡。

ARM 架构一方面在各个实现之间保持了很高的兼容性,一方面也在不断地改进。

  • ARMv4T 架构引进了 16 位 Thumb® 指令集和 32 位 ARM 指令集,目的是在同一个架构中同时提供高性能和领先的代码密度。16 位 Thumb 指令集相对于 32 位 ARM 指令集可缩减高达 35% 的代码大小,同时保持 32 位架构的优点。
    示例处理器- ARM7TDMI®
  • ARMv5TEJ 架构引进了数字信号处理 (DSP) 算法(如饱和运算)的算术支持和 Jazelle® Java 字节码引擎来启用 Java 字节码的硬件执行,从而改善用 Java 编写的应用程序的性能。与非 Java 加速内核比较,Jazelle 将 Java 执行速度提高了 8 倍,并且减少了 80% 的功耗。许多基于 ARM 处理器的便携式设备中已使用此架构,目的是在游戏和多媒体应用程序的性能方面提供显著改进的用户体验。
    示例处理器 - ARM926EJ-S™ 和 ARM968E-S™
  • ARMv6 架构引进了包括单指令多数据 (SIMD) 运算在内的一系列新功能。SIMD 扩展已针对多种软件应用程序(包括视频编解码器和音频编解码器)进行优化,对于这些软件应用程序,SIMD 扩展最多可将性能提升四倍。此外,还引进了作为 ARMv6 架构的变体的 Thumb-2 和 TrustZone 技术。
    示例处理器 - ARM1176JZ 和 ARM1136EJ
  • ARMv6M 架构为低成本、高性能设备而设计,向以前由 8 位设备占主导地位的市场提供 32 位功能强大的解决方案。其 16 位 Thumb 指令集架构允许设计者设计门数最少却十分经济实惠的设备。始终如一的中断处理结构和编程器模式为所有 Cortex-M 系列处理器(从 Cortex-M0 处理器到 Cortex-M3 处理器)提供了完全向上兼容的途径。
    示例处理器 - Cortex™-M0和 Cortex-M1
  • ARMv7 架构向目标应用提供一组自定义配置文件。所有 Cortex 处理器都实现了 ARMv7 架构(实现 ARMv6M 的 Cortex-M 系列处理器除外)。所有 ARMv7 架构配置文件都实现了 Thumb-2 技术(一个经过优化的 16/32 位混合指令集),在保持与现有 ARM 解决方案的代码完全兼容的同时,既具有 32 位 ARM ISA 的性能优势,又具有 16 位 Thumb ISA 的代码大小优势。ARMv7 架构还包括 NEON™ 技术扩展,可将 DSP 和媒体处理吞吐量提升高达 400 个百分比,并提供改进的浮点支持以满足下一代 3D 图形和游戏物理学以及传统嵌入式控制应用程序的需要。Cortex 架构旨在横跨各种应用领域(从成本少于 1 美元的微控制器到功能强大,运行速度超过 2GHz 的多核设计)。此架构分为 3 种配置文件:
    • Cortex-A - 应用程序配置文件,它在 MMU(内存管理单元)、用于多媒体应用程序的可选 NEON 处理单元以及支持半精度、单精度和双精度运算的高级硬件浮点单元的基础上实现了虚拟内存系统架构。它适用于高端消费电子设备、网络设备、移动 Internet 设备和企业市场。
      示例处理器 - Cortex-A9,Cortex-A8 和Cortex-A5
    • Cortex-R - 实时配置文件,它在 MPU(内存保护单元)的基础上实现了受保护内存系统架构。它适用于高性能实时控制系统(包括汽车和大容量存储设备)。
      示例处理器 - Cortex-R4(F)
    • Cortex-M - 微控制器配置文件,可快速进行中断处理,适用于需要高度确定的行为和最少门数的成本敏感型设备。
      示例处理器 - Cortex-M3

软件兼容性

由于所有架构变体都具有通用的指令集,因此用户可通过 ARM 架构构建具有最佳兼容性的软件,从而保护其软件投资。ARM 架构受所有领先的软件工具供应商的支持,允许跨多个项目使用通用工具链,甚至允许交叉使用由这些工具链生成的代码,前提是这些项目和代码遵循 ARM 架构的应用程序二进制接口规格。

未来版本的 ARM 架构将保留此兼容性。