性能和资源使用情况 - 4.0 简体中文

QDMA Subsystem for PCI Express v4.0 产品指南 (PG302)

Document ID
PG302
Release Date
2022-05-20
Version
4.0 简体中文

性能

如需获取 QDMA 性能和详细分析,请参阅答复记录 71453

赛灵思提供了两个设计示例供您实验。标准设计示例仅用于功能测试。要生成用于性能分析的设计示例,使用以下 Tcl 命令来生成性能设计示例:

set_property CONFIG.performance_exdes{true} [get_ips qdma_0]

以下是赛灵思推荐的 QDMA 寄存器设置,此设置旨在提升性能。性能数值将根据系统和使用的操作系统而异。

  • QDMA_C2H_INT_TIMER_TICK (0xB0C) 设为 25。对应于 100 ns(对于 250 MHz 用户时钟,1 拍 = 4 ns)
  • C2H 触发模式设为 Counter(计数器)+ Timer(定时器),计数器设为 64,定时器则与往返时延相匹配。定时器的全局寄存器值应为 30,表示 3 μs。
  • QDMA_GLBL_DSC_CFG (0x250),max_desc_fetch = 6,wb_int = 5
  • QDMA_H2C_REQ_THROT (0xE24),req_throt_en_data = 1,data_thresh = 0x4000
  • QDMA_C2H_PFCH_CFG (0xB08/0xA80/0xA84)
    • evt_qcnt_th = (QDMA_C2H_PFCH_CACHE_DEPTH/2) - 2
    • pfch_qcnt = QDMA_C2H_PFCH_CACHE_DEPTH/2
    • num_pfch = 8。建议最小值为 8。如果环境内的活动队列数量较少,那么采用更高的值有助于提升性能。
    • pfch_fl_th = 256
  • QDMA_C2H_WRB_COAL_CFG (0xB50),
    • max_buf_sz = QDMA_C2H_CMPT_COAL_BUF_DEPTH (0xBE4)
    • tick_val = 25
    • tick_cnt = 5
  • TX/RX API 突发大小 = 64,环深度 = 2048。驱动程序应以 64 为单位成批更新 TX/RX PIDX。
  • PCIe MPS = 256 字节,MRRS >= 512 字节,启用扩展标签,启用宽松排序
  • 驱动程序将以 64 为单位成批更新完成 CIDX,从而在更新 C2H PIDX 前减少 MMIO 写入数量
  • 驱动程序应以 64 为单位成批更新 H2C PIDX,并通过更新来获取分散聚集列表的最后一个描述符。
  • C2H 上下文:
    • bypass = 0(内部模式)
    • frcd_en = 1
    • qen = 1
    • wbk_en = 1
    • irq_en = irq_arm = int_aggr = 0
  • C2H 预取上下文:
    • pfch = 1
    • bypass = 0
    • valid = 1
  • C2H CMPT 上下文:
    • en_stat_desc = 1
    • en_int = 0 (Poll_mode)
    • int_aggr = 0(轮询模式)
    • trig_mode = 5
    • counter_idx = 对应于 64
    • timer_idx = 对应于 3 μs
    • valid = 1
  • H2C 上下文:
    • bypass = 0(内部模式)
    • frcd_en = 0
    • fetch_max = 0
    • qen = 1
    • wbk_en = 1
    • wbi_chk = 1
    • wbi_intvl_en = 1
    • irq_en = 0(轮询模式)
    • irq_arm = 0(轮询模式)
    • int_aggr = 0(轮询模式)

为了获取最优 QDMA 串流性能,描述符环的包缓冲器应至少对齐到 256 字节。

描述符旁路模式中的性能

在描述符旁路模式下配置设计时,以上所有设置都适用。以下信息提供了在旁路模式下提升性能的建议。

  1. h2c_byp_in_st_sdi 端口中设置旁路时,QDMA IP 会为每个包生成状态写回。赛灵思建议在 32 位包或 64 位包中,对此端口执行一次断言有效。如无更多描述符需处理,则在最后一个描述符处将 h2c_byp_in_st_sdi 断言有效。此要求基于每个队列,并且适用于 AXI4-MM(H2C 和 C2H)旁路传输和 AXI4-Stream H2C 传输。
  2. 对于 AXI-Stream C2H 简单旁路模式,出于性能原因,dsc_crdt_in_fence 端口应设为 1。此建议假定用户设计已为每个队列合并信用值并且已将其发送至 IP。在内部模式下,请在 QDMA_C2H_PFCH_CFG_2 (0xA84) 寄存器中设置 fence 位。

资源使用情况

如需了解有关 QDMA 资源使用情况的信息,请参阅资源使用情况网页