Patent ID: 7904692

Claim:
An input-output memory management unit (IOMMU) to provide virtual-to-physical address translations, the IOMMU comprising: one or more reorder buffers, each reorder buffer associated with an I/O device to queue pending translation requests; and an IOMMU manager to service translation requests received from a plurality of I/O devices, wherein the IOMMU manager is configured to store a translation request received from a requesting I/O device in one of the reorder buffers associated with the requesting I/O device when the translation request is unable to be serviced or when there are one or more pending translation requests in the associated reorder buffer, and wherein the IOMMU manager is further configured to service, in a first-in first-out manner, pending translation requests having a physical address stored in the associated reorder buffer when a physical address is written to the associated reorder buffer by causing the IOMMU to return a physical address to a requesting I/O device so that translation requests for each I/O device are serviced in an order in which they are received.