IP Library Granted Patent US 7,447,778
Granted Patent B2
US 7,447,778 · App. 10/185,212 · Granted Nov 4, 2008

System and method for a shared I/O subsystem

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,447,778
App. No.
10/185,212
Granted
Nov 4, 2008
Kind
B2
Abstract

A computer system that includes a plurality of servers, and a shared I/O subsystem coupled to each of the servers and to one or more I/O interfaces. The shared I/O subsystem services I/O requests made by two or more of the servers. Each I/O interface may couple to a network, appliance, or other device. The I/O requests serviced by the shared I/O subsystem may alternatively include software initiated or hardware initiated I/O requests. Different servers coupled to the shared I/O subsystem may use different operating systems, and each I/O interface may be used by two or more servers.

Claims (77)

1. A network system comprising:

a plurality of servers, where each server includes a host channel adapter (HCA); and

a shared input/output (I/O) subsystem directly connected to each of said plurality of servers via each of said HCA, wherein each HCA communicates with the shared I/O subsystem by sending I/O requests through a switching fabric and the shared I/O subsystem processes the I/O requests, obviating a need for a dedicated I/O subsystem for each of the plurality of servers; and

wherein the shared I/O subsystem includes:

(a) a plurality of I/O interface unit for providing a connection to the plurality of servers to a different type of network; wherein each I/O interface unit executing code for a link layer, a transport layer and an application protocol, individually provides all the functions of the shared I/O subsystem; and connecting two or more I/O interface units provides a larger scalable shared I/O subsystem;

wherein each I/O interface unit includes:

(i) a hardware controller that provides a physical interface between the I/O interface unit and an I/O management link; wherein the hardware controller sends and receives frames over the I/O management link; and

(ii) a software driver executed by a processor for the I/O interface unit, the software driver interfacing with the hardware controller which allows multiple protocols to interface with the software driver via a multiplexing interface; and

(b) a switch card for operationally coupling the plurality of I/O interface units, wherein the switch card receives a data packet from one I/O interface unit and directs the data packet to another I/O interface unit, with the two I/O interface units being coupled to different computing systems following different network protocols; and the switch card includes a controller for implementing functions of an I/O management unit, a module management unit that facilitates communication between the I/O management unit and a switching unit.

2. The system of claim 1 , wherein at least one of said I/O interface units couples to an appliance.

3. The system of claim 2 , wherein said shared I/O subsystem is a scalable infrastructure that is independently scalable from said appliance.

4. The system of claim 1 , wherein at least one of said I/O interface units couples to a device.

5. The system of claim 4 , wherein said shared I/O subsystem is a scalable infrastructure that is independently scalable from said device.

6. The system of claim 1 , wherein said network is a Storage Area Network.

7. The system of claim 1 , wherein said network is an InterProcess Communications Network.

8. The system of claim 1 , wherein said network is a Local Area Network.

9. The system of claim 1 , wherein said network is a Wide Area Network.

10. The system of claim 1 , wherein said network is a Metropolitan Area Network.

11. The system of claim 1 , wherein said I/O requests include software initiated I/O requests.

12. The system of claim 1 , wherein said I/O requests include hardware initiated I/O requests.

13. The system of claim 1 , wherein at least one of said servers uses an operating system that is different from an operating system used by one other of said servers.

14. The system of claim 1 , wherein at least one of said I/O interface units is used by two or more of said servers.

15. The system of claim 1 , wherein said switching fabric includes a plurality of dedicated circuits, and wherein each of said servers communicates with any one of said servers via said dedicated circuits.

16. The system of claim 1 , wherein said switching fabric uses an InfiniBand protocol.

17. The system of claim 1 , wherein said shared I/O subsystem is a scalable infrastructure that is independently scalable from said servers.

18. The system of claim 1 , wherein said shared I/O subsystem is a scalable infrastructure that is independently scalable from said switching fabric.

19. The system of claim 1 , wherein said shared I/O subsystem comprises a scalable infrastructure that is independently scalable from said network.

