AXI多笔事务

news/2024/9/23 22:38:59/

1. AXI事务标识符

AXI协议包括AXI ID事务标识符。master可以使用这些标识符来识别必须按顺序返回的独立事务。

所有具有给定AXI ID值的事务必须保持有序,但对于不同ID值的事务则没有排序限制。这意味着一个物理端口可以通过充当多个逻辑端口来支持无序事务,每个逻辑端口都按顺序处理其事务。

通过使用AXI ID,master可以在不等待早期事务完成的情况下发出事务。这可以提高系统性能,因为它允许事务的并行处理。

注意

没有要求slave或master必须使用AXI事务ID。maser和slave可以一次处理一个事务,这意味着事务是按照它们被发出的顺序进行处理的。

slave需要在适当的BID(响应ID)或RID(读取ID)响应中反映从master接收到的AXI ID。

2. 事务ID

每个事务通道都有自己的事务ID。表格A5-1显示了这些指定的信号。

事务通道事务ID
写地址通道AWID
写数据通道(仅限AXI3)WIDA
写响应通道BID
读地址通道ARID
读数据通道RID

a. WID信号仅在AXI3中实现。 

注意 AXI4协议支持基于AXI ID事务标识符的扩展排序模型。

3. 事务排序

master可以使用AWID(写地址ID)和ARID(读地址ID)事务ID来指示其排序要求。事务排序的规则如下:

  • 不同master之间的事务没有排序限制。它们可以以任何顺序完成。
  • 来自同一master,但具有不同ID值的事务没有排序限制。它们可以以任何顺序完成。
  • 对于具有相同ARID值的一系列读事务,必须按照master发出地址的顺序返回数据传输。
  • 对于具有相同AWID值的一系列写事务,必须按照master发出地址的顺序完成数据传输。
  • 使用相同值的AWID和ARID读写事务之间没有排序限制。
  • 第A5-82页的“互连使用事务标识符”描述了AXI总线如何扩展由AXI master和slave发出的事务ID值。

3.1 读排序

在master接口处,具有相同ARID(读地址ID)值的事务返回的读数据必须按照master发出地址的顺序到达。具有不同ARID值的读事务数据可以以任何顺序到达,不同ARID值的事务的读数据可以交错到达。

slave必须按照接收到地址的顺序返回具有相同ARID值的一系列事务的读数据。在一系列具有不同ARID值的读事务中,slave可以以任何顺序返回读数据,而不管事务到达的顺序如何。

slave必须确保任何返回数据的RID(读数据ID)值与它响应的地址的ARID值相匹配。

互连必须确保针对不同slave的一系列具有相同ARID值的事务的读数据,按照master发出地址的顺序被master接收。

读数据重排序深度是在slave中可以重新排序的待处理地址的数量。按顺序处理所有事务的slave具有一个读数据重排序深度为一。读数据重排序深度是一个静态值,必须由slave的设计者指定。

注意 没有机制让master可以确定slave的读数据重排序深度。

3.2 正常写排序

除非master知道slave支持写数据交错,否则它必须按照发出事务地址的相同顺序发出写事务的数据。

注意

  • 没有机制让master可以确定从设备是否支持写数据交错。在AXI4中,不支持写数据交错。
  • 大多数slave设计不支持写数据交错,因此必须按照接收地址的顺序接收写数据。

如果互连将来自不同master的写事务组合到一个slave,它必须确保按地址顺序转发写数据。

3.3 AXI3写数据交错

警告 AXI4去除了对写数据交错的支持。在AXI4中,一个事务的所有写数据必须在写数据通道上连续传输。

使用写数据交错时,slave接口可以接受具有不同AWID(写地址ID)值的交错写数据。写数据交错深度是从一个slave可以接受交错数据的地址数量。

当访问支持写数据交错的slave时,使用相同AWID的不同事务的写数据不能交错。

注意   没有机制可以让master或任何其他AXI组件确定slave是否支持写数据交错。同样,也没有机制可以确定slave的写数据交错深度。

对于支持写数据交错的slave,它接收每个事务的第一个数据项的顺序必须与它接收事务地址的顺序相同。

注意   如果两个具有不同AWID值的写事务访问相同或重叠的地址,那么AXI3规范没有定义这些访问的处理顺序,必须有一个更高级别的协议确保事务处理的正确顺序。

使用单一AWID值生成写数据的master接口会按照它发出写地址的顺序生成所有写数据。然而,如果slave接口的写数据交错深度大于一,master接口可以交错具有不同WID(写数据ID)值的写数据。

为了避免可能的死锁,支持写数据交错的slave接口必须连续接受交错的写数据。它绝不能为了改变写数据的顺序而暂停接受写数据。

 写数据交错的使用模型 

写数据交错可以防止互连将多个写数据流合并到同一个slave时发生阻塞。例如,互连可能会将来自慢速源的写数据流与来自快速源的另一个写数据流合并。通过交错这两个写数据流,互连可以提高系统性能。

对于大多数可以控制写数据生成的master,写数据交错并不是必需的。这样的master可以按照它生成地址的顺序生成写数据。然而,一个正在从不同速度的不同源传输写数据的master接口可能会交错这些源,以最大限度地利用互连。

3.4 读写交互

AXI协议对读写事务之间没有排序限制。它们可以以任何顺序完成,即使读事务的ARID(读地址ID)值与写事务的AWID(写地址ID)值相同。

如果master需要在读写事务之间建立特定的关系,那么它必须确保在发出后续事务之前,早期的事务已经完成。master只能在以下情况下认为早期事务已经完成:

  • 对于读事务,接收到最后的读数据。
  • 对于写事务,接收到写响应。

