Apparatus and method for port polarity initialization in a shared I/O device
First Claim
1. A switching apparatus for sharing input/output endpoints, the switching apparatus comprising:
- a first shared I/O endpoint, configured to request/complete first transactions for each of a plurality of operating system domains, said each of said plurality of operating system domains corresponding to a separate root complex;
a switch, comprising;
a first plurality of I/O ports, coupled to said plurality of operating system domains through a load-store fabric, each configured to route said first transactions between said plurality of operating system domains and said switch according to the PCI Express protocol;
a second I/O port, coupled to a first shared input/output endpoint, wherein said first shared input/output endpoint requests/completes said first transactions for each of said plurality of operating system domains, wherein each of said first transactions is associated with a corresponding one of said plurality of operating system domains according to a variant of said PCl Express protocol, said variant comprising encapsulating an OS domain header within a PCI Express transaction layer packet that is otherwise identical with a conventional PCI Express transaction layer packet, and wherein a particular OS domain header associates a particular transaction layer packet with a particular one of said plurality of operating system domains; and
a plurality of port initialization logic elements, one coupled to said second I/O port, and remaining ones each coupled to a corresponding one of said first plurality of I/O ports, configured to initialize corresponding links between each of said plurality of operating system domains and said switch, and between said first shared input/output endpoint and said switch, to support said first transactions, wherein each of said plurality of port initialization logic elements automatically configures a corresponding polarity for each of said first plurality of I/O ports and said second I/O port, and wherein said corresponding polarity is in a default polarity prior to being configured.
8 Assignments
0 Petitions
Accused Products
Abstract
An apparatus and method are provided that enable I/O devices to be shared among multiple operating system domains. The apparatus includes a first plurality of I/O ports, a second I/O port, and a plurality of port initialization logic elements. The first plurality of I/O ports is coupled to a plurality of operating system domains through a load-store fabric. Each of the first plurality of I/O ports routes transactions between the plurality of operating system domains and the switching apparatus. The second I/O port is coupled to a first shared input/output endpoint. The first shared input/output endpoint is configured to request/complete the transactions for each of the plurality of operating system domains. One of the plurality of port initialization logic elements is coupled to the second I/O port and remaining ones of the plurality of port initialization logic elements are each coupled to a corresponding one of the first plurality of I/O ports. The plurality of port initialization logic elements is configured to initialize corresponding links between each of the plurality of operating system domains and the switching apparatus, and between the first shared input/output endpoint and the switching apparatus, to support the transactions, where each of the plurality of port initialization logic elements automatically configures a corresponding polarity for each of the first plurality of I/O ports and the second I/O port, and where the corresponding polarity is in a default polarity prior to being configured.
-
Citations
58 Claims
-
1. A switching apparatus for sharing input/output endpoints, the switching apparatus comprising:
-
a first shared I/O endpoint, configured to request/complete first transactions for each of a plurality of operating system domains, said each of said plurality of operating system domains corresponding to a separate root complex; a switch, comprising; a first plurality of I/O ports, coupled to said plurality of operating system domains through a load-store fabric, each configured to route said first transactions between said plurality of operating system domains and said switch according to the PCI Express protocol; a second I/O port, coupled to a first shared input/output endpoint, wherein said first shared input/output endpoint requests/completes said first transactions for each of said plurality of operating system domains, wherein each of said first transactions is associated with a corresponding one of said plurality of operating system domains according to a variant of said PCl Express protocol, said variant comprising encapsulating an OS domain header within a PCI Express transaction layer packet that is otherwise identical with a conventional PCI Express transaction layer packet, and wherein a particular OS domain header associates a particular transaction layer packet with a particular one of said plurality of operating system domains; and a plurality of port initialization logic elements, one coupled to said second I/O port, and remaining ones each coupled to a corresponding one of said first plurality of I/O ports, configured to initialize corresponding links between each of said plurality of operating system domains and said switch, and between said first shared input/output endpoint and said switch, to support said first transactions, wherein each of said plurality of port initialization logic elements automatically configures a corresponding polarity for each of said first plurality of I/O ports and said second I/O port, and wherein said corresponding polarity is in a default polarity prior to being configured. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18)
-
-
19. A shared input/output (I/O) switching mechanism, comprising:
-
a first shared I/O endpoint, configured to request/complete first transactions for each of a plurality of operating system domains, said each of said plurality of operating system domains corresponding to a separate root complex; a switch, comprising; a first plurality of I/O ports, coupled to a said plurality of operating system domains through a load-store fabric, each configured to route first transactions between said plurality of operating system domains and said switch according to a the PCI Express protocol; a second I/O port, coupled to said first shared input/output endpoint; core logic, coupled to said first plurality of I/O ports and said second I/O port, configured to route said first transactions between said first plurality of I/O ports and said second I/O port, wherein said core logic maps said each of said plurality of operating system domains to a corresponding root complex, and wherein said each of said first transactions is associated with a corresponding one of said plurality of operating system domains according to a variant of said PCI Express protocol, and wherein said variant comprises encapsulating an OS domain header within a PCI Express transaction layer packet that is otherwise identical with a conventional PCI Express transaction layer packet, and wherein a particular OS domain header associates a particular PCI Express transaction layer packet with a particular one of said plurality of operating system domains; and a plurality of port initialization logic elements, one coupled to said second I/O port, and remaining ones each coupled to a corresponding one of said first plurality of I/O ports, configured to initialize corresponding links between said each of said plurality of operating system domains and the switching mechanism, and between said first shared input/output endpoint and said switch, to support said first transactions, wherein each of said plurality of port initialization logic elements automatically configures a corresponding polarity for each of said first plurality of I/O ports and said second I/O port, and wherein said corresponding polarity is in a default polarity prior to being configured. - View Dependent Claims (20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32)
-
-
33. A method for interconnecting independent operating system domains to a shared I/O endpoint within a load-store fabric, comprising:
-
providing separate root complexes that correspond to the independent operating system domains; via first ports, first communicating with each of the independent operating system domains according to the PCI Express protocol; via a second port, second communicating with the shared I/O endpoint according to a variant of the PCI Express protocol to enable the shared I/O endpoint to associate a prescribed operation with a corresponding one of the independent operating system domains, wherein said second communicating comprises encapsulating an OS domain header within a PCI Express transaction layer packet that is otherwise identical with a conventional PCI Express transaction layer packet, and wherein a particular OS domain header associates the PCI Express transaction layer packet with the corresponding one of the independent operating system domains; and initializing links between each of the independent operating system domains and the first ports, and between the shared I/O endpoint and the second port, wherein said initializing comprises; automatically configuring a corresponding polarity for each of the first ports and the second port, wherein the corresponding polarity is in a default polarity prior to said configuring. - View Dependent Claims (34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45)
-
-
46. A switching apparatus, comprising:
-
a first port, coupled to a first root complex, configured to route first transactions between said first root complex and the switching apparatus according to the PCI Express protocol; a second port, coupled to a second root complex, configured to route second transactions between said second root complex and the switching apparatus according to said PCI Express protocol; a port initialization logic element, coupled to said first and second ports, configured to initialize links between said first and second root complexes and the switching apparatus, to support said first and second transactions, wherein said port initialization logic element automatically configures a corresponding polarity for each of said first and second ports, and wherein said corresponding polarity is in a default polarity prior to being configured; wherein the switching apparatus routes said first and second transactions to a shared I/O device according to a variant said PCI Express protocol, and wherein the switching apparatus communicates with said shared I/O device according to said variant of said PCI Express protocol by encapsulating an OS domain header within a PCI Express transaction layer packet that is otherwise identical with a conventional PCI Express transaction layer packet, and wherein a particular OS domain header associates a particular PCI Express transaction layer packet with a particular one of a plurality of operating system domains. - View Dependent Claims (47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58)
-
Specification