棋子 · 2020年01月14日

AXI3写数据与相同的AWID交织

这与AXI3写数据交织有关。我了解当多个主服务器或单个主服务器访问一个从服务器时,当AWID = WID时,写数据交织是如何工作的,它可以生成多个未完成的事务。但是我对以下订单项有疑问

AXI协议规范的写入数据交错表示:

“一个仅能产生一个AWID值的主接口就以发出地址的相同顺序来生成所有写数据。但是,如果该从接口具有一个AWID值,则主接口可以将具有不同WID值的写数据交织在一起。写数据交织深度大于一”。

我的理解是:

考虑一个支持交织的主机,最多可以生成4个交织的事务(从机,A,B,C,D)给从机。在这里,A,B,C,D是WID值,而AWID是一个常数值(其中AWID不需要与WID值中的任何一个匹配,也不需要简单地绑定到零)。所有这些交易的地址让我们说Aa,Ba,Ca,Da。

例如,如果主设备以Ba,Ca,Aa,Da的顺序发布地址,则写入的第一个数据项应以相同的顺序。在这种情况下,有效顺序可以是B0,C0,C1,A0,A1,D0,B1,C2,A2,A3,D1 D2或仅是B0,C0,A0,D0,B1,C1,A1,D1。在这里,地址,WID及其顺序可以帮助从站识别在其本地地址空间中写入数据的位置。

请检查我的理解是否正确?您还可以提供一个用例,其中主服务器可以发布单个AWID和多个WID。

1 个回答 得票排序 · 时间排序
极术小姐姐 · 2020年01月14日

AXI协议通过使用ID将操作中使用的单独通道捆绑在一起进行操作。理解此功能是协议开始时描述的基本功能之一,因此,当您到达诸如此类的协议的更复杂的部分时,可以预期此功能已被理解并且不需要重复。

我同意完全隔离地使用此语句确实意味着您可能会进行多个W通道传输,且每个WID值均与单个AWID值相关,但是您不能在协议中后期使用一个语句并希望它被完全理解完全隔离。否则,要使每条声明都能够自我支持,就意味着在整个协议文档中重复基本概念。

如果系统遵循本声明中未详述的协议的所有其他要求,则可以使用写数据交织来实现系统,尽管您会注意到,已发现较新的AXI4协议已删除了写数据交织,因为发现大多数(也许甚至是全部) )设计没有使用它,因为它在源和目的地增加了复杂性。取而代之的是,设计人员更喜欢在源头缓存写数据,并且仅在所有数据都可用时才在连续传输的一次事务中发送它(无需在零星的写数据传输之间使用交错的数据总线带宽来进行交织)。

你的回答