GTS AXI Multichannel DMA IP for PCI Express* User Guide

ID 847470
Date 8/25/2025
Public
Document Table of Contents

A.1.1.1. H2D Data Mover

In Multichannel DMA mode, the Host-to-Device Data Mover (H2DDM) module transfers data from the host memory to local memory through the GTS AXI Streaming IP and the AXI-MM Manager/AXI-Stream Manager interface of the GTS AXI MCDMA IP.

There are two modes of usage for the H2DDM: queue descriptors fetching and H2D data payload transfer.

When used for descriptor fetching, the destination of the completion data is internal descriptor FIFOs where descriptors are stored before being dispatched to the H2DDM or D2HDM for actual data transfer.

When used for data payload transfer, the H2DDM generates MemRd TLPs based on descriptor information such as the PCIe address (source), data size, and MRRS value as follows:

  • First MemRd to the MRRS address boundary.
  • Following with MemRd’s of full MRRS size.
  • Last MemRd of the remaining partial MRRS.

The received completions are reordered to ensure the read data is delivered to the user logic in order.

When a descriptor is completed, that is, all read data has been received and forwarded to the AXI-MM Manager/AXI-Stream Manager interface, the H2DDM performs the housekeeping tasks that include:

  • Schedule MSI-X for a completed queue, if enabled.
  • Schedule Writeback Consumed Head Pointer for a completed queue, if enabled.
  • Update Consume Head Pointer for software polling.

MSI-X and Writeback are memory writes to the Host via the D2HDM to avoid a race condition due to out-of-order writes. Based on the updated status, software can proceed with releasing the transmit buffer and reuse the descriptor ring entries.