Scalable Scatter-Gather DMA Intel® FPGA IP User Guide

ID 823097
Date 4/07/2025
Public
Document Table of Contents

3.8. Descriptor Handling

Descriptor represents the data structure holding the transaction configuration and pointers to the data buffer's physical addresses. The SSGDMA IP Agents act on the descriptor it received and upon completion it update the status back to the host. The SSGDMA supports two completion status update mechanism.
Table 9.  Status Update Mechanism
Method Description
Register Mode
  • The host processor gets the completion status by sending Memory Read operation to poll the Q_EXTRACT_POINTER register.
  • In PCIe* , the link latency is huge. It is very inefficient for the host processor to rapidly poll the status register in the hardware.
  • Lower hardware resource but slow in response.
Writeback mode [Default/Recommended]
  • The SSGDMA hardware writes-back the responder descriptor back to host responder memory.
  • The host processor performs local memory polling to get its status bypass the long latency hardware register read access.
  • The SSGDMA needs the second ring buffer for the responder writeback.
  • Higher performance, fast response, but result in larger hardware resource and required another host memory for responder ring buffer.
  • Upon every completion of the descriptor, there is option to enable Interrupt back to host processor. By default, the interrupt and write-back are enabled in Q_CTRL register and host processor can decide whether interrupt/write-back should be triggered based on the granularity level of each descriptor.
The data of a descriptor is 32 bytes (256 bits) in size. It has a 8 bits format field to indicate the descriptor format. The type of descriptors are as follows:
  • Link Descriptor
  • Data Descriptor
  • Responder Descriptor
Descriptor chain always starts with Link Descriptor and followed by Data Descriptors. Responder Descriptor is needed when write-back completion status update is enabled.
Table 10.  Format Field Definition for Descriptor
Name Width (Bit) Description
FORMAT_FIELD 8

Identifier for the descriptor format.

Valid values:
  • bit[1:0]:

    • 0 - Reserved. Set to 0.

    • 1 - Linked Descriptor

    • 2 - Data Descriptor

    • 3 - Responder

  • bit[2]*:
    • 0 - Host-to-Device (H2D)
    • 1 - Device-to-Host (D2H)
    Note: Not applicable for H2D MM Device Port
  • bits[5:3]:
    • 3'b000 - Reserved. Set to 0.

    • 3'b001 - Memory transfer
    • 3'b010 - Streaming Transfer

    • 3'b011 - Streaming Transfer - PTP (responder only)

    • 3'b100 - 3'b111 - Reserved

  • bits[7:6]: Reserved. Set to 0.