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 (OSDs) through a load-store fabric, each configured to route transactions between said plurality of OSDs 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 OSDs; 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, wherein said core logic designates a corresponding one of said plurality of OSDs according to a variant of a protocol, and wherein said protocol provides for routing of said transactions only for a single OSD.
- 2. The switching apparatus as recited in claim 1, wherein said variant comprises encapsulating an OS domain header within a transaction layer packet that otherwise comports with said protocol.
- 3. The switching apparatus as recited in claim 1, wherein said first plurality of I/O ports communicates with said plurality of OSDs according to said protocol.
- 4. The switching apparatus as recited in claim 1, wherein said protocol comprises PCI Express.
- 5. The switching apparatus as recited in claim 4, wherein said core logic isolates said transactions over a plurality of PCI Express bus hierarchies according to said each of said plurality of OSDs.
- 6. The switching apparatus as recited in claim 5, wherein a subset of said transactions are routed in accordance with addressing mechanisms for a particular one of said plurality of PCI Express bus hierarchies, said particular one of said plurality of PCI Express bus hierarchies corresponding to a particular one of said plurality of OSDs.
- 7. The switching apparatus as recited in claim 2, wherein said core logic is configured to associate each of said transactions with a corresponding one of said plurality of OSDs, said corresponding one of said plurality of OSDs corresponding to one or more root complexes.
- 8. The switching apparatus as recited in claim 7, wherein said transaction layer packet is routed between said second I/O port and said first shared input/output endpoint.
- 9. The switching apparatus as recited in claim 8, wherein said first shared I/O endpoint is configured to detect said OS domain header and to perform a specified operation according to said protocol exclusively for said one of said plurality of OSDs.
- 10. The switching apparatus as recited in claim 1, wherein said first shared input/output endpoint designates one of said transactions for a particular one of said plurality of OSDs by encapsulating an OS domain header within a transaction layer packet, and wherein said transaction layer packet is routed to said core logic via said second I/O port.
- 11. The switching apparatus as recited in claim 10, wherein said core logic is configured to detect and decapsulate said OS domain header from said transaction layer packet, and is configured to route said one of said transactions to said particular one of said plurality of OSDs according to said protocol.
- 12. 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 over a load-store fabric, 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, and wherein said associated one of said operating system domains is designated according to a variant of a protocol, said protocol providing exclusively a single operating system domain within said load-store fabric.
- 13. The shared I/O switching mechanism as recited in claim 12, wherein said variant comprises encapsulating an OS domain header within a transaction layer packet that otherwise comports with said protocol.
- 14. The shared I/O switching mechanism as recited in claim 12, wherein said protocol comprises PCI Express, and wherein said first transactions comport with said protocol.
- 15. The shared I/O switching mechanism as recited in claim 14, wherein said core logic isolates said first and second transactions over a plurality of PCI Express bus hierarchies according to each of said operating system domains.
- 16. The shared I/O switching mechanism as recited in claim 15, wherein said first and second transactions are routed in accordance with addressing mechanisms for a particular one of said plurality of PCI Express bus hierarchies, said particular one of said plurality of PCI Express bus hierarchies corresponding to said associated one of said operating system domains.
- 17. The shared I/O switching mechanism as recited in claim 12, wherein said core logic associates each of said operating system domains with each of a corresponding root complex.
- 18. The shared I/O switching mechanism as recited in claim 13, wherein said transaction layer packet is routed between said the shared I/O switching mechanism and one of said one or more I/O endpoints.
- 19. The shared I/O switching mechanism as recited in claim 18, wherein said one of said one or more I/O endpoints is configured to detect said OS domain header and to perform said operation according to said protocol exclusively for said one of said operating system domains.
- 20. The shared I/O switching mechanism as recited in claim 12, wherein one of said one or more I/O endpoints designates one of said second transactions for a particular one of said operating system domains by encapsulating an OS domain header within a transaction layer packet, and wherein said transaction layer packet is routed to the shared I/O switching mechanism.
- 21. The shared I/O switching mechanism as recited in claim 20, wherein VMAC logic within the shared I/O switching mechanism is configured to detect and decapsulate said OS domain header from said transaction layer packet, and wherein said core logic routes a corresponding one of said first transactions to said particular one of said plurality of operating system domains according to said protocol.
- 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, said second communicating comprising:
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.
- 23. The method as recited in claim 22, further comprising:
over the load-store fabric, first interconnecting the independent operating system domains to the switching apparatus via the first ports; and over the load-store fabric, second interconnecting the shared I/O endpoint to the switching apparatus via the second port.
- 24. The method as recited in claim 22, wherein said first communicating comprises:
associating each of the operating system domains with a corresponding root complex.
- 25. The method as recited in claim 22, wherein said first communicating comprises:
employing PCI Express as the protocol.
- 26. The method as recited in claim 25, wherein said mapping comprises:
isolating transactions over a plurality of PCI Express bus hierarchies according to each of the operating system domains.
- 27. The method as recited in claim 26, wherein said mapping further comprises:
routing the transactions in accordance with addressing mechanisms for a particular one of the plurality of PCI Express bus hierarchies, the particular one of said plurality of PCI Express bus hierarchies corresponding to the corresponding one of the operating system domains.
- 28. The method as recited in claim 22, wherein said second communicating further comprises:
routing the transaction layer packet between the second port and the shared I/O endpoint.
- 29. The method as recited in claim 28, wherein said second communicating further comprises:
within the I/O endpoint, detecting the OS domain header; and performing the prescribed operation according to the protocol, wherein said performing is accomplished exclusively for the corresponding one of the operating system domains.
- 30. The method as recited in claim 22, wherein said second communicating comprises:
within the shared I/O endpoint, designating a transaction for a particular one of the operating system domains by embedding an OS domain header within a transaction layer packet; and first transmitting the transaction layer packet to the second port.
- 31. The method as recited in claim 30, wherein said second communicating comprises:
within the switching apparatus, detecting and removing the OS domain header from the transaction layer packet.
- 32. The method as recited in claim 31, wherein said first communicating comprises:
second transmitting the transaction layer packet to the particular one of the operating system domains according to the protocol.
CROSS-REFERENCE TO RELATED APPLICATIONS
[0001] This application claims the benefit of the following U.S. Provisional Application, which is herein incorporated by reference for all intents and purposes.
1FILINGSERIAL NUMBERDATETITLE60/555127Mar. 22, 2004PCI EXPRESS SHARED IO(NEXTIO.0108)WIRELINE PROTOCOLSPECIFICATION
[0002] This application is a continuation-in-part of co-pending U.S. patent application Ser. No. 10/802,532 (Docket: NEXTIO.0200), entitled SHARED INPUT/OUTPUT LOAD-STORE ARCHITECTURE, filed on Mar. 16, 2004, having a common assignee and common inventors, and which claims the benefit of the following U.S. Provisional Applications:
2SERIALFILINGNUMBERDATETITLE60/464382Apr. 18, 2003SHARED-IO PCI COMPLIANT(NEXTIO.0103)SWITCH60/491314Jul. 30, 2003SHARED NIC BLOCK DIAGRAM(NEXTIO.0104)60/515558Oct. 29, 2003NEXIS(NEXTIO.0105)60/523522Nov. 19, 2003SWITCH FOR SHARED I/O(NEXTIO.0106)FABRIC60/541673Feb. 4, 2004PCI SHARED I/O WIRE LINE(NEXTIO.0107)PROTOCOL
[0003] Co-pending U.S. patent application Ser. No. 10/802,532 (Docket: NEXTIO.0200), is a continuation-in-part of the following co-pending U.S. patent applications all of which have a common assignee and common inventors:
3FILINGSERIAL NUMBERDATETITLE10/757713Jan. 14, 2004METHOD AND APPARATUS(NEXTIO.0301)FOR SHAREDI/O IN A LOAD/STORE FABRIC10/757711Jan. 14, 2004METHOD AND APPARATUS(NEXTIO.0302)FOR SHAREDI/O IN A LOAD/STORE FABRIC10/757714Jan. 14, 2004METHOD AND APPARATUS(NEXTIO.0300)FOR SHAREDI/O IN A LOAD/STORE FABRIC
[0004] The three aforementioned co-pending U.S. patent applications (i.e., Ser. Nos. 10/757,713, 10/757,711, and 10/757,714) claim the benefit of the following U.S. Provisional Applications:
4SERIALFILINGNUMBERDATETITLE60/440788Jan. 15, 2003SHARED IO ARCHITECTURE(NEXTIO.0101)60/440789Jan. 21, 20033GIO-XAUI COMBINED SWITCH(NEXTIO.0102)60/464382Apr. 18, 2003SHARED-IO PCI COMPLIANT(NEXTIO.0103)SWITCH60/491314Jul. 30, 2003SHARED NIC BLOCK DIAGRAM(NEXTIO.0104)60/515558Oct. 29, 2003NEXIS(NEXTIO.0105)60/523522Nov. 19, 2003SWITCH FOR SHARED I/O(NEXTIO.0106)FABRIC60/541673Feb. 4, 2004PCI SHARED I/O WIRE LINE(NEXTIO.0107)PROTOCOL
[0005] This application is related to the following co-pending U.S. patent applications, which have a common assignee and common inventors.
5FILINGSERIAL NUMBERDATETITLE{overscore ((NEXTIO.0400))}Apr. 19, 2004SWITCHING APPARATUS ANDMETHOD FOR PROVIDINGSHARED IO WITHIN ALOAD-STORE FABRIC{overscore ((NEXTIO.0401))}Apr. 19, 2004SWITCHING APPARATUS ANDMETHOD FOR PROVIDINGSHARED IO WITHIN ALOAD-STORE FABRIC
Provisional Applications (12)
|
Number |
Date |
Country |
|
60555127 |
Mar 2004 |
US |
|
60464382 |
Apr 2003 |
US |
|
60491314 |
Jul 2003 |
US |
|
60515558 |
Oct 2003 |
US |
|
60523522 |
Nov 2003 |
US |
|
60541673 |
Feb 2004 |
US |
|
60440788 |
Jan 2003 |
US |
|
60440789 |
Jan 2003 |
US |
|
60464382 |
Apr 2003 |
US |
|
60491314 |
Jul 2003 |
US |
|
60515558 |
Oct 2003 |
US |
|
60523522 |
Nov 2003 |
US |
Continuation in Parts (4)
|
Number |
Date |
Country |
Parent |
10802532 |
Mar 2004 |
US |
Child |
10827117 |
Apr 2004 |
US |
Parent |
10757713 |
Jan 2004 |
US |
Child |
10827117 |
Apr 2004 |
US |
Parent |
10757711 |
Jan 2004 |
US |
Child |
10827117 |
Apr 2004 |
US |
Parent |
10757714 |
Jan 2004 |
US |
Child |
10827117 |
Apr 2004 |
US |