【发布时间】:2020-06-16 01:08:42
【问题描述】:
PCIE 使用生产者/消费者排序模型,但 AXI4 使用不同的排序模型。 AXI4的读写通道是独立的。
例如,像这样的系统,
CPU PCIE Controller PCIE AXI Bridge AXI4 with DEC and DDR slaves (DEC module is connected to AXI4 slave data port0 and APB register port, DDR memory module is connected到 AXI4 从数据端口1)
CPU 执行以下两个操作,
1.CPU writes data to DDR
2.CPU writes DEC APB register to start DEC
由于 PCIE 内存写入(可预取和不可预取)已发布,即没有响应,PCIE AXI Bridge 将执行上述操作两个操作连续使用相同的 ID 但不等待 BRESP。在数据到达 DDR 之前,DEC 可能已经看到 APB 寄存器写入并开始读取数据,因此数据可能是旧的和无效的。
这个排序问题可以通过写入数据然后读回来解决,如下所示,
1.CPU writes data to DDR
2.CPU read the same data back
3.CPU writes DEC APB register to start DEC
但效率低下。
那么当 PCIE 和 AXI4 连接时,我们如何解决这个排序问题呢?是在 PCIE 端还是 AXI 互连端解决这个排序问题更好?
【问题讨论】: