存储器读取请求跨完成器请求接口进行传输的顺序与存储器写入请求相同,除非 AXI4-Stream 数据包仅包含 16 字节描述符。下图显示了从链路收到存储器读取 TLP 后,通过完成器请求接口来进行传输的过程。此数据包在接口上传输只需一拍即可。在数据包持续时间段内,m_axis_cq_tvalid
信号保持断言有效。用户逻辑可以通过下拉 m_axis_cq_tready
来延长任一节拍。当第 1 个描述符字节位于总线上时,m_axis_cq_tuser
总线中的 is_sop
信号断言有效。
图 1. 完成器请求接口上的存储器读取传输事务
与第一个和最后一个 Dword 的读取请求关联的字节使能位由核在 m_axis_cq_tuser
边带总线上提供。传输描述符时,这些位有效,并且必须供用户逻辑用于判定与该请求关联的字节级别起始地址和字节计数。对于 1 个 Dword 读取和 2 个 Dword 读取的特殊情况,字节使能可以不连续。字节使能在所有其它情况下均连续。长度为 0 的存储器读取在完成器请求接口上发送,其描述符中的“Dword count”(Dword 计数)字段设置为 1,且首字节使能和末字节使能均设为 0。
用户逻辑必须以完成包来响应每个存储器读取请求。由读取所请求的数据将作为单一完成包来发送,或者也可作为多个拆分完成包来发送。这些完成包必须发送到核的完成器完成接口。2 个不同请求的完成包可按任意顺序发送,但同一个请求的拆分完成包则必须按顺序发送。如需获取有关完成器完成接口操作的说明,请参阅 64/128/256 位完成器接口 和 512 位完成器接口。