ACP:Accelerator Coherency Port
ACP是一个可选的slave interface(接口),接口协议规范是ACE-Lite协议的子集。只有访问cacheable memory空间时,ACP slave接口允许外部master通过DSU的main memory interface(Master口)访问memory空间。ACP读和写的data bus是128bit,为了提高效率,每次访问以cache line长度为边界。为了保持cache的一致性,对于ACP口的访问,需要check cluster中的所有cache locations,即L3 cache和每个core的data caches。By default(默认情况下),ACP write访问(acccess)隐含stash requests to the L3 cache,即其他master想要把数据存在(stash)L3 cache中。或者,隐含的stash request can target the L2 cache of a selected core,即将数据存在指定的core的L2 cache中。
ACP interface properties for the DSU
ACP property | Supported by the DSU |
Port_Type | Accelerator |
Continuous_Cache_Line_Read_Data | Yes |
Multi_Copy_Atomicity | Yes |
Cache_Stash_Transaction | Yes |
Low_Power_Signals | Yes |
Ordered_Write_Observation | No |
others...... | No |
ACP slave口的实现是ACE-Lite协议的子集,ACP ACE-Lite子集在AMBA AXI and ACE Protocol Specification AXI3, AXI4, and AXI4-Lite, ACE and ACE-Lite中有有描述。在DSU中实现的ACP Slave port还有如下额外的限制:
——0b0111
——0b1011
——0b1111
0: One beat
3: Four beats
ACP支持的read传输类型有如下transfer size和length组合:
——ARLENS is 0 (one beat)。
——Address aligned to 16-byte boundary (ARADDRS[3:0] is 0b0000)。
——ARLENS is 3 (four beats)
——Address aligned to 64-byte boundary (ARADDRS[5:0] is 0b000000)。
ACP支持的写传输类型有如下transfer size和length组合:
——AWSTRBS,any combination of bytes,including no bytes,are valid.
——AWLENS is 0 (one beat).
——AWSNOOPS is WriteUniquePtl.
——Address aligned to 16-bytes boundary (AWADDRS[3:0] is 0b0000)
——AWSTRBS,any combination of bytes,including no bytes,are valid. When AWSNOOPS is WriteUniqueFull, all bytes must be valid.
——AWLENS is 3 (four beats).
——AWSNOOPS is WriteUniquePtl or WriteUniqueFull.
——Address aligned to 64-bytes boundary (AWADDRS[5:0] is 0b000000)
ACP支持如下的Cache stash传输类型的transfer size和length组合:
——AWSTRBS,all bytes are valid.
——AWLENS is 3 (four beats).
——AWSNOOPS is WriteUniqueFullStash.
——Address aligned to 64-bytes boundary (AWADDRS[5:0] is 0b000000)
——No W-Channel transfer.
——AWLENS is 3 (four beats).
——AWSNOOPS is StashOnceShared or StashOnceUnique.
——Address aligned to 64-bytes boundary (AWADDRS[5:0] is 0b000000)
在AWSTASHLPIDENS信号有效时,AWSTASHLPIDS[3:1]信号指示选定的core number,Stash requests可以指向选定core的L2 cache。AWSTASHLPIDS[0]信号用于thread number,但不会影响stash request。
如果requests不符合这些约束(restrictions),将会在RRESPS和BRESPS通道上产生SLVERR response。下表列出了支持的ACP transactions:
ACP supported transactions
Transaction | Notes |
ReadOnce | - |
WriteUniqueFull | - |
WriteUniquePtl | - |
WriteUniqueFullStash | - |
StashOnceUnique | - |
StashOnceShared | - |
ACP performance:
为了提高ACP性能,ACP transaction遵循如下指导(guidelines):
下表列出了ACP的可以接受outstanding能力:
ACP acceptance capabilities
Attribute | Value | Description |
Write acceptance capability | 33 | The ACP can accept up to 33 write transactions. |
Read acceptance capability | 33 | The ACP can accept up to 33 read transactions. |
Combined acceptance capability | 34 | The ACP can accept up to 34 transactions. There is no performance benefit above 32 outstanding transactions. |