Patent ID: 7979592

Claim:
A method for use in a PCI Express system comprising a plurality of independent PCI Express roots coupled to a shared single-root input/output virtualization (SR-IOV) endpoint via a bridge device, the method comprising: a first root of the plurality of independent PCI Express roots independently assigning a first address in a first root local memory space to a first virtual function of the SR-IOV endpoint, wherein the first root corresponds to a first virtual hierarchy (VH) in the PCI Express system, and a second root of the plurality of independent PCI Express roots assigning a second address in a second root local memory space to a second virtual function of the SR-IOV endpoint, wherein the second root corresponds to a second VH in the PCI Express system that is different from the first VH; mapping in the bridge device the first root local memory space to a first portion of the SR-IOV endpoint local memory space, and mapping the second root local memory space to a second portion of the SR-IOV endpoint local memory space, whereby both the first root local memory space and the second root local memory space are concurrently mapped to the SR-IOV endpoint local memory space; performing in the bridge device: receiving a first request from the first root without an identification of which of said roots is a source of the first request, the first request comprising a first target address; receiving a second request from the second root without an identification of which of said roots is a source of the second request, the second request comprising a second target address; identifying a source of the first request based at least in part on a port via which the first request was received; identifying a source of the second request based at least in part on a port via which the second request was received; determining a target of each of the first request and the second request based at least in part on an identification of a source of the first request and the second request, respectively; and conveying both of the first request and the second request to the SR-IOV endpoint with an identification of which of said plurality of independent PCI Express roots is a source of the first request and the second request, respectively.