Patent ID: 8356119

Claim:
A data processing apparatus for processing data, said data processing apparatus being configured to communicate via an output port with a plurality of devices and to issue a stream of transaction requests to said output port, said stream of transaction requests comprising at least some device transaction requests destined for said plurality of devices, device transactions being transactions that may affect each other and therefore should be completed in an order in which they are received at said output port, said output port being configured to output said received transaction requests as a single serial stream of transaction requests, said data processing apparatus comprising: a destination device detector for monitoring said device transaction requests and for determining which of said plurality of devices each of said device transaction requests are destined for; said output port comprising ordering circuitry configured to treat said plurality of devices as at least two subsets of devices, at least one of said subsets comprising at least two devices; wherein the devices in one of said two subsets have longer latency times when compared to a latency time of at least one of the devices in the other one of said two subsets; said ordering circuitry being configured to receive said stream of transaction requests and to classify each of said device transaction requests into one of said at least two subsets in response to determination of a destination device by said destination device detector, and to maintain said order that said device transaction requests within each subset are received in, such that device transaction requests within each subset are output by said output port and executed by their respective destination devices in said received order, while device transaction requests within different subsets may be output in an order that is different to said received order.