The NMU contains a read reorder buffer (RROB) that can accept returned data from all issued read transactions. An ordering tag is assigned based on available slots in the RROB. The RROB maintains a set of per-AXI ID linked lists of assigned tags enabling the responses to be returned in the correct order. Upon receiving an AXI read request an ordering ID is assigned based on the available slots in the RROB. Each linked list stores the original AXI ID so that it can be correctly returned with the response transaction. The RROB can hold up to 64 entries of 32 bytes per entry. Read responses are placed in the RROB as they arrive. Logic at the output of the buffer selects responses that can be returned in the correct order according to AXI ordering rules. This logic relies on the linked list structure from the request path to determine the correct response ordering.
The maximum number of outstanding entries is programmable from 2 to 64, with a default value of 64.