ACE初探

本文介绍了ACE协议的基本概念,包括术语解释、一致性模型以及通道定义等内容。ACE协议能够支持多种一致性协议组件之间的连接,如MESI、ESI等。文章还详细讨论了ACE协议中的高速缓存状态管理规则以及具体的操作实例。
ACE-Step

ACE-Step

音乐合成
ACE-Step

ACE-Step是由中国团队阶跃星辰(StepFun)与ACE Studio联手打造的开源音乐生成模型。 它拥有3.5B参数量,支持快速高质量生成、强可控性和易于拓展的特点。 最厉害的是,它可以生成多种语言的歌曲,包括但不限于中文、英文、日文等19种语言

ACE协议初探

ACE可以支持不同一致性协议组件的一致性连接,如MESI、ESI、MEI、MOSEI。
支持包含多级缓存的缓存组件和非缓存组件。

1. ACE术语

caching master
initiating master
snooped master

downstream cache
local cache
peer cache
snooped cache

main memory
snoop filter

2. ACE一致性模型

在这里插入图片描述
ACE协议允许相同内存位置的副本驻留在一个或多个master component的本地cache中。ACE一致性协议通过强制在任何给定位置发生store时,仅存在一个副本,来确保所有主机在该位置观察到正确的数据。在每次store到某个位置后,其他主机可以为自己的本地缓存获取新的数据副本,从而允许存在多个副本。

如果cl是唯一副本,则主组件可以更改cl的值,无需通知系统中其他主组件。如果cl可能存在于另一个cache中,则主组件必须使用适当的事务通知其他高速缓存。

为了确定组件访问cache时是否需要操作,ACE协议定义了五个高速缓存状态,每个高速缓存状态基于cl的特性:在这里插入图片描述 cache state model:

  • Invalid: cl不在cache中
  • UniqueClean: 该cl仅保存在该cache中,并且相对于主存没有修改,组件可以在不通知其他高速缓存的情况下执行对该cl的store。
  • UniqueDirty: 该cl仅保存在该cache中·该cl相对于主存已被修改,并且该cache必须确保这些改变随后被通知给主存;组件可以在不通知其他cache的情况下执行对该高速缓存线的后续store。
  • SharedClean: 该cl可能与其他cache共享。并不知道该cl相对于主存有没有修改,但是该组件不负责更新主存。在对该cl执行store之前,组件必须通知其他cache。
  • SharedDirty: 该cl可能与另外一个cache共享。该cl相对于主存已经修改,且该cache必须确保随后这些改变需要通知给主存。在执行对该cl的store之前,组件必须通知其他cache。

rules里面需要注意:

  • 相对于主存更新的cl必须在一个cache中处于Dirty态。
  • 相对于主存已经更新且位于多个cache中的cl,只能在一个cache中处于Dirty状态。

3. Channel

ACE协议定义:

  • 在现有AXI4通道上的信号
  • 在ACE特定通道上的信号
  • 确认信号

3.1 对现有AXI4通道信号的修改

在这里插入图片描述
write data和write resp不需要额外添加。
只有支持WriteEvict事务的组件才需要AWUNIQUE信号。

3.2 ACE协议额外定义的信道

新通道:监听地址通道 snoop address channel;监听数据通道 snoop data channel;监听响应通道 snoop response channel;

AC通道是对cache主设备的输入,该cache主设备为侦听事务提供地址和相关的控制信息。

CR通道是cache 主设备的输出,其提供对侦听事务的响应。每个侦听事务都有与其相联系的单个响应。监听响应指示CD通道中相关联的数据传输是否是期望的。

CD通道是可选择的输出通道,用于将监听数据从主机传输出去。通常,当被侦听的master具有可供返回的数据副本时,read或者clean侦听事务就会发生这种情况。

在这里插入图片描述

3.3 ACE额外的确认信号

在这里插入图片描述
信号表明master完成了读或者写事务。

4. 示例

4.1 从shareable位置执行load操作

