目录前言一、ACE接口信号定义二、AC通道特点2.1 AC通道(AC/CD/CR)特点2.2 CRRESP返回规则三、ACE一致性传输分类3.1 ACE一致性传输设置3.2 ACE一致性传输分类框图总结参考前言ACE基于AXI4协议用来保证多个ACE Master之间的内存读写一致性需求。典型应用是保证A53和A72两个cluster之间的内存一致性。总体上ACE协议包含5个部分。Coherence TransactionExclusiveDVMMBarrierSnoop Filter减少广播提高性能对于第一部分本文计划用两个章节来展开。第一个章节概述新增通道一致性传输分类第二个章节描述ARM一致性模型定义和传输的具体流程这里顺便提一下AXI4和AXI3协议的最大不同AXI4不支持LOCK没有WIDAxLEN由4b扩大到8b。没有WID是因为ARM早期的CPU(ARM v7/v8)本身不会发出AXI3写乱序请求而且它的NIC450也不支持写乱序。写乱序增加了系统的复杂性无论是Master/Slave IP还是SOC互联总线。一、ACE接口信号定义相对于AXI4 ACE接口信号有如下增强AR/AW多了三个信号AxDomain/AxBar/AxSnoopACE Master用来发起barrier和一致性传输AC/CD/CR外部总线用来Snoop ACE Master的cache或者invalidate/clean ACE Master的MMU TLBRESP[3:2], RRESP[3]表示IsShare(IS)RRESP[2]表示PassDirty(PD)WACK/RACKACE Master通过这2个信号通知外部总线它已经完成AR或者AW发起的一致性请求外部总线可以发起AC请求以避免ACE master内部cache一致性冲突。理论上如果等WACK/RACK才能发起新的AC请求意味着跟AHB一样OT为1效率会很低所以这部分应该通过特定逻辑来实现更高效的多OT流水操作基于ACE有2个精简版本ACE-LITE它只支持上面说的第一点。本身没有cache或者不支持cache一致性的Master使用ACE-LITE接口来invalidate/clean其他ACE Master的cacheACE-LITE DVMM, 相对于ACE-Lite多了AC/CR两个通道没有CD通道第3点和第4点也不需要。DVMM表示外部总线可以通过AC/CR来管理ACE Master内的MMU TLB二、AC通道特点2.1 AC通道(AC/CD/CR)特点在Snooped cache HIT情况下CD上才会传输数据是否传输外部总线可以在收到CRRESP[0]后得知CD上传输的数据固定是WRAP Burst数据量一定是cache line size传输的LEN也是固定值。以总线宽度128b64B cache line size为例Beat数固定为4。所以CDLAST看过去没有必要可能是留着以后扩展用AC/CD/CR的ordering模型CD/CR必须在AC接收之后才可以返回CD/CR之间没有顺序要求从实现简单性角度CD可以放在CR接收到之后再处理因为没有ID所以不支持乱序Snooped Master对于外部AC请求按序执行Initiating Master发出的AR/AW一致性请求经过外部总线后如果原先是不同ID比如在AR通道发起两个不同ID的一致性请求在其他Snooped Master的AC总线上有可能看到反序的AC请求ACE Master发出的AR/AW一致性请求外部总线广播给其它的Snooped Master如图中的Initiating Master AR/AW广播到Snooped Master0和Snooped Master1假定Snooped Master都命中并且返回DIRTY数据外部总线可以选取最早返回CRRESP的ACE Master作为返回Initiating Master的数据来源不需要考虑如何合并所有Snooped Master的数据因为理论上它们的返回数据必定一样。如果Snooped Master同时返回CRRESPAMBA没有明确定义只要按任意固定优先级选取一个即可对于返回Initiating Master的CRRESP[1]要考虑合并规则如下。所以返回Initiating Master的CRRESP可以在收到所有Snooped Master的CRRESP再返回所有Snooped Master的CRRESP[1] 或起来作为返回Initiating Master的CRRESP[1]有数据传输没有数据传输但是传输类型是CM(CleanShare/CleanInvalid/MakeInvalid见3.2分类)2.2 CRRESP返回规则对于数据是否传输用DT(CRRESP[0])来判断SPEC规定如下Snoop Transaction issued by Initiating MasterDT(CRRESP[0]) response by Snooped MasterInterconnect写回数据到MainMemory的条件Interconnect返回数据到Initiating MasterMakeInvalidMakeUniqueDT0不推荐DT1无需写回无需返回CleanUniqueCleanShareCleanInvalid假如DIRTYDT1假如Clean不推荐DT1假如PD(CRRESP[2]1)无需返回ReadOnce假如DIRTYDT1假如Clean 推荐DT1假如PD(CRRESP[2]1)必须返回ReadClean假如DIRTYDT1假如Clean 推荐DT1假如PD(CRRESP[2]1)必须返回ReadNoneShareDirty假如DIRTY, DT1假如Clean 推荐DT1假如PD IS(CRRESP[3])必须返回其他AR Snoop假如DIRTY, DT1假如Clean 推荐DT1无需写回必须返回对于IS(CRRESP[3])SPEC规定如下Snoop Transaction issued by Initiating MasterIS(CRRESP[3]) response by Snooped MasterMakeInvalidMakeUniqueIS0ReadUniqueCleanUniqueCleanInvalidIS0其他AR SnoopISx(可为0也可为1)三、ACE一致性传输分类3.1 ACE一致性传输设置MainMemory如果需要在多个cluster或者多个core之间共享需要在MMU页表属性中指定共享属性。在S设定为1后ARM CPU才能发出一致性请求外部总线再根据一致性请求作对应的处理。3.2 ACE一致性传输分类框图ACE一致性传输主要在ARM文档的C4/C5部分。C4是描述Initiating Master的行为和状态变化C5是描述Snooped Master的行为和状态变化。AxBar控制Barrier传输AxSnoop/AxDomain控制一致性传输AxDomain为2b00 or 2b11 AxSnoop为4h0为读或写NoSnoop(非一致性)传输AxDomain为2b01 or 2b10, AxSnoop控制一致性传输某些一致性传输也可以使用AxDomain为2b00下文会提及AxSnoop总共4比特理论上16种情况实际上只用了13种排除DVMM两种剩下11种编码4种是Partial line传输(白色斜体字所示)其余的都是Full line只有5种传输的AxDomain可以是Inner/Outer/None-sharable(黄色框)其他的必须是Inner/OuterAR传输类型大部分可以直接转到AC通道的同名传输有2个例外AR CleanUnique - AC CleanInvalidAR MakeUnique - AC MakeInvalidAW有同样情况AW WriteClean - AC CleanInvalidAW WriteUnique - AC MakeInvalidAR通道12种传输类型5大类由上到下如图所示。小框最右边是AxSnoop编码。None-Cacheable(虚线框)ReadSharable(RS)WriteSharable(WS)Cache Maintenance(CM)DVMM Message/DVMM SyncAW通道5种传输类型2大类由上到下None-Cachebale(虚线框)MainMemory Update(MU不会产生AC Snoop)AC通道10种传输类型ACE-LITE/DVMM传输类型如下最多8种一致性传输类型包括DVMM两种。总结本文介绍了ACE协议及其在保证多核处理器内存一致性中的应用。ACE基于AXI4协议新增了5个关键功能一致性事务、独占访问、DVM扩展、屏障操作和监听过滤器。文章详细解析了ACE接口的信号增强包括新增的AR/AW信号和精简版本ACE-LITE/DVMM的特性。重点阐述了AC通道的工作机制包括数据传输规则、响应合并策略和监听事务处理流程。最后文章系统分类了ACE的12种AR传输类型和5种AW传输类型并说明了它们在共享内存场景下的应用条件。这些机制共同构成了ARM多核架构下的高效一致性解决方案。参考AMBA AXI and ACE Protocal Specification(Version D)ARM Architecture Reference Manual(Version B)
深入解析ACE:多核内存一致性管理的核心协议(1)
发布时间:2026/7/4 4:43:54
目录前言一、ACE接口信号定义二、AC通道特点2.1 AC通道(AC/CD/CR)特点2.2 CRRESP返回规则三、ACE一致性传输分类3.1 ACE一致性传输设置3.2 ACE一致性传输分类框图总结参考前言ACE基于AXI4协议用来保证多个ACE Master之间的内存读写一致性需求。典型应用是保证A53和A72两个cluster之间的内存一致性。总体上ACE协议包含5个部分。Coherence TransactionExclusiveDVMMBarrierSnoop Filter减少广播提高性能对于第一部分本文计划用两个章节来展开。第一个章节概述新增通道一致性传输分类第二个章节描述ARM一致性模型定义和传输的具体流程这里顺便提一下AXI4和AXI3协议的最大不同AXI4不支持LOCK没有WIDAxLEN由4b扩大到8b。没有WID是因为ARM早期的CPU(ARM v7/v8)本身不会发出AXI3写乱序请求而且它的NIC450也不支持写乱序。写乱序增加了系统的复杂性无论是Master/Slave IP还是SOC互联总线。一、ACE接口信号定义相对于AXI4 ACE接口信号有如下增强AR/AW多了三个信号AxDomain/AxBar/AxSnoopACE Master用来发起barrier和一致性传输AC/CD/CR外部总线用来Snoop ACE Master的cache或者invalidate/clean ACE Master的MMU TLBRESP[3:2], RRESP[3]表示IsShare(IS)RRESP[2]表示PassDirty(PD)WACK/RACKACE Master通过这2个信号通知外部总线它已经完成AR或者AW发起的一致性请求外部总线可以发起AC请求以避免ACE master内部cache一致性冲突。理论上如果等WACK/RACK才能发起新的AC请求意味着跟AHB一样OT为1效率会很低所以这部分应该通过特定逻辑来实现更高效的多OT流水操作基于ACE有2个精简版本ACE-LITE它只支持上面说的第一点。本身没有cache或者不支持cache一致性的Master使用ACE-LITE接口来invalidate/clean其他ACE Master的cacheACE-LITE DVMM, 相对于ACE-Lite多了AC/CR两个通道没有CD通道第3点和第4点也不需要。DVMM表示外部总线可以通过AC/CR来管理ACE Master内的MMU TLB二、AC通道特点2.1 AC通道(AC/CD/CR)特点在Snooped cache HIT情况下CD上才会传输数据是否传输外部总线可以在收到CRRESP[0]后得知CD上传输的数据固定是WRAP Burst数据量一定是cache line size传输的LEN也是固定值。以总线宽度128b64B cache line size为例Beat数固定为4。所以CDLAST看过去没有必要可能是留着以后扩展用AC/CD/CR的ordering模型CD/CR必须在AC接收之后才可以返回CD/CR之间没有顺序要求从实现简单性角度CD可以放在CR接收到之后再处理因为没有ID所以不支持乱序Snooped Master对于外部AC请求按序执行Initiating Master发出的AR/AW一致性请求经过外部总线后如果原先是不同ID比如在AR通道发起两个不同ID的一致性请求在其他Snooped Master的AC总线上有可能看到反序的AC请求ACE Master发出的AR/AW一致性请求外部总线广播给其它的Snooped Master如图中的Initiating Master AR/AW广播到Snooped Master0和Snooped Master1假定Snooped Master都命中并且返回DIRTY数据外部总线可以选取最早返回CRRESP的ACE Master作为返回Initiating Master的数据来源不需要考虑如何合并所有Snooped Master的数据因为理论上它们的返回数据必定一样。如果Snooped Master同时返回CRRESPAMBA没有明确定义只要按任意固定优先级选取一个即可对于返回Initiating Master的CRRESP[1]要考虑合并规则如下。所以返回Initiating Master的CRRESP可以在收到所有Snooped Master的CRRESP再返回所有Snooped Master的CRRESP[1] 或起来作为返回Initiating Master的CRRESP[1]有数据传输没有数据传输但是传输类型是CM(CleanShare/CleanInvalid/MakeInvalid见3.2分类)2.2 CRRESP返回规则对于数据是否传输用DT(CRRESP[0])来判断SPEC规定如下Snoop Transaction issued by Initiating MasterDT(CRRESP[0]) response by Snooped MasterInterconnect写回数据到MainMemory的条件Interconnect返回数据到Initiating MasterMakeInvalidMakeUniqueDT0不推荐DT1无需写回无需返回CleanUniqueCleanShareCleanInvalid假如DIRTYDT1假如Clean不推荐DT1假如PD(CRRESP[2]1)无需返回ReadOnce假如DIRTYDT1假如Clean 推荐DT1假如PD(CRRESP[2]1)必须返回ReadClean假如DIRTYDT1假如Clean 推荐DT1假如PD(CRRESP[2]1)必须返回ReadNoneShareDirty假如DIRTY, DT1假如Clean 推荐DT1假如PD IS(CRRESP[3])必须返回其他AR Snoop假如DIRTY, DT1假如Clean 推荐DT1无需写回必须返回对于IS(CRRESP[3])SPEC规定如下Snoop Transaction issued by Initiating MasterIS(CRRESP[3]) response by Snooped MasterMakeInvalidMakeUniqueIS0ReadUniqueCleanUniqueCleanInvalidIS0其他AR SnoopISx(可为0也可为1)三、ACE一致性传输分类3.1 ACE一致性传输设置MainMemory如果需要在多个cluster或者多个core之间共享需要在MMU页表属性中指定共享属性。在S设定为1后ARM CPU才能发出一致性请求外部总线再根据一致性请求作对应的处理。3.2 ACE一致性传输分类框图ACE一致性传输主要在ARM文档的C4/C5部分。C4是描述Initiating Master的行为和状态变化C5是描述Snooped Master的行为和状态变化。AxBar控制Barrier传输AxSnoop/AxDomain控制一致性传输AxDomain为2b00 or 2b11 AxSnoop为4h0为读或写NoSnoop(非一致性)传输AxDomain为2b01 or 2b10, AxSnoop控制一致性传输某些一致性传输也可以使用AxDomain为2b00下文会提及AxSnoop总共4比特理论上16种情况实际上只用了13种排除DVMM两种剩下11种编码4种是Partial line传输(白色斜体字所示)其余的都是Full line只有5种传输的AxDomain可以是Inner/Outer/None-sharable(黄色框)其他的必须是Inner/OuterAR传输类型大部分可以直接转到AC通道的同名传输有2个例外AR CleanUnique - AC CleanInvalidAR MakeUnique - AC MakeInvalidAW有同样情况AW WriteClean - AC CleanInvalidAW WriteUnique - AC MakeInvalidAR通道12种传输类型5大类由上到下如图所示。小框最右边是AxSnoop编码。None-Cacheable(虚线框)ReadSharable(RS)WriteSharable(WS)Cache Maintenance(CM)DVMM Message/DVMM SyncAW通道5种传输类型2大类由上到下None-Cachebale(虚线框)MainMemory Update(MU不会产生AC Snoop)AC通道10种传输类型ACE-LITE/DVMM传输类型如下最多8种一致性传输类型包括DVMM两种。总结本文介绍了ACE协议及其在保证多核处理器内存一致性中的应用。ACE基于AXI4协议新增了5个关键功能一致性事务、独占访问、DVM扩展、屏障操作和监听过滤器。文章详细解析了ACE接口的信号增强包括新增的AR/AW信号和精简版本ACE-LITE/DVMM的特性。重点阐述了AC通道的工作机制包括数据传输规则、响应合并策略和监听事务处理流程。最后文章系统分类了ACE的12种AR传输类型和5种AW传输类型并说明了它们在共享内存场景下的应用条件。这些机制共同构成了ARM多核架构下的高效一致性解决方案。参考AMBA AXI and ACE Protocal Specification(Version D)ARM Architecture Reference Manual(Version B)