Patent ID: 8001283

Claim:
An input/output (IO) coherence unit for use in a multiprocessor system, the IO coherence unit comprising: an IO request handler configured to receive pending IO requests from a plurality of IO devices and to determine a next IO request for processing by the multiprocessor system; a transaction table configured to store information about the pending IO requests such that the size of the transaction table varies according to the number of the pending IO requests, wherein the IO request handler allocates entries in the transaction table and stores information about pending IO requests to establish an order among pending IO requests having a same identifier; and an IO response handler configured to receive a response to a pending IO request and to update an entry in the transaction table corresponding to the response, the IO response handler configured to determine an order of responses in accordance with the information in the transaction table, wherein the IO coherence unit returns the responses to the plurality of IO devices in the order determined by the IO response handler.