【AXI】解读AXI协议乱序机制

article/2025/10/18 4:50:35
芯片设计验证社区·芯片爱好者聚集地·硬件相关讨论社区·数字verifier星球
四社区联合力荐!近500篇数字IC精品文章收录
【数字IC精品文章收录】学习路线·基础知识·总线·脚本语言·芯片求职·EDA工具·低功耗设计Verilog·STA·设计·验证·FPGA·架构·AMBA·书籍

在这里插入图片描述

解读AXI协议乱序机制

    • 一、写在前面
    • 二、解读AXI协议的乱序机制
      • 2.1 核心思想
      • 2.2 信号列表
        • 2.2.1 AXI3信号列表
        • 2.2.2 AXI4信号列表
        • 2.2.3 总结
      • 2.3 传输顺序
        • 2.3.1 读顺序
        • 2.3.2 写顺序
        • 2.3.3 读写操作的合作
      • 2.4 互连线中ID信号的扩展
      • 2.5 ID信号的位宽
      • 2.6 总结
    • 三、其他数字IC基础协议解读
      • 3.1 UART协议
      • 3.2 SPI协议
      • 3.3 I2C协议
      • 3.4 AXI协议

一、写在前面

AXI协议相较于UART,SPI,I2C来说,无论是内容还是难度都上了一个层级,放在一篇文章中进行解读未免篇幅过长,因此,有关AXI一些共性的、通用的问题,作者单独以前缀为【AXI】的标题进行小范围的串联,最终再汇总为深入浅出解读AXI协议,与从零开始的Verilog AXI协议设计,此为作者所思所考的推进顺序,单看【AXI】的每一篇,可能很多读者未免感到有些管中窥豹的疑惑,但若等作者更完此专栏再行观看,从头到尾进行阅读,应该就会有有茅塞顿开的收获与领悟。

二、解读AXI协议的乱序机制

2.1 核心思想

AXI协议中的乱序操作的本质,实际上是构建在Transaction ID这组信号的理解之上完成的,同时Transaction ID这组信号在AXI3与AXI4中的区别也很大,后文会提及。总而言之,通过加大设计上的实现难度,来支持AXI协议的乱序操作,增大面积的同时提高了操作效率,就是乱序操作的本质。

2.2 信号列表

2.2.1 AXI3信号列表

Transaction通道Transaction ID
写地址通路AWID
写数据通路WID
写回复通路BID
读地址通路ARID
读数据通路RID

主设备提供的ID号:AWID,WID,ARID.
从设备提供的ID号:BID,RID.

2.2.2 AXI4信号列表

Transaction通道Transaction ID
写地址通路AWID
写回复通路BID
读地址通路ARID
读数据通路RID

主设备提供的ID号:AWID,ARID.
从设备提供的ID号:BID,RID.

2.2.3 总结

在AXI4中,比较AXI3和AXI4中我们可以发现ARM公司取消了写数据通路的ID信号WID,换言之,在AXI4中,设计者不需要考虑write interleaving的情况什么叫write interleaving呢?

按照AXI3所言,每个transaction的写数据会有一个WID,不同WID的写数据transfer可以间插发送。但同一WID的写数据之间需要保序

举例如下:假如transaction ID1有a和b两个transfer,写transaction ID2有c和d两个transfer,transaction1和2依次发送。

假如在支持write interleaving的情况下,实际的transfer顺序可以是a c d b / a b c d(在AXI3中不同WID的写数据transfer可以间插发送。但同一WID的写数据之间需要保序)
但是在AXI4中,transfer的顺序不能出现a c d b的这种情况(即取消了WID进而导致的取消了write interleaving的支持所产生的影响)

因为AXI3协议很老了,因此后文中我们默认还是更多侧重AXI4协议讲解AXI的乱序机制和原则

2.3 传输顺序

2.3.1 读顺序

