Switching apparatus and method for link initialization in a shared I/O environment
First Claim
1. A shared I/O apparatus, comprising:
- a shared I/O endpoint, configured to request/complete transactions for each of a plurality of operating system domains, wherein said each of a plurality of operating system domains communicate with said shared I/O endpoint according to a protocol that provides for routing of transactions only for a single operating system domain, said shared I/O endpoint comprising;
a first I/O port, coupled to a link, configured to request/complete said transactions for each of said plurality of operating system domains according to a variant of said 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 first I/O port, configured to initialize said link, 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 and method are provided that enable I/O devices to be shared among multiple operating system domains. The apparatus has a first plurality of I/O ports, a second I/O port, and link training logic. 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 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.
151 Citations
14 Claims
-
1. A shared I/O apparatus, comprising:
a shared I/O endpoint, configured to request/complete transactions for each of a plurality of operating system domains, wherein said each of a plurality of operating system domains communicate with said shared I/O endpoint according to a protocol that provides for routing of transactions only for a single operating system domain, said shared I/O endpoint comprising; a first I/O port, coupled to a link, configured to request/complete said transactions for each of said plurality of operating system domains according to a variant of said 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 first I/O port, configured to initialize said link, 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. A root complex apparatus, comprising:
a root complex, wherein said root complex corresponds to a plurality of operating system domains, and wherein each of said plurality of operating system domains communicate with a shared I/O endpoint according to a protocol that provides for routing of transactions only for a single operating system domain, said root complex comprising; a first I/O port, coupled to a link, configured to request/complete said transactions for each of said plurality of operating system domains according to a variant of said 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 first I/O port, configured to initialize said link, wherein said link is initialized in a manner that is transparent to said plurality of operating system domains. - View Dependent Claims (9, 10, 11, 12, 13, 14)
Specification