Switching apparatus and method for link initialization in a shared I/O environment
First Claim
1. A switching apparatus for sharing input/output endpoints, the switching apparatus comprising:
- a first plurality of I/O ports, coupled to a plurality of operating system domains through a load-store fabric, each configured to route transactions between said plurality of operating system domains and the switching apparatus;
a second I/O port, coupled to a first shared input/output endpoint, wherein said first shared input/output endpoint is configured to request/complete said transactions for each of said plurality of operating system domains according to a variant of a protocol, wherein said variant comprises encapsulating an OS domain header within a transaction layer packet that otherwise comports with said protocol, 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
link training logic, coupled to said second I/O port, configured to initialize a link between said second I/O port and said first shared input/output endpoint to support said transactions corresponding to said each of said plurality of operating system domains, wherein said link is initialized in a manner that is transparent to said plurality of operating system domains.
8 Assignments
0 Petitions
Accused Products
Abstract
An apparatus has a first plurality of I/O ports, a second I/O port, and link training logic. The first plurality is coupled to a plurality of operating system domains through a load-store fabric. Each of the first plurality is configured to route 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. The link training logic is coupled to the second I/O port. The link training logic initializes a link between the second I/O port and the first shared input/output endpoint to support the transactions corresponding to the each of the plurality of operating system domains. The link is initialized in a manner that is transparent to the plurality of operating system domains.
145 Citations
29 Claims
-
1. A switching apparatus for sharing input/output endpoints, the switching apparatus comprising:
-
a first plurality of I/O ports, coupled to a plurality of operating system domains through a load-store fabric, each configured to route transactions between said plurality of operating system domains and the switching apparatus; a second I/O port, coupled to a first shared input/output endpoint, wherein said first shared input/output endpoint is configured to request/complete said transactions for each of said plurality of operating system domains according to a variant of a protocol, wherein said variant comprises encapsulating an OS domain header within a transaction layer packet that otherwise comports with said protocol, 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 link training logic, coupled to said second I/O port, configured to initialize a link between said second I/O port and said first shared input/output endpoint to support said transactions corresponding to said each of said plurality of operating system domains, wherein said link is initialized in a manner that is transparent to said plurality of operating system domains. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. A shared input/output (I/O) switching mechanism, comprising:
-
a first plurality of I/O ports, coupled to a plurality of operating system domains through a load-store fabric, each configured to route transactions between said plurality of operating system domains and the shared input/output (I/O) switching mechanism; a second I/O port, coupled to a first shared input/output endpoint, wherein said first shared input/output endpoint is configured to request/complete said transactions for each of said plurality of operating system domains according to a variant of a protocol, wherein said variant comprises encapsulating an OS domain header within a transaction layer packet that otherwise comports with said protocol, and wherein a particular OS domain header associates a particular transaction layer packet with a particular one of said plurality of operating system domains; core logic, coupled to said first plurality of I/O ports and said second I/O port, configured to route said 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 link training logic, coupled to said second I/O port, configured to initialize a link between said second I/O port and said first shared input/output endpoint to support said transactions corresponding to said each of said plurality of operating system domains, wherein said link is initialized in a manner that is transparent to said plurality of operating system domains. - View Dependent Claims (13, 14, 15, 16, 17, 18, 19, 20, 21)
-
-
22. A method for interconnecting independent operating system domains to a shared I/O endpoint within a load-store fabric, comprising:
-
via first ports, first communicating with each of the independent operating system domains according to a protocol that provides exclusively for a single operating system domain within the load-store fabric; via a second port, second communicating with the shared I/O endpoint according to a variant of the protocol to enable the shared I/O endpoint to associate a prescribed operation with a corresponding one of the independent operating system domains, wherein the variant comprises encapsulating an OS domain header within a transaction layer packet that otherwise comports with the protocol, and wherein a particular OS domain header associates the transaction layer packet with the corresponding one of the independent operating system domains; and initializing a link between the second port and the shared I/O endpoint to support transactions for all of the independent operating system domains, wherein the link is initialized in a manner that is transparent to the independent operating system domains. - View Dependent Claims (23, 24, 25, 26, 27, 28, 29)
-
Specification