IP Library Granted Patent US 7,188,209
Granted Patent B2
US 7,188,209 · App. 10/827,117 · Granted Mar 6, 2007

Apparatus and method for sharing I/O endpoints within a load store fabric by encapsulation of domain information in transaction layer packets

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,188,209
App. No.
10/827,117
Granted
Mar 6, 2007
Kind
B2
Abstract

An apparatus having a first plurality of I/O ports, a second I/O port, and core logic. The first plurality of I/O ports is coupled to a plurality of operating system domains (OSDs) through a load-store fabric, each routing transactions between the plurality of OSDs 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 the transactions for each of the plurality of OSDs. 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. The core logic designates a corresponding one of the plurality of OSDs according to a variant of a protocol, where the protocol provides for routing of the transactions only for a single OSD.

Claims (24)

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 variant comprises encapsulating an OS domain header within a transaction layer packet that otherwise comports with said 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 first plurality of I/O ports communicates with said plurality of OSDs according to said protocol.

3. The switching apparatus as recited in claim 1 , wherein said protocol comprises PCI Express.

4. The switching apparatus as recited in claim 3 , wherein said core logic isolates said transactions over a plurality of PCI Express bus hierarchies according to said each of said plurality of OSDs.

5. The switching apparatus as recited in claim 4 , 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.

6. The switching apparatus as recited in claim 1 , 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.

7. The switching apparatus as recited in claim 6 , wherein said transaction layer packet is routed between said second I/O port and said first shared input/output endpoint.

8. The switching apparatus as recited in claim 7 , 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.

9. 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.

10. The switching apparatus as recited in claim 9 , 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.

11. 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, and wherein said variant comprises encapsulating an OS domain header within a transaction layer packet that otherwise comports with said protocol, and wherein said protocol provides exclusively for a single operating system domain within said load-store fabric.

12. The shared I/O switching mechanism as recited in claim 11 , wherein said protocol comprises PCI Express, and wherein said first transactions comport with said protocol.

13. The shared I/O switching mechanism as recited in claim 12 , 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.

14. The shared I/O switching mechanism as recited in claim 13 , 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.

15. The shared I/O switching mechanism as recited in claim 11 , wherein said core logic associates each of said operating system domains with each of a corresponding root complex.

16. The shared I/O switching mechanism as recited in claim 11 , 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.

17. The shared I/O switching mechanism as recited in claim 16 , 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.

18. The shared I/O switching mechanism as recited in claim 11 , 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.

19. The shared I/O switching mechanism as recited in claim 18 , 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.

Assignments (8)
CORRECTIVE ASSIGNMENT TO CORRECT THE EXECUTION DATE PREVIOUSLY RECORDED AT REEL: 047422 FRAME: 0464. ASSIGNOR(S) HEREBY CONFIRMS THE MERGER. Recorded Mar 6, 2019
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 048883/0702 →
MERGER Recorded Oct 5, 2018
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 047422/0464 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS Recorded Feb 3, 2017
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
Reel/Frame 041710/0001 →
PATENT SECURITY AGREEMENT Recorded Feb 11, 2016
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 037808/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 23, 2015
From: EMULEX CORPORATION
To: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
Reel/Frame 036942/0213 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 17, 2014
From: EMULEX DESIGN AND MANUFACTURING CORPORATION
To: EMULEX CORPORATION
Reel/Frame 032087/0842 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 25, 2010
From: NEXTIO INC.
To: EMULEX DESIGN AND MANUFACTURING CORPORATION
Reel/Frame 024434/0248 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 18, 2004
From: PETTEY, CHRISTOPHER J.; KHAN, ASIF; PAGAN, ANNETTE; PEKKALA, RICHARD E.; UTLEY, ROBERT HASKELL
To: NEXTIO INC.
Reel/Frame 015712/0746 →