PCIe XDMA

在这里插入图片描述
H2C Channel:Host-to-Card Channel(DMA读)
C2H Channel:Card-to-Host Channel(DMA写)

xdma基于描述符(‘descriptor’)实现主机内存和DMA子系统之间的数据搬移,这些描述符包含了数据传输的源、目的和数量信息。

DMA可以配置为具有被所有通道共享的单个AXI4主接口,或者每个通道启用一个AXI4-Stream接口。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
xdma ip还提供多达16条用户中断线用于向主机产生中断。

xdma支持的PCIe事务类型MRd32,MRd64,MWr32,MWr64,Msg(INT,Error) ,Cpl,CplD。(不支持IO和配置类型事务)

在内部,子系统可以配置为实现最多8个独立的物理DMA引擎(最多4个H2C和4个C2H)。这些DMA引擎可以映射到用户应用程序的单个AXI4-Stream接口或者共享的AXI4 MM接口。在AXI4 MM接口上,xdma子系统产生请求和预期cpl包。而AXI4-Stream接口仅为数据接口。

H2C通道产生对PCIe的读请求,并向用户侧提供数据或产生写请求。C2H通道等待用户侧数据,或者产生用户侧读请求,然后产生包含接收数据的PCIe写请求。

MSI中断:

如果启用了MSI或MSI-X,断言usr_irq_req的一个或多个位会导致产生MSI或MSI-X中断。
在断言usr_irq_req位之后,它必须保持断言状态,直到相应的usr_irq _ack位被断言,并且中断已由主机提供服务并清除为止。

我们之前说xdma是基于描述符这种结构来实现数据搬移的。那么描述符的内容取决于很多因素,包括为DMA引擎选择哪个用户接口。如果选择了AXI4-Stream接口,那么C2H传输不使用源地址字段并且H2C字段不使用目的地址。这是因为AXI4-Stream接口是一个不使用地址的FIFO类型接口。如果选择了AXI MM接口,那么对于H2C传输,源地址是PCIe地址,目的地址是AXI地址。C2H相反。

描述符其实是一组链表,这些描述符指定了DMA传输的源、目的和长度。描述符列表由驱动创建并且存储在host内存中。
在这里插入图片描述
Magic: 16’had4b. Code to verify that the driver generated descriptor is valid.
Nxt_adj: The number of additional adjacent descriptors after the descriptor located at the next descriptor address field.
Length: Length of the data in bytes.
Src_adr : Source address for H2C and memory mapped transfers. Metadata writeback address for C2H transfers.
Dst_adr : Destination address for C2H and memory mapped transfers. Not used for H2C stream.
Nxt_adr : Address of the next descriptor in the list.

  • 18
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
xdma stream是一种用于数据传输的技术,主要应用于FPGA(现场可编程门阵列)平台上。xdma stream基于片内总线,使得数据在不同模块之间能够快速且高效地传输。 xdma stream技术通过定义数据流的方式将传输数据的逻辑切分为多个模块,每个模块分别负责数据的输入、计算或处理以及输出。这种数据流管道的设计使得数据传输能够以流水线的方式进行,提高了数据的吞吐量和处理效率。 xdma stream的应用非常广泛,常见的应用包括数字信号处理、嵌入式系统、通信领域等等。例如,在数字信号处理领域,xdma stream可以用于音视频信号的采集、处理和输出,通过模块化的设计提高系统的性能和灵活性。在嵌入式系统中,xdma stream可以用于高速数据传输,例如图像处理、控制信号的传输等。在通信领域,xdma stream可以应用于数据的接收和发送,提高数据的传输速率和减少延迟。 除了在FPGA平台上,xdma stream还可以与其他技术结合使用,例如PCIe(外部总线接口),实现与计算机主机的数据交互。通过xdma stream技术,可以实现高速的数据传输和处理,提高系统的性能和效率。 总结来说,xdma stream是一种用于数据传输的技术,通过切分数据传输的逻辑为多个模块,使得数据能够以流水线的方式进行传输和处理。它在FPGA平台上有广泛的应用,并且可以与其他技术结合使用,提高数据传输的速率和系统的性能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值