ARM Cortex-A 系列发展史:Cortex-A8 和 Cortex-A9

ARM Cortex-A 系列处理器的推出,可以说是 ARM 在高性能移动设备市场的一个重要突破。Cortex-A8 和 Cortex-A9 作为这一系列的早期代表,推动了智能手机、平板电脑等设备的技术发展。接下来,我会结合架构图,详细介绍这两款处理器的特点,以及 Cortex-A9 的改进历程。

Cortex-A8:开创性能新时代

Cortex-A8 是 ARM 在 2005 年推出的第一款 Cortex-A 系列处理器。它基于 ARMv7-A 指令集,是 ARM 进军高性能计算的开始。Cortex-A8 采用了双发射顺序执行架构,可以在每个时钟周期内处理两条指令,大大提高了执行效率。它还集成了 NEON SIMD 技术和 VFPv3 浮点单元,使其在多媒体和科学计算中表现出色。

图 1 ARM Cortex-A8架构图

Cortex-A8 的架构特点

  1. 13级整数流水线和10级 NEON 流水线:从架构图来看,Cortex-A8 的整数流水线长达 13 级,而 NEON SIMD 流水线稍短,为 10 级。这样的设计允许不同类型的指令在各自的流水线中并行执行,提高了处理效率。独立的 NEON 和整数流水线使得它能够同时处理多媒体和常规运算任务。
  2. 双发射顺序执行:Cortex-A8 的架构支持双发射,可以在每个时钟周期内从指令队列中选择最多两条指令进行并行处理。尽管是顺序执行,但通过双发射设计,增强了指令级并行性,提升了性能。
  3. 分支预测与执行回退:架构图显示 Cortex-A8 拥有基本的分支预测机制(如“Branch mispredict penalty”),这意味着它能够通过提前预测分支来减少流水线停顿,尽量提高指令执行的效率。

值得一提的是,ARM 在 Cortex-A8 的基础上,发展了一个更低功耗的版本——Cortex-A7。虽然同样采用顺序执行的设计,但在能效上更胜一筹,特别适合入门级设备,还能和其他处理器一起组成 big.LITTLE 架构,实现性能和省电的完美结合。

Cortex-A9:引入多核和乱序执行

Cortex-A9 于 2007 年发布,相比 Cortex-A8,做出了不少重要的改进。这款处理器不仅提升了整体性能,还通过多种架构优化,使得其在多任务处理和复杂应用场景中表现更加出色。

图 2  ARM Cortex-A9架构图

Cortex-A9 的架构特点

  1. 多核架构:Cortex-A9 是 ARM 的第一款多核处理器,最多可以扩展到 4 个核心。这意味着设备可以更好地处理多任务操作,性能提升非常明显。
  2. 乱序执行与多发射:与 Cortex-A8 的顺序执行不同,Cortex-A9 采用了乱序执行(out-of-order execution),可以根据资源和指令依赖的情况灵活安排任务,最大限度地利用处理器的执行单元。这一点在架构图中的“Out of order multi-issue with speculation” 模块有所体现,它能够灵活地从指令队列中选择可以立即执行的指令,让处理器在指令级并行性上有了非常大的提升。
  3. 分支预测与指令处理:Cortex-A9 在指令预取阶段有“Dynamic branch prediction”和“Return stack”,这意味着它具备更复杂的分支预测机制,能够动态调整预测,提高命中率,减少因分支误预测带来的延迟。
  4. 寄存器重命名与指令调度:通过“Register rename stage”,Cortex-A9 可以实现更灵活的指令重排序,支持乱序执行。此外,指令调度和分发模块能够同时处理多个指令,为多任务处理提供了极大便利。
  5. 改进的内存管理与缓存系统:相比 Cortex-A8,Cortex-A9 在缓存设计和内存管理上进行了多项改进。例如,架构图中的“Preload Engine (optional)” 模块可以提前加载数据,减少内存访问延迟。而“Memory management unit” 则保证了更高效的内存寻址和数据处理。

Cortex-A9 SMP 系统中的 SCU:管理缓存一致性

图 3 多处理器配置示例

Cortex-A9 的多核设计带来了一个新挑战:缓存一致性。为了解决这个问题,ARM 引入了 Snoop Control Unit (SCU),来确保多核系统中缓存的一致性。SCU 的作用包括:

  • 保持各核缓存一致:当一个核心更新了缓存行的数据,SCU 会通知其他核心进行同步更新或无效化,确保所有核心的数据保持一致。
  • 减少延迟和冲突:通过高效管理缓存访问,SCU 降低了内存访问的延迟,同时提高了系统的整体性能。

Cortex-A9 的多个修订版本

Cortex-A9 是一个长期改进的架构,它的生命周期里推出了多个修订版本,每个版本都做了不同程度的优化。ARM 用 rXpY 格式表示这些版本(比如 r4p0),rX 表示主要修订版本,pY 表示次要的补丁。

  1. 早期修订版本:最早的 Cortex-A9 版本主要是在基本的多核和乱序执行架构上下功夫,确保多任务处理和指令调度更加高效。
  2. 中期和后期修订版本:随着时间的推移,ARM 持续优化 Cortex-A9,比如改进了缓存系统、电源管理和频率控制。这些版本在工艺制程上也有所提升(如 40nm、28nm),可以在 2 GHz 以上的频率稳定运行,同时保持较低功耗。

这些持续的改进使得 Cortex-A9 在市场上有着长时间的活跃期,成为很多嵌入式设备的首选。

总结

Cortex-A8 和 Cortex-A9 是 ARM 处理器发展史上的两块重要基石。Cortex-A8 把高性能特性带入了 ARM 处理器,而 Cortex-A9 则在此基础上,进一步引入了多核和乱序执行架构,大幅提升了性能。通过多个修订版本的持续改进,Cortex-A9 不仅适应了从智能手机到车载系统等广泛的应用,还引入了 SCU 来解决多核缓存一致性的问题。后续的 Cortex-A7 则延续了 Cortex-A8 的设计思路,进一步优化功耗表现,为 ARM 在低功耗市场的扩展铺平了道路。

猜你喜欢

转载自blog.csdn.net/weixin_43126417/article/details/143167073