This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Is AXI4 Ordered write observation used to support PCIE Producer/Consumer ordering model?

AXI4 spec "Ordered write observation" says it "can support the Producer/Consumer ordering model with improved performance". AXI4 spec does not mention PCIE spec, but we know PCIE spec uses Producer/Consumer ordering model.

For instance, a system like this,

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 to AXI4 slave data port1)

CPU performs the follwing two operations,

  1. CPU writes data to DDR
  2. CPU writes DEC APB register to start DEC

Because PCIE memory writes (both prefetchable and non-prefetchable) are posted, i.e. without responses, PCIE AXI Bridge will perform the above two operations successively with the same ID but without waiting for BRESP. Before data reaches DDR, DEC may have seen the APB register write and start read the data, so the data may be old and invalid.

If "Ordered write observation" is supported, there will be no such a problem, because it requires the interface "if two write transactions, with the same ID, are observed by all other agents in the system in the same order that the transactions are issued", i.e. if APB register write is observed by DEC, it will guarantee data write to DDR has been observable to DEC.

This ordering issue can be solved by writing a data then reading it back as follows,

  1. CPU writes data to DDR
  2. CPU read the same data back
  3. CPU writes DEC APB register to start DEC

But it's inefficient.

So is AXI4 "Ordered write observation" used to solve this issue when PCIE and AXI4 are connected? If this is the case, is it better to solve this ordering issue in the PCIE side or AXI interconnect side?