The Single Slave per ID Rule - 1.0 English

Versal Adaptive SoC Programmable Network on Chip and Integrated Memory Controller 1.0 LogiCORE IP Product Guide (PG313)

Document ID
PG313
Release Date
2023-11-01
Version
1.0 English
The Single Slave per ID (SSID) rule is often used by interconnect components as a way of simplifying implementation at the cost of some performance loss. The rule applies whenever:
  • A master routes transactions to more than one output port (slave), and
  • Multiple transactions are outstanding, and
  • Transactions use the same ID
According to AXI ordering rules, transactions using the same ID must be responded to in the same order they were issued. However, under the conditions stated above, it is possible that different slaves have different latencies, and as a result, the responses may be returned out of order. To prevent that occurring, the component does the following:
  • If a transaction destined to port A with ID x arrives, and there are already some pending transactions with ID x to port B, the master will wait until all pending transactions with ID x to port B have completed before routing the new request to port A.

In effect, the master ensures that any ID value can be pending only to a single slave destination, thus ensuring that responses cannot be returned out of order. Hence the name “single slave per ID”. In some cases, particularly with interleaved memories, this can have a negative impact on performance.