20. The system of claim 1 , wherein the controller of each of said I/O interface units processes said I/O requests made by said servers.

21. The system of claim 1 , wherein at least one of said I/O interface units provides a redundant connection to at least one of said servers.

22. The system of claim 1 , wherein said at least one of said I/O interface units follows an InfiniBand protocol.

23. The system of claim 1 , wherein said I/O management unit performs at least one of: a configuration function, a management function, and a monitoring function.

24. The system of claim 1 , wherein said shared I/O subsystem comprises two or more of said I/O management units to provide fault tolerant operation.

25. The system of claim 1 , wherein at least one of said I/O interface units includes a processing element.

26. The system of claim 1 , wherein said shared I/O subsystem includes a backplane having a plurality of I/O slots, and wherein at least one of said I/O slots has at least one of a switching unit and a PCI bus disposed therein.

27. The system of claim 26 , wherein said switching unit provides interconnection for each of said servers coupled to said shared I/O subsystem.

28. The system of claim 1 , wherein said shared I/O subsystem includes a backplane having a plurality of I/O slots, and wherein at least one of said I/O slots has at least one of said I/O interface units disposed therein.

29. The system of claim 1 , wherein said servers are clustered via said shared I/O subsystem to provide parallel processing.

30. The system of claim 1 , wherein said servers are clustered via said shared I/O subsystem to provide InterProcess Communications.

31. The system of claim 30 , wherein said servers use said InterProcess Communications to provide clustered applications.

32. The system of claim 1 , wherein said servers are clustered via said shared I/O subsystem to provide load balancing.

33. The system of claim 1 , wherein said servers are clustered via said shared I/O subsystem to provide fault tolerant operation.

34. The system of claim 1 , wherein said servers are coupled to two or more of said shared I/O subsystems to provide fault tolerant operation.

35. The system of claim 1 , wherein said servers are coupled to two or more of said shared I/O subsystems to provide load balancing.

36. The system of claim 1 , further comprising a switching unit for coupling at least one of said I/O interface units to at least one of a network, an appliance, and a device.

37. The system of claim 36 , wherein said switching unit uses an InfiniBand protocol.

38. The system of claim 1 , further comprising two or more of said shared I/O subsystems, wherein each of said shared I/O subsystems is coupled to at least another one of said shared I/O subsystems, and wherein each of said servers is coupled to at least one of said shared I/O subsystems.

39. A shared input/output (I/O) subsystem for processing I/O requests received from a plurality of servers, each server communicating with the shared I/O subsystem via a host channel adapter (HCA), the shared I/O subsystem, comprising:

(a) a plurality of I/O interface units for providing a connection to the plurality of servers to a different type of network; wherein each I/O interface unit provides all the functions of the shared I/O subsystem; and connecting two or more I/O interface units provides a larger scalable shared I/O subsystem;

wherein each I/O interface unit includes:

(i) a hardware controller that provides a physical interface between the I/O interface unit and an I/O management link; and

(ii) a software driver executed by a processor for the I/O interface unit, the software driver interfacing with the hardware controller, which allows multiple protocols, including a link layer, to interface with the software driver via a multiplexing interface;

(b) a switch card for operationally coupling the plurality of I/O interface units, wherein the switch card receives a data packet from one I/O interface unit and directs the data packet to another I/O interface unit, with the two I/O interface units being coupled to different computing systems following different network protocols; wherein the switch card includes:

(i) an I/O management unit that provides a configuration function, a management function and a monitoring function for communication between the plurality of I/O interface units;

(ii) a switching unit for receiving and filtering I/O requests and identifying an I/O interface unit on which to send the I/O requests, wherein the switching unit includes a plurality of ports connecting to the plurality of servers; and

(iii) a module management unit for facilitating communication between the I/O management unit and the switching unit;

wherein a hardware controller for the switch card implementing a plurality of physical interfaces also implements the functionality of the I/O management unit, the module management unit and the switching unit; and

