Patent ID: 7694047

Claim:
A network system, comprising: a plurality of host systems; and a shared PCI-Express module directly coupled to the plurality of host systems and to at least one shared input/output (I/O) device without using a PCI-Express switch and a PCI to PCI bridge such that each of the plurality of host system is unaware of the I/O device being shared among other host systems; wherein the shared PCI-Express module includes an upstream port module communicating with the plurality of host systems, and a downstream port module communicating with the I/O device; wherein the shared PCI-Express module receives a transaction layer packet (“TLP”), examines the TLP and based on a type of the TLP, routes the TLP by using either an identifier (“ID”) based routing that uses a bus, device and function number to specify a destination for the TLP or an address based routing that uses an address map for routing the TLP; wherein when ID based routing is used to route the TLP to the shared I/O device, then a destination identifier field is modified by the shared PCI-Express module to match a function number; wherein when ID based routing is used to route the TLP to one of the plurality of host systems, then a source identifier is modified by the shared PCI-Express module to include an upstream function number and a destination identifier is replaced with a value captured during an upstream port module initialization; wherein ID based routing is used for a configuration type TLP that is used for configuring a device and a completion type TLP that indicates completion of a request; and address based routing is used for a memory request and an I/O request.