AXI的读顺序涉及到的信号为ARID和RID,ARID来自主设备,RID来自从设备,遵循的原则如下

  1. 对于主设备而言, 同一个ARID序号需要按照发射顺序返回读取的值不同的ARID序号可以以任意顺序返回值,允许read interleaving。
  2. 对于从设备而言,同样执行“相同ARID顺序返回,不同ARID乱序返回的”原则
  3. 从设备控制的RID需要和主设备控制的ARID值相匹配
  4. 衡量从设备乱序能力的参数为“read data reordering depth”,这个参数代表从设备可以储存多少未执行待排序的命令,若从设备永远按顺序执行(非乱序),read data reordering depth的值为1.

2.3.2 写顺序

AXI的读顺序涉及到的信号为AWID和BID,AWID来自主设备,BID来自从设备,遵循的原则如下

  1. 对于主设备而言, 同一个AWID序号需要按照发射顺序返回值不同的AWID序号可以以任意顺序返回值(这里返回的值是指写回复通路中的ID信号和response信号),不允许write interleaving。
  2. 对于从设备而言,同样遵循相同AWID顺序,不同AWID乱序的原则
  3. 从设备BID需要匹配主设备的AWID

2.3.3 读写操作的合作

对于AXI协议而言,读写通路分离,因此从协议规定的层面上,没有读写传输之间的约束关系,无论ID编号是否相同,读写操作不需要遵循顺序关系,乱序即可。

对于不支持outstanding操作的主设备而言,要么发送读请求,要么发送写请求,必须确保前一个请求完成后才能发送后一个请求,遵循的原则如下

  1. 对于读transaction而言,接收到最后一个读数据意味着可以开始写transaction
  2. 对于写transaction而言,接收到写回复的时候意味着可以开始读请求

同时对于支持outstanding操作的主设备而言,每一次的读写transaction操作都需要比较地址是否有覆盖,只有当不同的transaction间地址不相同时,才可以在不等待前一个信号完成时发送新的信号
原因:避免内存冲突的出现,outstanding下,transaction发送后默认是乱序执行的,假如outstanding中同时存在对相同地址的读写行为,先读后写和先写后读,读行为返回的值可能是不相同的,为了避免这种情况,在电路设计时,主设备transaction的发送需要比较是否有可能会造成冲突的地址信号。

2.4 互连线中ID信号的扩展

当一个主设备连接到互联网络时,互联网络可以额外标记“ARID,AWID,WID(AXI4中WID取消)”。通过这种形式,主设备就不需要知道有哪些ID值被其他主设备使用(即主设备之间不需要沟通ID号的使用问题),互联网络可以独一无二的标记从不同主设备送出的Transaction ID号,从设备同理,RID和BID也可以在互联网络中也可以拥有一些额外的位,以此来确定读数据和写回复信号传输具体传输到哪一个主设备上,因此Transaction ID这个信号在主设备界面的位宽、实际网络中传输的位宽、从设备界面的位宽是有可能不一样的

2.5 ID信号的位宽

协议中并没有规定Transaction ID的位宽是多少,但是推荐情况如下

  1. 主设备界面,Transaction ID为4 bits
  2. 互连网络的标记和填充,Transaction ID扩展为8 bits(4 bits额外)
  3. 从设备界面,Transaction ID为经互联网络扩展后的8 bits(默认4 bits,经扩展8 bits)

以上为推荐值,无规定值

2.6 总结

通过Transaction ID这组信号,AXI4协议可以完成自身的乱序机制,从AXI3到AXI4的进化中,write interleaving被取消了,大的方向下,AXI遵循着相同ID顺序执行,不同ID乱序执行的原则,同时从主设备-互联网络-从设备的连接中,Transaction ID可能会出现额外的位扩展。在原版的协议中,除了从读写行为的乱序模型分析外,还通过主从设备的角度讲述乱序模型的规定和原则感兴趣的读者可自行阅读

三、其他数字IC基础协议解读

