ACE 在 AXI 基础上新增 AC/CR/CD 三个通道,核心是为了解决多主设备缓存一致性 的监听事务传递问题 ------AXI 原生的 AW/W/B/AR/R 通道仅能完成 "主→从" 的点对点数据传输,无法支持 "互联→主" 的监听发起、"主→互联" 的监听响应与数据回传,而 AC/CR/CD 正是专门承载监听事务的独立通道,是实现基于监听(Snoop)的缓存一致性协议(如 MESI/MOESI)的底层基础。以下从协议痛点、通道分工、一致性事务流程、设计优势四个维度详细解析。
一、核心痛点:AXI 原生通道无法支撑缓存一致性监听
AXI 的核心是 "主→从" 的单向事务模型,其通道设计仅服务于数据读写的点对点确认 ,而 ACE 要实现的是多主设备共享缓存的全局一致性,这需要三类 AXI 无法提供的能力:
- 监听发起能力:互联需向所有主设备广播 "对某缓存行的操作请求"(如失效、读数据),AXI 无专门通道传递这类 "反向地址 + 控制";
- 监听响应能力:主设备需向互联反馈 "监听处理结果"(如是否持有缓存行、是否已失效),AXI 的 RRESP/BRESP 仅用于从→主的数传确认,无法承载主→互联的监听响应;
- 监听数据回传能力:主设备需向互联 / 其他主设备回传缓存行数据(如读监听时返回脏数据),AXI 的 R/W 通道被正向数传占用,无法高效承载反向数据;
- 时序与带宽隔离:监听事务的时序(如响应延迟)与正向数传完全独立,复用 AXI 通道会导致时序冲突、带宽抢占,破坏一致性与性能。
简言之,AXI 是 "点对点数据通道",ACE 是 "全局一致性通道",必须新增独立通道承载监听事务,补全一致性闭环。
二、AC/CR/CD 通道的核心分工与硬件映射
三个通道均为 "互联↔主设备" 的双向控制 / 数据通道,各自承担监听事务的不同环节,具体分工如下表:
| 通道 | 全称 | 方向 | 核心功能 | 硬件映射 | 关键信号示例 |
|---|---|---|---|---|---|
| AC | Snoop Address Channel | 互联→主设备 | 传递监听地址 + 控制(如失效、读、清洁),发起监听事务 | 监听请求总线,承载缓存行地址、监听类型(ACSNOOP)、域信息(ACDOMAIN) | ACVALID/ACREADY、ACADDR、ACSNOOP、ACDOMAIN |
| CR | Snoop Response Channel | 主设备→互联 | 反馈监听处理结果,确认是否完成(如已失效、持有脏数据) | 监听响应总线,承载响应类型(CRRESP)、数据有效性(CRDATAVALID) | CRVALID/CRREADY、CRRESP、CRTAG |
| CD | Snoop Data Channel | 主设备→互联 / 其他主 | 回传监听数据(如读监听时返回脏缓存行),可选通道 | 监听数据总线,承载缓存行数据、数据标签(CDTAG) | CDVALID/CDREADY、CDDATA、CDTAG |
核心逻辑:AC 发起监听,CR 确认处理结果,CD 回传数据 ------ 三者形成 "监听事务的完整闭环",与 AXI 正向事务(AW/W/B/AR/R)并行且隔离。
三、一致性事务中的通道协同:以典型场景为例
以下通过 ACE 的三类核心一致性事务,说明 AC/CR/CD 如何与 AXI 通道配合,实现全局一致性:
1. 读独占事务(Read Exclusive,主设备 A 获取独占权)
- 主设备 A 发 AR 通道(读独占请求)→互联;
- 互联通过AC 通道向所有主设备广播 "读监听"(ACSNOOP=ReadClean),请求回传缓存行并失效;
- 其他主设备处理后,通过CR 通道 向互联反馈 "已失效 / 无缓存行"(CRRESP=OKAY);若某主设备持有脏数据,通过CD 通道回传脏数据;
- 互联汇总 CR 响应 + CD 数据,通过 AXI-R 通道向 A 传数;
- A 处理完数据 + 监听响应后,发 RACK→互联,确认事务完成。
关键作用:AC 发起监听,CR 同步响应状态,CD 回传脏数据,确保 A 获得的是最新数据且无其他有效副本。
2. 写事务(Write No-Allocate,主设备 A 修改缓存行)
- 主设备 A 发 AW 通道(写请求)→互联;
- 互联通过AC 通道广播 "失效监听"(ACSNOOP=Invalidate),要求其他主设备失效该缓存行;
- 其他主设备通过CR 通道反馈 "已失效"(CRRESP=OKAY);
- 互联确认所有 CR 响应后,允许 A 通过 W 通道传数,从设备返回 BRESP;
- A 处理完 BRESP 后,发 WACK→互联,确认写事务全局生效。
关键作用:AC 发起失效,CR 确保全局失效完成,避免其他主设备持有旧数据。
3. 写回事务(WriteBack,主设备 A 替换脏缓存行)
- 主设备 A 发 AW 通道(写回请求)→互联,通过 W 通道向主存传脏数据;
- 互联通过AC 通道广播 "清洁监听"(ACSNOOP=Clean),确认无其他脏副本;
- 其他主设备通过CR 通道反馈 "无脏数据"(CRRESP=OKAY);
- 从设备返回 BRESP,A 通过CR 通道确认写回完成;
- 互联收到 A 的 WACK 后,释放缓存行资源,更新全局状态为 Clean。
关键作用:AC 确认全局清洁,CR 同步清洁结果,确保主存拿到唯一最新数据。
四、独立通道的设计优势:为何不复用 AXI 通道?
ACE 选择独立通道而非复用 AXI 信号,是从时序、带宽、扩展性、物理层四个角度的最优设计:
- 时序解耦:AC/CR/CD 的时序由 "监听处理节奏" 决定(如缓存状态更新、响应延迟),与 AXI 正向数传时序完全独立,避免相互阻塞;
- 带宽隔离:AXI 的 R/W 通道是高速数传通道,而 AC/CR/CD 是 "窄带宽控制通道"(AC/CR 为单周期信号,CD 为缓存行粒度突发),独立通道不占用正向带宽;
- 协议扩展性:后续扩展(如 ACE-Lite、多域一致性)可通过 AC/CR/CD 新增控制位(如 ACDOMAIN、CRTAG)实现,不影响 AXI 原生通道的兼容性;
- 物理层简化:片上互联的物理层中,控制通道与数据通道的驱动能力、时序约束不同,独立通道可降低布线复杂度,简化时序收敛;
- 原子性保障:监听事务的 "发起→响应→数据回传" 需原子执行,独立通道可通过 TAG 匹配(如 AC/CR/CD 的 TAG 一致)确保事务完整性,避免复用通道导致的交叉干扰。
五、与 RACK/WACK 的协同:一致性闭环的完整实现
AC/CR/CD 负责 "监听事务的传递",而 RACK/WACK 负责 "主设备向互联的事务最终确认",二者协同形成 ACE 的全局一致性闭环:
- AC/CR/CD 完成 "互联→主→互联" 的监听闭环;
- RACK/WACK 完成 "主→互联" 的事务完成确认;
- 互联基于 AC/CR/CD 的监听结果 + RACK/WACK 的确认,更新全局缓存状态,释放资源。
简言之,AC/CR/CD 是 "监听的血管",RACK/WACK 是 "事务的终点",二者共同支撑 ACE 的一致性核心。
六、总结
ACE 新增 AC/CR/CD 通道的本质,是将缓存一致性的监听机制 从 AXI 的点对点模型中剥离,用独立通道承载 "反向地址 + 响应 + 数据",解决 AXI 无法支撑的全局一致性问题。这三个通道不仅是协议层面的扩展,更是硬件设计中 "时序隔离、带宽优化、状态同步" 的关键保障,是 ACE 能够实现多主设备缓存一致性的底层基石。