Fork me on GitHub

ARM ACE 和 ACE-LITE 的含义

ARM的ACE(AXI Coherency Extensions)和ACE-Lite是ARM的AXI(Advanced eXtensible Interface)总线协议的扩展版本,用于实现多核处理器系统中的缓存一致性。

ARM提供了ACP和ACE-lite接口,这两个接口都有device coherency的功能。

ACP是DSU模块的slave接口,它的接口协议规范是ACE-lite协议的子集。ACP slave接口,允许接了该接口的外部master通过DSU的main memory interface(master接口)访问cachable memory空间。ACP的读和写接口宽度都是128bit,为了提高效率,每次访问以cache line为边界。为了保证cache一致性,每次ACP接口访问,都需要check cluster中的所有cache location,即L3 cache和每个core的L1/L2 cache。

ACE-lite是支持I/O coherency的接口。I/O coherency的意思是指device能snoop到CPU的cache、但CPU不能snoop到device内的cache。通常device会提供ACE-lite master接口,如GPU支持ACE-lite master接口。

ACE,可支持full coherency,device和CPU之间能互相snoop对方的cache。

下图说明了ACE和ACE-lite接口的使用:

通过CCI-400连接了ACE master接口的A15/A7 CPU 和 ACE-Lite master接口的GPU / DMAC / LCD controller等devices,

I/O coherency:Devices可以snoop处理器内部的cache,但处理器不能snoop device内部的cache。ACE-lite接口支持I/O coherency,不支持full coherency。如GPU的devices通常具备ACE-Lite master接口。

Full coherency:devices和processors,互相可以snoop对方的cache。ACE接口支持full coherency。CPU通常具备ACE master接口。

1. ACE(AXI Coherency Extensions)

ACE 是AXI总线的扩展,专门为支持多核处理器系统中的全缓存一致性而设计。它提供了缓存一致性协议,使多个CPU或其他缓存代理能够共享一致的内存视图。ACE支持以下功能:

  • 缓存一致性事务:通过无效化和清理等操作,使各个CPU核的缓存内容保持一致。
  • 共享数据操作:ACE支持多个主设备共享相同的内存区域,例如写入-写回缓存的内存行。
  • 带宽与性能优化:ACE允许通过减少不必要的内存访问和缓存失效次数来提高系统的性能和带宽利用率。

在多核处理器系统中,ACE允许不同核之间的缓存数据一致,从而避免了数据不一致带来的数据错误和性能开销。

2. ACE-Lite

ACE-Lite 是ACE的简化版本,只支持部分缓存一致性功能。它适用于不需要完全缓存一致性的设备或IP核,比如DMA控制器。ACE-Lite主要特点有:

  • 只读或只写访问:与ACE不同,ACE-Lite不支持完全缓存一致性事务,只支持读取和写入内存的操作。
  • 简化硬件设计:由于ACE-Lite只支持基本的内存访问,没有缓存一致性事务,因此它在硬件实现上比ACE更简单,适合资源受限的IP核使用。

总的来说,ACE适用于需要完整缓存一致性支持的多核系统,而ACE-Lite则适用于不需要完全一致性、性能需求较低的外围设备或IP核。

posted @ 2024-10-29 14:51  yooooooo  阅读(92)  评论(0编辑  收藏  举报