master组件从可共享位置load数据,master组件在其本地cache中还没有该位置的副本。

  1. master组件在AR读地址通道上发出一个读事务。
  2. 互联在AC(侦听地址通道)上将可共享地址传递到其他拥有私有$的组件,即被侦听的master组件。
  3. 现在会发生以下情况之一:
	1. 如果任何被侦听的master组件持有所请求的cl,则通过下列方式指示:
		1. 在侦听响应通道CR上响应
		2. 在侦听数据通道上向互联提供数据
		然后,互联将具有相关联的响应和数据提供给发起的master组件,通过R(读数据)通道 。
		  
	3. 如果没有被侦听的master组件保存所请求的cl
		互联向主存发起事务。与标准事务一样,读数据在读数据通道上被提供给master。
  1. master组件使用RACK信号表示该读事务已完成。

注意:如果发起事务的master或被侦听的cache都不负责在稍后的时间点将dirty的cl写回主存,则互联必须将数据传递到发起事务master的同时写回主存。如果发生这种情况,那么互联必须生成事务地址并写入从被侦听master组件返回的脏数据。

4.2 从shareable位置执行store操作

当master store数据到可共享位置时,它移除了该cl所有其他的拷贝。这确保了master组件在执行store时具有cl的唯一副本。当相应的cacheing master组件随后读该cl时,该位置的cl的新值被传播到其他的cache。

4.2.1 部分cl的store操作

仅存储部分cl的master组件必须在执行store之前获得该cl的当前副本。

  1. 发起master组件通过在读地址通道上发出ReadUnique事务来获得cl的预存储形式,并请求移除其他副本。
  2. 互联将事务传递给其他cache,通过侦听地址通道AC。
  3. 当可访问的情况下,被侦听的master组件使用CR通道响应事务,指示它有所请求的cl。它还通过侦听数据通道将cl提供给互联。
  4. 互联使用读数据通道将cl和响应一起传递给发起主机。

如果在侦听期间没有找到cl的副本,则执行对主存的读取。互联在读数据通道上将cl和响应传递给发起的master组件

  1. master组件执行store并使用RACK信号来表示事务已经完成

在cl保持unique时,可以执行ld和st而不需要将事务广播至其他高速缓存。

4.2.2 整个cl的store操作

存储整个cl不需要提前获得cl副本。

  1. 发起master组件在都地址通道上发起MakeUnique事务获取cl的唯一副本,这将删除cl的所有其他副本。
  2. 互联将事务通过侦听地址通道传递事务到其他cache。
  3. 被侦听的master组件使用侦听响应通道响应事务,表明该cl是不是被成功移除了。
  4. 通过读数据通道向发起的master组件提供响应。只有响应字段有效,不发生数据传输
  5. master组件执行store并使用RACK信号指示事务已经完成。
4.2.3 cl已经被缓存的store操作
  1. 发起master组件通过在读地址通道上发出CleanUnique事务来请求cl的唯一副本。这将移除其他该cl的副本并将任何脏副本写入主存。该事务不会将cl返回到发起master组件
  2. 互联通过侦听地址信道将事务传递到其他cache中,被侦听的master通过侦听响应信道响应事务,传递cl被成功移除以及脏cl被互联写回主存的信息。
  3. 被侦听的master通过侦听数据通道将脏cl提供给互联,然后互联构造事务将脏cl写回主存。
  4. 使用读数据通道向发起的master组件提供响应。
4.2.4 重叠store操作

如果两个master组件尝试同时对同一cl进行可共享存储操作,则互联确定事务发生的顺序。
master 2 使用它的侦听端口观察master1的操作。

如果主端2存储partial cache line,且已经有数据的copy,当2 observes到1的store操作,2必须移除copy,然后进行下述操作之一:

  1. master 2必须重新组织一个数据请求操作,然后重新完成store
  2. master 2可以将partial cache line写入主存,但不保留数据的copy,在后续重新获取这个cache line时需要重新取数据

您可能感兴趣的与本文相关的镜像

ACE-Step

ACE-Step

音乐合成
ACE-Step

ACE-Step是由中国团队阶跃星辰(StepFun)与ACE Studio联手打造的开源音乐生成模型。 它拥有3.5B参数量,支持快速高质量生成、强可控性和易于拓展的特点。 最厉害的是,它可以生成多种语言的歌曲,包括但不限于中文、英文、日文等19种语言

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值