Switching apparatus and method for providing shared I/O within a load-store fabric
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; and
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, and configured to associate each of said transactions with a corresponding one of said plurality of operating system domains (OSDs), said corresponding one of said plurality of OSDs corresponding to one or more root complexes, wherein said core logic designates said corresponding one of said plurality of OSDs according to a variant of a protocol that otherwise provides for routing of said transactions only for a single operating system domain, and wherein said variant comprises encapsulating an OS domain header within a transaction layer packet that otherwise comports with said protocol.
8 Assignments
0 Petitions
Accused Products
Abstract
An apparatus and method for sharing I/O devices. The apparatus has a first plurality of I/O ports, a second I/O port, and core logic. The first plurality is coupled to a plurality of operating system domains through a load-store fabric. Each of the first plurality routes transactions between the 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 requests/completes transactions for each of the plurality of operating system domains. The core logic is coupled to the first plurality of I/O ports and the second I/O port. The core logic routes the transactions between the first plurality of I/O ports and the second I/O port and associates each of the transactions with a corresponding one of the plurality of operating system domains (OSDs) by encapsulating an OS domain header within a transaction layer packet.
-
Citations
49 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; and 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, and configured to associate each of said transactions with a corresponding one of said plurality of operating system domains (OSDs), said corresponding one of said plurality of OSDs corresponding to one or more root complexes, wherein said core logic designates said corresponding one of said plurality of OSDs according to a variant of a protocol that otherwise provides for routing of said transactions only for a single operating system domain, and wherein said variant comprises encapsulating an OS domain header within a transaction layer packet that otherwise comports with said protocol. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24)
-
-
25. A shared input/output (I/O) switching mechanism, comprising:
core logic, configured to enable operating system domains to share one or more I/O endpoints, said core logic comprising; global routing logic, configured to route first transactions to/from said operating system domains, and for routing second transactions to/from said one or more I/O endpoints, wherein each of said second transactions designates an associated one of said operating system domains for which an operation specified by each of said first transactions be performed, wherein said second transactions comport with a variant of a protocol that otherwise provides exclusively for a single operating system domain within said load-store fabric, and wherein said variant comprises encapsulating an OS domain header within a transaction layer packet of said each of said second transactions, wherein said each of said second transactions otherwise comports with said protocol. - View Dependent Claims (26, 27, 28, 29, 30, 31, 32, 33, 34, 35)
-
36. A method for interconnecting independent operating system domains to a shared I/O endpoint 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 a 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, said second communicating comprising; employing the variant of the protocol to associate a unique root complex with the corresponding one of the operating system domains by encapsulating an OS domain header within a transaction layer packet that otherwise comports with the protocol, wherein the value of the OS domain header designates the corresponding one of the operating system domains; and via core logic within a switching apparatus, mapping the independent operating system domains to the shared I/O endpoint. - View Dependent Claims (37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49)
-
Specification