IP Library Granted Patent US 7,844,715
Granted Patent B2
US 7,844,715 · App. 12/199,098 · Granted Nov 30, 2010

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,844,715
App. No.
12/199,098
Granted
Nov 30, 2010
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 (46)

1. A network system comprising:

a plurality of servers operationally coupled to a shared input/output (I/O) subsystem; wherein each of the plurality of servers communicate with the shared I/O subsystem by sending I/O requests and the shared I/O subsystem processes the I/O requests;

wherein the shared I/O subsystem includes:

(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 individually provides all the functions of the shared I/O subsystem; and by 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; and the switch card includes a controller for implementing functions of an I/O management unit and a module management unit that facilitates communication between the I/O management unit and a switching unit.

2. The system of claim 1 , wherein said network is one or more of a Storage Area Network, an Inter-Process Communications Network, a Local Area Network, a Wide Area Network, and a Metropolitan Area Network.

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

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

5. 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 plurality of servers.

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

7. The system of claim 1 , wherein each of the plurality of servers include a host channel adapter that communicates with the shared I/O subsystem by sending I/O requests through a switching fabric.

8. The system of claim 7 , wherein the switching fabric includes a plurality of dedicated circuits and each of said plurality of servers communicate with any one of said servers via said dedicated circuits.

9. The system of claim 7 , wherein said switching fabric uses an InfiniBand protocol.

10. A shared input/output (I/O) subsystem processing I/O requests received from a plurality of servers, 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 functions of the shared I/O subsystem and each I/O interface unit includes:

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

(ii) a software driver for interfacing with multiple protocols; 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; and

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 having a plurality of ports connecting to the plurality of servers; wherein the switching unit receives and filters I/O requests and identifies an I/O interface unit on which to send the I/O requests; 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 implements the functionality of the I/O management unit, the module management unit and the switching unit.

11. The shared I/O subsystem of claim 10 , wherein the network includes one or more of a Storage Area Network, an Inter-Process Communication network; a Local Area Network and a Metropolitan Area Network.

12. The shared I/O subsystem of claim 10 , wherein at least one of the I/O interface units supports an InfiniBand Protocol.

13. The shared I/O subsystem of claim 10 , 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.

14. A shared input/output (I/O) subsystem for processing I/O requests received from a plurality of servers, 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 functions of the shared I/O subsystem; and connects two or more I/O interface units;

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 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 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 communicates with each of the plurality of servers 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.

15. The shared I/O subsystem of claim 14 , wherein the network includes one or more of a Storage Area Network, an Inter-Process Communication network; a Local Area Network and a Metropolitan Area Network.

16. The shared I/O subsystem of claim 14 , wherein at least one of the I/O interface units supports an InfiniBand Protocol.

17. The shared I/O subsystem of claim 14 , 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.

18. The shared I/O subsystem of claim 14 , wherein said servers are coupled to two or more of said shared I/O subsystems to provide fault tolerant operation.

19. The shared I/O subsystem of claim 14 , wherein said servers are coupled to two or more of said shared I/O subsystems to provide load balancing.

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

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 15, 2022
From: INTEL CORPORATION
To: TAHOE RESEARCH, LTD.
Reel/Frame 061175/0176 →
CORRECTIVE ASSIGNMENT TO CORREC THE PATENT NUMBER 7,884,715, PREVIOUSLY RECORDED ON REEL 028168 FRAME 0202. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded May 24, 2012
From: QLOGIC CORPORATION
To: INTEL CORPORATION
Reel/Frame 028294/0699 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 7, 2012
From: QLOGIC CORPORATION
To: INTEL CORPORATION
Reel/Frame 028168/0202 →