发送完事务的所有写数据不应被视为该事务完成的指示。 

注意    通常,在写入外设时,master必须等待早期事务完成后才能在必须有序的读写事务之间切换。

对于内存的读写,master可能会实现对未完成事务的地址检查,以确定新事务是否可能针对相同或重叠的内存地址。如果读写事务不重叠,那么master可以在不等待早期事务完成的情况下启动新事务。

3.5 互连使用事务标识符

当master连接到互连时,互连会向ARID、AWID和WID(写数据ID)标识符添加对该master端口唯一的附加位。这有两个作用:

  • master不需要知道其他master使用的ID值,因为互连通过在原始标识符后附加master编号,使每个master使用的ID值唯一。
  • 在slave接口处的ID标识符宽度比在master口处的ID标识符宽度大。

对于读数据,互连使用RID(读数据ID)标识符的附加位来确定读数据是针对哪个master端口的。互连在将RID值传递给正确的master端口之前,会移除这些附加位。

对于写响应,互连使用BID(写响应ID)标识符的附加位来确定写响应是针对哪个master端口的。互连在将BID值传递给正确的master端口之前,会移除这些附加位。

3.6 事务ID字段的宽度

事务ID字段的宽度是硬件设计定义的。然而,本规范推荐以下事务ID字段宽度:

  • 对于master组件,实现多达四个字节的事务ID字段。
  • 对于互连中的master端口号,实现多达四个字节的事务ID字段的附加位。
  • 对于slave组件,实现支持八个字节的事务ID字段。

对于只支持单个有序接口的master,将事务ID字段输出绑定到一个恒定值是可以接受的,例如绑定到零。

对于不使用排序信息并且按顺序处理所有事务的slave,可以在不改变slave的基本功能的情况下添加事务ID功能。

4. 去除写交错支持

如前所述,在AXI4协议中去除了对写数据交错的支持。在AXI4中,一个事务的所有写数据必须在写数据通道上连续传输。 这意味着WID(写数据ID)在AXI4中不被支持

4.1 去除WID

去除写交错使得WID信号上传递的信息变得多余,所有写数据必须与相关的写地址顺序相同。 为了减少接口的引脚数量,AXI4去除了WID信号。

4.2 遗留问题考虑

大多数AXI3 master不支持写交错,并且不需要更新以满足AXI4对无写交错的要求。

任何支持写交错的AXI3主设备必须已经支持一种方法来配置写交错深度,将其设置为1,以支持与不支持写交错的slave的操作。 任何此类AXI3 master必须将其写交错深度配置为1,以与AXI4兼容。 任何AXI3 slave都可以接受非交错的写数据,因此对于AXI3 slave没有遗留问题考虑。

注意 任何需要WID信号的AXI3组件都可以从AWID(写地址ID)值生成此信号。


http://www.ppmy.cn/news/1433934.html

相关文章

如何自动监控WordPress网站的运行状态

近来有不少Hostease的客户来咨询关于监控网站在线情况的方法,确实,尽管我们采取了各方面的措施来维护和保护WordPress网站,网站依然有可能由于一些不可控的原因关闭,这种情况往往事发突然,如果没有提前做好准备&#x…

多模态模型

转换器成功作为构建语言模型的一种方法,促使 AI 研究人员考虑同样的方法是否对图像数据也有效。 研究结果是开发多模态模型,其中模型使用大量带有描述文字的图像进行训练,没有固定的标签。 图像编码器基于像素值从图像中提取特征,…

计算机网络物理层思维导图+大纲笔记

大纲笔记: 物理层的基本概念 解决如何在连接各种计算机的传输媒体上传输数据比特流,而不是具体的传输媒体 主要任务 确定与传输媒体接口有关的一些特性 机械特性 电气特性 功能特性 规程特性信道上传送的信号 基带信号 来自信源的信号,直接表…

pg 数据库,sql 语句获取两个时间字段的间隔,并且赋值给新字段

目录 1 问题2实现 1 问题 pg 数据库,sql 语句获取两个时间字段的间隔,并且赋值给新字段 2实现 如果你在 PostgreSQL 数据库中需要计算两个时间字段的差,并将结果(间隔小时)赋值给另一个字段,你可以使用 …

增加PyQt5界面的交通流量预测(模型为CNN_GRU,CNN_BiGRU_ATTENTION,LSTM,Python代码)

1.效果视频:增加PyQt5界面的交通流量预测(模型为CNN_GRU,CNN_BiGRU_ATTENTION,LSTM)_哔哩哔哩_bilibili) 2.三个模型和数据集的介绍 交通流量预测(python代码,压缩包中带有数据,CN…

1688商品详情API接口获取商品信息指南

在电子商务领域,API(应用程序编程接口)扮演着至关重要的角色,它允许开发者与平台进行交互,获取所需的数据。1688作为中国领先的B2B电子商务平台,提供了丰富的API接口,使得第三方开发者能够方便地…

【office安装错误1402或1406】

office安装错误1402或1406 错误如图 解决方法 打开autoremove,点击扩展,输入1402,点击搜索 等待修复成功,再尝试安装office 软件每周六选择其他登录方式可以免费使用

纳米软件ATE测试系统如何测试电源管理芯片?

随着国产化电源管理芯片的普及和应用,电源芯片测试备受关注,对其测试要求也越来越严格。那么,安全自主可控的国产化测试软件ATECLOUD是如何测试4644芯片及其它电源管理芯片呢? 在纳米软件与某科技公司合作时,需要测试4…