IP Library Granted Patent US 7,782,893
Granted Patent B2
US 7,782,893 · App. 11/381,561 · Granted Aug 24, 2010

Method and apparatus for shared I/O in a load/store fabric

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,782,893
App. No.
11/381,561
Granted
Aug 24, 2010
Kind
B2
Abstract

An apparatus and method is provided for allowing I/O devices to be shared and/or partitioned among a plurality of processing complexes within the load/store fabric of each of the processing complexes without requiring modification to the operating system or driver software of the processing complexes. The apparatus and method includes a switch for selectively coupling each of the processing complexes to one or more shared I/O devices. The apparatus and method further includes placing information within packets transmitted between the switch and the I/O devices to identify which of the processing complexes the packets are associated with. The invention further includes an apparatus and method within the shared I/O devices to allow the shared I/O devices to service each of the processing complexes independently.

Claims (40)

1. An Ethernet controller which processes packets received from a plurality of root complexes via a serial load/store fabric, the Ethernet controller comprising:

a bus interface coupled to the serial load/store fabric, said bus interface associating each of the packets with their root complex; and

control register logic, having a plurality of control registers, wherein each of said plurality of control registers is selectable to service at least one of the root complexes based on the association of the packets with their originating root complex;

wherein said bus interface further comprises a multiplexer for selecting at least one of said plurality of control registers based on the associating performed by said bus interface.

2. The Ethernet controller as recited in claim 1 wherein the Ethernet controller is a 1 Gig Ethernet controller.

3. The Ethernet controller as recited in claim 1 wherein the Ethernet controller is a 10 Gig Ethernet controller.

4. The Ethernet controller as recited in claim 1 wherein the serial load/store fabric utilizes the PCI Express specification.

5. The Ethernet controller as recited in claim 1 wherein the serial load/store fabric is encapsulated within a second fabric.

6. The Ethernet controller as recited in claim 5 wherein said second fabric is a channel based fabric.

7. The Ethernet controller as recited in claim 6 wherein said second fabric comprises Advanced Switching.

8. The Ethernet controller as recited in claim 6 wherein said second fabric comprises All Ethernet.

9. The Ethernet controller as recited in claim 1 wherein the plurality of root complexes comprise a first computer executing a Microsoft Windows operating system.

10. The Ethernet controller as recited in claim 9 wherein said Microsoft Windows operating system is unaware that it is sharing the Ethernet controller with any other of the plurality of root complexes.

11. The Ethernet controller as recited in claim 9 wherein the plurality of root complexes further comprise a second computer executing a Linux operating system.

12. The Ethernet controller as recited in claim 11 wherein said Linux operating system is unaware that it is sharing the Ethernet controller with said first computer.

13. The Ethernet controller as recited in claim 1 wherein said bus interface comprises a table for associating each of said plurality of control registers with at least one of the plurality of root complexes.

14. The Ethernet controller as recited in claim 13 wherein said table is used to select one of said plurality of control registers to be used to process each of the packets received by the Ethernet controller.

15. The Ethernet controller as recited in claim 1 wherein each of said plurality of control registers comprise:

a set of dedicated control registers; and

a set of shared or aliased control registers.

16. The Ethernet controller as recited in claim 15 wherein said set of dedicated control registers are dedicated to a particular one of the plurality of root complexes.

17. The Ethernet controller as recited in claim 15 wherein said set of shared or aliased control registers, support the plurality of root complexes.

18. The Ethernet controller as recited in claim 1 further comprising:

a plurality of direct memory access (DMA) engines, each for handling packets from at least one of the plurality of root complexes; and

arbitration logic, coupled to said plurality of direct memory access engines, for arbitrating selection of said plurality of direct memory access engines used to process the packets received by the Ethernet controller from the plurality of root complexes.

19. The Ethernet controller as recited in claim 18 wherein said arbitration logic selects a particular one of said plurality of direct memory access engines for processing of packets received from more than one of the plurality of root complexes.

20. A shared network interface controller comprising:

a bus interface configured to be coupled to a serial load/store fabric; and

a plurality of control registers selectable by said bus interface to be associated with packets from a plurality of root complexes;

wherein said bus interface comprises a lookup table for associating said plurality of control registers with said plurality of root complexes; and

wherein said bus interface further comprises a multiplexer for selecting the plurality of control registers utilizing information within said lookup table.

21. The shared network interface controller as recited in claim 20 wherein said serial load/store fabric comprises PCI Express.

22. The shared network interface controller as recited in claim 20 wherein said bus interface is coupled to a shared I/O switch via said serial load/store fabric.

23. The shared network interface controller as recited in claim 22 wherein said shared I/O switch places header information within said packets.

24. An Ethernet controller which processes packets received from a plurality of root complexes via a serial load/store fabric, the Ethernet controller comprising:

a bus interface coupled to the serial load/store fabric, said bus interface associating each of the packets with their root complex; and

control register logic, having a plurality of control registers, wherein each of said plurality of control registers is selectable to service at least one of the root complexes based on the association of the packets with their originating root complex;

a plurality of direct memory access (DMA) engines, each for handling packets from at least one of the plurality of root complexes; and

arbitration logic, coupled to said plurality of direct memory access engines, for arbitrating selection of said plurality of direct memory access engines used to process the packets received by the Ethernet controller from the plurality of root complexes.

25. The Ethernet controller as recited in claim 24 , wherein said arbitration logic selects a particular one of said plurality of direct memory access engines for processing of packets received from more than one of the plurality of root complexes.

Assignments (6)
RELEASE OF SECURITY INTEREST IN PATENT COLLATERAL AT REEL/FRAME NO. 37900/0720 Recorded Jul 13, 2018
From: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
To: MELLANOX TECHNOLOGIES, LTD.
Reel/Frame 046542/0792 →
PATENT SECURITY AGREEMENT Recorded Feb 24, 2016
From: MELLANOX TECHNOLOGIES, LTD.
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 037900/0720 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 18, 2013
From: NEXTIO, INC.
To: MELLANOX TECHNOLOGIES LTD.
Reel/Frame 031805/0953 →
RELEASE OF SECURITY INTEREST Recorded Jun 18, 2012
From: SILICON VALLEY BANK
To: NEXTIO, INC.
Reel/Frame 028396/0731 →
SECURITY AGREEMENT Recorded Feb 24, 2012
From: NEXTIO, INC.
To: SILICON VALLEY BANK
Reel/Frame 027755/0771 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 17, 2006
From: PETTEY, CHRISTOPHER J; KHAN, ASIF; PAGAN, ANNETTE; PEKKALA, RICHARD E.; UTLEY, ROBERT HASKELL
To: NEXTIO INC.
Reel/Frame 017631/0410 →