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

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

Document ID
PG302
Release Date
2023-10-18
Version
5.0 简体中文

性能

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

AMD 提供了两个设计示例供您实验。标准设计示例仅用于功能测试。要生成用于性能分析的设计示例,使用以下 Tcl 命令来生成性能设计示例:
set_property CONFIG.performance_exdes {true} [get_ips qdma_0]

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

表 1. QDMA 性能寄存器
地址 名称 字段 字段值 寄存器值
0xB08 PFCH CFG
  • evt_pfch_fl_th[15:0]
  • pfch_fl_th[15:0]
  • 256
  • 256
0x100_0100
0xA80 PFCH_CFG_1
  • evt_qcnt_th[15:0]
  • pfch_qcnt[15:0]
  • 60
  • 60
0x3c_003c
0xA84 PFCH_CFG_2
  • fence
  • rsvd[1:0]
  • var_desc_no_drop
  • pfch_ll_sz_th[15:0]
  • var_desc_num_pfch[5:0]
  • num_pfch[5:0]
  • 1
  • 0
  • 0
  • 1024
  • 15
  • 8
0x8040_03C8
0x147C PFCH_CFG_3
  • rsvd[4:0]
  • var_desc_fl_free_cnt_th[8:0]
  • var_desc_lg_pkt_cam_cn_th[6:0]
  • 0
  • 256
  • 0
0x8000
0x1484 PFCH_CFG_4
  • glb_evt_timer_tick[14:0]
  • disable_glb_evt_timer
  • evt_timer_tick[14:0]
  • disable_evt_timer
  • 64
  • 0
  • 400
  • 0
0x80_0320
0x1400 CRDT_COAL_CFG_1
  • rsvd[12:0]
  • dis_fence_fix
  • pld_fifo_th[7:0]
  • crdt_timer_th[9:0]
  • 不适用
  • 0
  • 16
  • 16
0x4010
0x1404 CRDT_COAL_CFG_2
  • rsv2[7:0]
  • crdt_fifo_th[7:0]
  • rsv1[4:0]
  • crdt_cnt_th[10:0]
  • 不适用
  • 56
  • 不适用
  • 96
0x38_0060
0x15C GLBL_RRQ_PCIE_THROT
  • req_throt_en
  • req_throt
  • dat_throt_en
  • dat_throt
  • 0
  • 192
  • 1
  • 20480
0x604_5000
0x160 GLBL_RRQ_AXIMM_THROT
  • req_throt_en
  • req_throt
  • dat_throt_en
  • dat_throt
  • 0
  • 0
  • 0
  • 0
0
0x158 GLBL_RRQ_BRG_THROT
  • req_throt_en
  • req_throt
  • dat_throt_en
  • dat_throt
  • 1
  • 192
  • 1
  • 20480
0x8604_5000
0xE24 H2C_REQ_THROT_PCIE
  • req_throt_en_req
  • req_throt
  • req_throt_en_data
  • data_thresh
  • 1
  • 192
  • 1
  • 24576
0x8604_6000
0xE2C H2C_REQ_THROT_AXIMM
  • req_throt_en_req
  • req_throt
  • req_throt_en_data
  • data_thresh
  • 1
  • 64
  • 1
  • 16384
0x8204_4000
0x12EC H2C_MM_DATA_THROT
  • data_throt_en
  • data_throt
  • 1
  • 20480
0x1_5000
0x250 QDMA_GLBL_DSC_CFG
  • c2h_uodsc_limit(软核 IP)
  • h2c_uodsc_limit(软核 IP)
  • uodsc_limit (KS-B)
  • Max_dsc_fetch
  • wb_acc_int
  • 5
  • 8
  • 不适用
  • 2
  • 5
0x50_2015
0x4C CONFIG_BLOCK_MISC_CONTROL
  • 10b_tag_en
  • num_tags
  • rq_metering_multiplier
  • 0
  • 256
  • 9
0x1_0009
  • QDMA_C2H_INT_TIMER_TICK (0xB0C) 设为 25。对应于 100 ns(对于 250 MHz 用户时钟,1 拍 = 4 ns)
  • C2H 触发模式设为用户定时器,计数器设为 64,定时器则与往返时延相匹配。定时器的全局寄存器值应为 30,表示 3 μs。
  • 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 字节。

描述符旁路模式中的性能

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

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

基于可用高速缓存/缓冲器大小进行性能优化

预取高速缓存大小
QDMA 预取高速缓存大小可编程(16 或 64)。在内部模式下配置 QDMA 时,QDMA IP 拥有 64 个 Q 的空间,可供 IP 从中预取描述符。如果要支持的 Q 数量超过 64(例如,65 个 Q),那么引擎会驱逐使用最少的 Q,并添加一个新的 Q。若包大小较小且超过 64 个 Q,这可能会对性能产生负影响。要支持更多 Q,可在简单旁路模式下配置 QDMA IP,并将描述符高速缓存置于 IP 外。这样您即可管理描述符流程。
CPMT 数据 FIFO
QDMA IP 具有深度为 2 的超窄完成 FIFO。如果您能在空间中实现更深的 FIFO (512),并将 FIFO 输出馈送给 QDMA 完成输入,那么效率会更高。
FIFO 中的 C2H 串流描述符
QDMA IP 的 FIFO 中具有一个描述符旁路输入与内部模式公用的描述符。此描述符 FIFO 深度为 1K。填满此 FIFO 时,IP 会对您的旁路输入产生反压。

资源使用情况

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