当前位置: 首页 > news >正文

NVMe协议简介之AXI总线更新

更新AXI4总线知识

AXI4总线协议

AXI4总线协议是由ARM公司提出的一种片内总线协议 ,旨在实现SOC中各模块之间的高效可靠的数据传输和管理。AXI4协议具有高性能、高吞吐量和低延迟等优点,在SOC设计中被广泛应用 。随着时间的推移,AXI4的影响不断扩大。目前,由Xilinx提供的大部分IP接口都支持AXI4总线,使得系统中不同模块之间的互连更加高效。这也让基于这些IP的开发变得更加快捷、方便和可靠。AXI4协议规定了数据传输的信号描述、通道特性和握手机制,并指定了事务的过程和属性,例如突发数据传输的数量、每次传输的字节大小、突发类型和保护类型 。

AXI4总线类型

AMBA AXI4协议规范中针对不同的应用场景,制定了三个不同类型的接口,其中包括AXI4-Full、AXI4-Lite以及AXI4-Stream。表1为三种AXI4总线的对比。

表1三种AXI4总线对比
在这里插入图片描述
AXI4-Full:主要用于高性能地址映射通信的需求,是面向地址映射的接口。由于读写地址通道是分离的,所以支持双向同时传输,支持突发传输、Outstanding以及乱序传输等模式,突发长度最大支持256。

AXI4-Lite:是AXI4-Full总线的简化版本,主要用于寄存器配置。与AXI4总线相似,AXI4-Lite也具有五个通道。但AXI4-Lite不支持高级功能如突发传输和乱序传输等,并且数据位宽也受到限制。由于不需要支持大多数高性能功能,AXI4-Lite所需的资源也较少。

AXI4-Stream:主要用于高速数据流数据传输。相比于其他总线协议,AXI4-Stream支持无限制的数据突发传输。相比其他总线协议,AXI4-Stream仅包含数据通道,因此在主从设备之间需要保持一对一的连接关系。这意味着在数据传输期间,通道上的所有传输都将是直接的,并且不需要等待传输控制信号。

AXI4总线架构

AXI4总线的架构包括五个独立的通道,分别是读地址通道、读数据通道、写地址通道、写数据通道和写响应通道。其中,地址通道用于携带控制消息,以描述被传输的数据属性;数据传输则使用写通道来实现Master到Slave的传输,而Slave使用写响应通道对写传输进行响应;读通道则用来实现数据从Slave到Master的传输。这些通道之间既相互分离又相互依赖。相互分离是指每个通道通过握手机制来完成单向的传输,传输源端使用VALID来表明地址/控制信号和数据有效,而目的端使用READY来表明自己能够接收信息。相互依赖则是指写回复必须在收到最后一个写数据后触发,而读数据必须在收到读地址之后开始。

写通道架构如图1所示,包括写地址、写数据和写响应三个通道。在一次写传输操作中,主机首先在地址通道上发送传输操作的地址、突发大小等信息,并将需要写入的数据放在写数据通道上等待从机接收。从机在接收到写地址通道的命令后,开始从写数据通道接收数据。当从机接收到本次写传输的最后一个数据后,在写回复通道向主句回复本次传输状态,表示传输操作结束。协议中规定写回复必须在收到最后一个写数据后触发,而读数据必须在收到读地址之后开始。在从机具有一定的缓存能力后,协议中规定写数据可在写地址操作之后发生。当缓存能力用尽时,从机会通过将READY信号拉低来暂停数据传输。
在这里插入图片描述
图1 NVMe写通道架构图

读通道的架构如图2所示。读通道的架构与写通道不同,只包括两个通道:读地址通道和读数据通道,没有读响应通道。这是因为在读操作中,响应信息可以通过读数据通道返回,从而节省了资源。在一次读传输操作中,主机首先通过读地址通道向从机发送传输操作的地址、突发大小等信息。从机接收到信息后,在读数据通道上将数据和响应信号一并传输给主机。
在这里插入图片描述
图2 NVMe读通道架构图

在一个系统中,多个主机与从机进行传输时,需要通过AXI互联IP(AXI Interconnect)来实现多对多的拓扑结构 ,如图3所示。Interconnect拥有多个 Master/Slave接口,并在内部基于轮询或者优先级策略对多路数据进行路由转发,可以实现系统内部的高效通信。
在这里插入图片描述
图3 多对多拓扑结构
相关视频见B站 用户名:专注与守望
链接:
https://space.bilibili.com/585132944/dynamic?spm_id_from=333.1365.list.card_title.click

相关文章:

  • YOLO机械臂丨使用unity搭建仿真环境,YOLO算法识别,Moveit2控制
  • Error creating bean with name *.PageHelperAutoConfiguration 异常解析
  • 高压电绝缘子破损目标检测数据集简介与应用
  • `docker run`、`docker start`、`docker exec` 区别
  • QT之头像剪裁效果实现
  • Invalid value type for attribute ‘factoryBeanObjectType‘: java.lang.String
  • 多维度健康护理:为进行性核上性麻痹患者护航
  • 前端面试准备-6
  • 网络攻防技术四:网络侦察技术
  • 线段树刷题记录
  • Langchian - 自定义提示词模板 提取结构化的数据
  • 每天掌握一个Linux命令 - hping3
  • Windows 账号管理与安全指南
  • 【深度学习新浪潮】以Dify为例的大模型平台的对比分析
  • Torch Geometric GCN训练心得
  • selenium-自动更新谷歌浏览器驱动
  • 从多巴胺的诱惑到内啡肽的力量 | 个体成长代际教育的成瘾困局与破局之道
  • NLP学习路线图(十九):GloVe
  • 香橙派3B学习笔记5:Linux文件系统分区_A/B系统分区
  • 【C++】23. unordered_map和unordered_set的使用
  • 国内高端品牌网站建设/免费发布推广平台
  • 动漫网站建设/北京首页关键词优化
  • 商业计划书ppt免费模板下载/aso应用优化
  • 女生自己做网站/聊城网站推广公司
  • 定制型网站制作明细报价表/培训机构退费纠纷一般怎么解决
  • python可以做网站吗/怎么做链接推广产品