队列状态端口 - 5.0 简体中文

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

Document ID
PG302
Release Date
2023-10-18
Version
5.0 简体中文
表 1. 队列状态端口
端口名称 I/O 描述
qsts_out_op[7:0] O 即操作码,表示当前发出的包的类型。该字段的编码如下。

0x0:CMPT 标记响应

0x1:H2C-ST 标记响应

0x2:C2H-MM 标记响应

0x3:H2C-MM 标记响应

0x4-0xff:保留

qsts_out_data[63:0] O 各操作码的数据字段定义如下表所示。
qsts_out_port_id[2:0] O 端口 ID
qsts_out_qid[11:0] O 队列 ID
qsts_out_vld O 队列状态有效
qsts_out_rdy I 队列状态就绪。Ready 必须绑定到 1,以免阻塞状态输出。即使不使用此接口,ready 端口也必须绑定到 1。
表 2. 队列状态数据
qsts_out_data 字段 描述
[1:0] err CMPT 引擎报告的错误代码。

0:无错误

1:软件提供的完成 CIDX 更新错误

2:处理 C2H 包时收到描述符错误

3:由于完成环已满,C2H 引擎已将完成丢弃

[2] retry_marker_req 虽然已启用中断,但无法生成。如果接收到标记请求时,队列中的中断已处于未完成状态,那么就会发生这种情况。如确需发送中断,则用户逻辑必须等待并重试标记请求。
[25:3] marker_cookie 当 CMPT 引擎向队列状态端口接口发送标记式,它会将 CMPT 的低 23 位包含在队列状态端口接口上的标记响应中进行发送。因此,发出标记请求时,用户逻辑可将 23 位值布局在 CMPT 中,它将随标记响应接收到相同的 23 位。如果由于 CMPT 引擎遇到的错误而生成标记(而非用户逻辑提交的标记请求),那么此 23 位字段无效。
注释: 即使用户已在对主机执行 CMPT 写入中启用错误位和/或颜色位戳记,marker_cookie 也不会包含这些位。用户逻辑提交标记请求时包含的位就是它提供给 QDMA 的 CMPT 的低 23 位。
[26] is_mrkr_rsp 如果标记响应基于标记请求,则此位将为置位到 1。如果此位设为“0”,那么标记响应将基于错误。
[63:27] rsv 保留