流量管理器接口可向用户逻辑提供队列状态详细信息,以便用户逻辑管理描述符的提取和执行。在正常操作中对于已启用的队列,每次 irq_arm
位断言有效或队列 PIDX 执行更新时,描述符引擎都会断言
tm_dsc_sts_valid
有效。
tm_dsc_sts_avl
信号会指明自上次更新以来可用的新描述符数量。通过这种机制,用户逻辑可以跟踪每个队列可用的工作量。其作用主要体现在,可通过描述符引擎的提取信用值机制或其他用户最优化来排列提取的优先顺序。在有效周期内,
tm_dsc_sts_irq_arm
表明
irq_arm
位先前为 0 并已置位。在旁路模式下,这实质上是此队列中断的信用值。当软件指定或者由于错误导致队列失效时,
tm_dsc_sts_qinv
信号将置位。观测该位可以发现,描述符引擎已中止该队列的新描述符提取。在此情况下,
tm_dsc_sts_avl
上的内容会指明描述符引擎所持有的可用提取信用值的数量。此信息可用于帮助用户逻辑协调给予描述符引擎的信用值,以及它应收到的描述符的数量。即使在
tm_dsc_sts_qin
断言有效后,提取流水线中已存在的有效描述符仍将继续交付至 DMA 引擎(内部模式)或者交付至描述符旁路输出端口(旁路模式)。
tm_dsc_sts
接口的其他字段会识别队列 ID、DMA 方向(H2C 或 C2H)、内部或旁路模式、串流或存储器映射模式、队列启用状态、队列错误状态和端口 ID。
虽然
tm_dsc_sts
接口是 valid/ready(有效/就绪)状态的接口,但为了获得最佳性能,不应对其施加反压。由于有多起事件会触发单个
tm_dsc_sts
周期,如果填满内部缓冲器,那么将中止描述符提取以免生成新事件。