3.1 UART协议

  • 【数字IC】深入浅出理解UART
  • 【数字IC】从零开始的Verilog UART设计

3.2 SPI协议

  • 【数字IC】深入浅出理解SPI协议
  • 【数字IC】从零开始的Verilog SPI设计

3.3 I2C协议

  • 【数字IC】深入浅出理解I2C协议

3.4 AXI协议

  • 【AXI】解读AXI协议双向握手机制的原理
  • 【AXI】解读AXI协议中的burst突发传输机制
  • 【AXI】解读AXI协议事务属性(Transaction Attributes)
  • 【AXI】解读AXI协议乱序机制
  • 【AXI】解读AXI协议原子化访问
  • 【AXI】解读AXI协议的额外信号
  • 【AXI】解读AXI协议的低功耗设计
  • 【数字IC】深入浅出理解AXI协议

http://chatgpt.dhexx.cn/article/a1eWuSE0.shtml

相关文章

AXI协议(数据传输结构)

AXI协议关于Data read and write structure的部分指出,在数据传输过程中,主要涉及三个问题: 窄位宽数据传输(Narrow transfers)地址非对齐传输(Unaligned Transfer)混合大小端传输(…

AXI总线代码详细整理(一)

目录 说明1. AXI 的时钟与复位1.1 时钟1.2 复位 2. 五个通道2.1 Write Address Channel2.2 Write Data Channel2.3 Write Response (B) Channel2.4 Read Address Channel2.5 Read Data (and Response) Channel 3 突发传输机制3.1 突发传输长度和宽度3.2 突发传输类型 说明 文字…

AXI总线详解完结篇

经过几个月的整理和发文,AXI总线详解系列正式迎来最终篇,内容基本涵盖了上一篇文章的全部内容。 所有文章的链接如下: 1、 AXI总线详解 2、AXI总线详解-总线和接口以及协议 3、AXI协议中的通道结构 4、AXI总线详解-AXI4读

AXI接口简介

此部分,有参考他人帖子的内容,加上自己的理解,感恩原作者 1、 AXI(Advanced eXtensible Interface)协议主要描述了主设备(Master)和从设备(Slave)之间的数据传输方式&…

AXI接口协议详解-AXI总线、接口、协议

转自:https://cloud.tencent.com/developer/article/1695010 AXI接口协议详解-AXI总线、接口、协议 AXI 总线 上面介绍了AMBA总线中的两种,下面看下我们的主角—AXI,在ZYNQ中有支持三种AXI总线,拥有三种AXI接口,当然用…

【AXI】解读AXI协议的低功耗设计

芯片设计验证社区芯片爱好者聚集地硬件相关讨论社区数字verifier星球四社区联合力荐!近500篇数字IC精品文章收录!【数字IC精品文章收录】学习路线基础知识总线脚本语言芯片求职EDA工具低功耗设计VerilogSTA设计验证FPGA架构AMBA书籍 解读AXI协议的低功耗…

AXI总线协议

0.绪论 AXI(Advanced eXtensible Interface)是一种总线协议,该协议是ARM公司提出的AMBA3.0中最重要的部分,是一种面向高性能、高带宽、低延迟的片内总线。AMBA4.0将其修改升级为AXI4.0。 AMBA4.0 包括AXI4.0、AXI4.0-lite、ACE4.0、AXI4.0-stream。 AXI4.0-lite是AXI的简化…

AXI总线学习------从零开始详细学-----------连载(2)axi protocol 通道分类

AXI总线学习连载(2) 鲁迅曾经说过: 学硬件,不是学哪里查哪里,有一些东西是必须系统的学的,不管是嵌入式还是FPGA,硬件学习的积累一定要是系统的。 我也曾经说过: 英文手册非常重要&#xff0c…

【AXI】解读AXI协议中的burst突发传输机制

芯片设计验证社区芯片爱好者聚集地硬件相关讨论社区数字verifier星球四社区联合力荐!近500篇数字IC精品文章收录!【数字IC精品文章收录】学习路线基础知识总线脚本语言芯片求职EDA工具低功耗设计VerilogSTA设计验证FPGA架构AMBA书籍 解读AXI协议中的burs…

【AXI】解读AXI协议事务属性(Transaction Attributes)

芯片设计验证社区芯片爱好者聚集地硬件相关讨论社区数字verifier星球四社区联合力荐!近500篇数字IC精品文章收录!【数字IC精品文章收录】学习路线基础知识总线脚本语言芯片求职EDA工具低功耗设计VerilogSTA设计验证FPGA架构AMBA书籍 解读AXI协议事务属性…

AXI总线知多少?

关注、星标公众号,精彩内容每日送达 来源:数字ICer 前言 本文针对秋招面试高频问题: AXI总线进行总结; 1.简介 AXI是个什么东西呢,它其实不属于Zynq,不属于Xilinx,而是属于ARM。它是ARM最新的总线接口&…

AXI学习

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 一、AXI中关于非对齐问题理解 AXI 协议支持地址非对齐的传输,允许突发传输的首字节地址,即起始地址与突发传输位宽不对齐。举个例子,总线位…

AXI 中文

AXI总线协议资料整理 第一部分: 1、AXI简介:AXI(AdvancedeXtensible Interface)是一种总线协议,该协议是ARM公司提出的AMBA(AdvancedMicrocontroller Bus Architecture)3.0协议中最重要的部分&a…

AXI协议

文章目录 前言一、通道信号二、AXI 握手机制三、读写Timing3.1 写数据3.2 读数据 四、通道间的依赖关系4.1 写地址通道( AW )4.2 写数据通道( W )4.2 写响应通道( B )4.3 读数据( R ) 五、信号详细解释5.1 ACLK和ARESETn5.2 Burst…

AXI 总线详解

综述 本文我们详解AXI,在ZYNQ中有支持三种AXI总线,拥有三种AXI接口,当然用的都是AXI协议。其中三种AXI总线分别为: AXI4:(For high-performance memory-mapped requirements.)主要面向高性能地…

AXI总线概述

AXI(Advanced eXtensible Interface)是一种总线协议,该协议是ARM公司提出的AMBA3.0中最重要的部分,是一种面向高性能、高带宽、低延迟的片内总线。AMBA4.0将其修改升级为AXI4.0。 AMBA4.0 包括AXI4.0、AXI4.0-lite、ACE4.0、AXI4.…

AXI协议学习笔记~~

AXI总线简介 ​  AXI属于AMBA(The ARM Advanced Microcontroller Bus Architecture)家族的一员,AXI协议在AMBA3.0版本中开始出现,并在后续的AMBA4.0,AMBA5.0中持续更新,对应为 AXI3,AXI4,AXI5。 ​   …

AXI 系列 之 AXI概述

目录 AXI简介 AMBA总线的演进图 AXI overriew AXI读写通道 AXI读取传输 事务 AXI 写入传输事务 AXI 概念解读 burst传输 FIXED模式下传输首地址后就可以不停传输数据吗? 突发传输不能跨4KB边界? 非对齐传输 复位期间对接口有如下要求&#xf…

AXI接口协议学习总结

AXI接口协议学习总结 下面将AXI接口协议学到的相关内容整理如下 一、AXI接口协议定义 AXI是Advanced eXtensible Interface的缩写,译为高级可扩展接口协议,是ARM公司提出的AMBA(Advanced Microcontroller Bus Architecture)高级…

【AXI】解读AXI协议双向握手机制的原理

解读AXI协议双向握手机制的原理 一、写在前面二、AXI 双向握手机制简介2.1 信号列表2.2 双向握手目的2.3 握手过程2.3.1 CASE1(READY信号先于VALID信号改变)2.3.2 CASE2(READY信号与VALID信号同时改变)2.3.3 CASE3(REA…