wherein each HCA communicates I/O requests to the shared I/O subsystem via a switching fabric for reading and writing data to a storage device, the shared I/O subsystem processing the I/O requests and obviating a need for a dedicated I/O subsystem for each of the plurality of servers.

40. The shared I/O subsystem of claim 39 , wherein the network is a Storage Area Network, an InterProcess Communication network; a Local Area Network and a Metropolitan Area Network.

41. The shared I/O subsystem of claim 39 , wherein at least one of the I/O interface units follows an InfiniBand Protocol.

42. The shared I/O subsystem of claim 39 , wherein the shared I/O subsystem is centralized, which obviates a need for a dedicated host bus adapter and a dedicated network interface card for each of the plurality of servers.

43. The shared I/O subsystem of claim 39 , wherein the switching fabric is an InfiniBand Fabric.

44. A shared input/output (I/O) subsystem for processing I/O requests received from a plurality of servers, each server communicating with the shared I/O subsystem via a host channel adapter (HCA), the shared I/O subsystem, comprising:

(a) a plurality of I/O interface units for providing a connection to the plurality of servers to a different type of network; wherein each I/O interface unit provides all the functions of the shared I/O subsystem; and connecting two or more I/O interface units provides a larger scalable shared I/O subsystem;

wherein each I/O interface unit includes:

(i) a hardware controller that provides a physical interface between the I/O interface unit and an I/O management link; and

(ii) a software driver executed by a processor for the I/O interface unit, the software driver interfacing with the hardware controller, which allows multiple protocols including a link layer, to interface with the software driver via a multiplexing interface;

(b) a switch card for operationally coupling the plurality of I/O interface units, wherein the switch card receives a data packet from one I/O interface unit and directs the data packet to another I/O interface unit, with the two I/O interface units being coupled to different computing systems following different network protocols; wherein the switch card includes:

(i) an I/O management unit that provides a configuration function, a management function and a monitoring function for communication between the plurality of I/O interface units;

(ii) a switching unit for receiving and filtering I/O requests and identifying an I/O interface unit on which to send the I/O requests, wherein the switching unit includes a plurality of ports connecting to the plurality of servers; and

(iii) a module management unit for facilitating communication between the I/O management unit and the switching unit;

wherein a hardware controller for the switch card implementing a plurality of physical interfaces also implements the functionality of the I/O management unit, the module management unit and the switching unit; and

(c) a target channel adapter (TCA) coupled to each I/O interface unit and communicating with each HCA via a switching fabric; wherein the TCA acts as a layer between the plurality of servers and the I/O interface unit for handling all I/O requests; and

wherein each HCA communicates I/O requests to the TCA via the switching fabric for reading and writing data to a storage device, the TCA processing the I/O requests obviating a need for a dedicated I/O subsystem for each of the plurality of servers.

45. The shared I/O subsystem of claim 44 , wherein the network is a Storage Area Network, an InterProcess Communication network; a Local Area Network and a Metropolitan Area Network.

46. The shared I/O subsystem of claim 44 , wherein at least one of the I/O interface units follows an InfiniBand Protocol.

47. The shared I/O subsystem of claim 44 , wherein the shared I/O subsystem is centralized, which obviates a need for a dedicated host bus adapter and a dedicated network interface card for each of the plurality of servers.

48. The shared I/O subsystem of claim 44 , wherein the switching fabric is an InfiniBand Fabric.

Assignments (4)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 15, 2022
From: INTEL CORPORATION
To: TAHOE RESEARCH, LTD.
Reel/Frame 061175/0176 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 7, 2012
From: QLOGIC CORPORATION
To: INTEL CORPORATION
Reel/Frame 028168/0202 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 13, 2007
From: SILVERSTORM TECHNOLOGIES, INC.
To: QLOGIC, CORPORATION
Reel/Frame 018886/0449 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 24, 2006
From: INFINICON SYSTEMS
To: SILVERSTORM TECHNOLOGIES, INC.
Reel/Frame 017611/0749 →