Claims
- 1. A storage system comprising:
a switch coupled between a host computer and at least one storage device, wherein the switch comprises a memory for storing frame header substitution information; a storage controller coupled to the switch; wherein the switch is coupled to receive a first data transfer command from a host computer and configured to provide the first data transfer command to the storage controller; wherein the storage controller is configured to generate a second data transfer command and frame header substitution information in response to the first data transfer command, and to provide the second data transfer command and the frame header substitution information to the switch; and wherein the switch is further configured to route the second data transfer command to the at least one storage device, to store the frame header substitution information within the memory, and to replace header information of a data frame with the substitute header information such that the data frame is routed directly between the host computer and the storage device and does not pass through the storage controller.
- 2. The storage system as recited in claim 1, wherein the data frame comprises header information including a destination address, and wherein the frame header substitution information includes a substitute destination address, and wherein after the switch replaces header information of the data frame with the substitute header information the switch routes the data frame according to the substitute destination address, and wherein the storage controller generates the substitute destination address such that the data frame is routed directly between the host computer and the storage device and does not pass through the storage controller.
- 3. The storage system as recited in claim 2, wherein when the first data transfer command is a read command: (i) the substitute destination address is the address of the host computer, (ii) the switch receives the data frame from the at least one storage device, and (iii) the switch routes the data frame received from the at least one storage device directly to the host computer such that the data frame does not pass through the storage controller.
- 4. The storage system as recited in claim 2, wherein when the first data transfer command is a write command: (i) the substitute destination address is the address of the at least one storage device, (ii) the switch receives the data frame from the host computer, and (iii) the switch routes the data frame received from the host computer directly to the at least one storage device such that the data frame does not pass through the storage controller.
- 5. The storage system as recited in claim 2, wherein the frame header substitution information includes target header information and corresponding substitute header information.
- 6. The storage system as recited in claim 5, wherein upon receiving a data frame, the switch compares the header information of the data frame to the target header information stored within the memory, and wherein the switch replaces the header information of the data frame with the substitute header information corresponding to the target header information if the header information of the data frame matches the target header information.
- 7. The storage system as recited in claim 6, wherein the substitute header information comprises the substitute destination address, and wherein following replacement of the header information of the data frame with the substitute header information, the switch routes the data frame dependent upon the substitute destination address such that the data frame is routed directly between the host computer and the storage device and does not pass through the storage controller.
- 8. The storage system as recited in claim 7, wherein following replacement of the header information of the data frame with the substitute header information, the switch calculates a cyclic redundancy check (CRC) value for the data frame and inserts the CRC value into the data frame.
- 9. The storage system as recited in claim 1, wherein the storage controller is further configured to receive via the switch first status information from the at least one storage device and to provide to the host computer via the switch second status information, thereby providing to the host computer a status of the resultant transfer of data.
- 10. The storage system as recited in claim 1, wherein the at least one storage device comprises a plurality of disk drives, and wherein the storage controller manages the at least one storage device as a RAID (Redundant Array of Independent Disks) array, and wherein the storage controller generates the second data transfer command dependent upon the RAID array configuration of the at least one storage device.
- 11. A computer system comprising:
a host computer; at least one storage device configured to store data; a switch coupled between the host computer and the at least one storage device, wherein the switch is configured to route information encapsulated as frames according to destination address information within a header of the frames, and wherein the switch comprises a memory for storing frame header substitution information; a storage controller coupled to the switch, wherein the storage controller is configured to manage the storage of data within the at least one storage device; wherein the switch is coupled to receive a first data transfer command from the host computer and configured to provide the first data transfer command to the storage controller; wherein the storage controller is further configured to generate a second data transfer command and frame header substitution information in response to the first data transfer command, and to provide the second data transfer command and the frame header substitution information to the switch; and wherein the switch is further configured to route the second data transfer command to the at least one storage device, to store the frame header substitution information within the memory, and to replace header information of a data frame with the substitute header information such that the data frame is routed directly between the host computer and the storage device and does not pass through the storage controller.
- 12. The computer system as recited in claim 11, wherein the frame header substitution information includes target header information and corresponding substitute header information.
- 13. The computer system as recited in claim 12, wherein upon receiving the data frame, the switch compares the header information of the data frame to the target header information stored within the memory, and wherein the switch replaces the header information of the data frame with the substitute header information corresponding to the target header information if the header information of the data frame matches the target header information.
- 14. The computer system as recited in claim 13, wherein the substitute header information comprises a substitute destination address, and wherein following replacement of the header information of the data frame with the substitute header information, the switch routes the data frame dependent upon the substitute destination address such that the data frame is routed directly between the host computer and the storage device and does not pass through the storage controller.
- 15. The computer system as recited in claim 14, wherein following replacement of the header information of the data frame with the substitute header information, the switch calculates a cyclic redundancy check (CRC) value for the data frame and inserts the CRC value into the data frame.
- 16. The computer system as recited in claim 11, wherein the at least one storage device comprises a plurality of disk drives, and wherein the storage controller manages the at least one storage device as a RAID (Redundant Array of Independent Disks) array, and wherein the storage controller generates the second data transfer command dependent upon the RAID array configuration of the at least one storage device.
- 17. The computer system as recited in claim 11, wherein information is conveyed between the host computer, the switch, the at least one storage device, and the storage controller according to the Fibre Channel protocol.
- 18. A data switch, comprising;
a memory unit for storing frame header substitution information, wherein the frame header substitution information comprises a substitute destination address; a plurality of input ports, wherein each of the plurality of input ports is adapted for coupling to a transmission medium and configured to receive information via the transmission medium; a plurality of output ports, wherein each of the plurality of output ports is adapted for coupling to a transmission medium and configured to transmit information via the transmission medium; an array of switching elements for selectively coupling the plurality of input ports to the plurality of output ports; a switch matrix control unit coupled to receive routing information from the plurality of input ports and configured to control the array of switching elements dependent upon the routing information; wherein each of the plurality of input ports is further configured to receive frame header substitution information and to store the frame header substitution information within the memory unit; and wherein each of the plurality of input ports is further configured to: (i) receive a data frame comprising header information including a destination address, (ii) replace the header information of the data frame with the substitute header information stored within the memory unit such that the substitute destination address becomes the destination address, and (iii) provide the destination address to the switch matrix control unit as the routing information.
- 19. The data switch as recited in claim 18, wherein the memory unit is distributed among the plurality of input ports such that a given input port comprises a portion of the memory unit for storing frame header substitution information associated with the input port.
- 20. The data switch as recited in claim 18, wherein the frame header substitution information includes target header information and corresponding substitute header information.
- 21. The data switch as recited in claim 20, wherein each of the plurality of input ports further comprises a port control unit configured to control the input port and an input queue for storing received information, wherein the port control unit is coupled to the memory unit and to the input queue, and wherein when the data frame is received: (i) the data frame is stored within the input queue, (ii) the port control unit compares the header information of the data frame to the target header information stored within the memory unit, and (iii) the port control unit replaces the header information of the data frame with the substitute header information corresponding to the target header information if the header information of the data frame matches the target header information.
- 22. The data switch as recited in claim 21, wherein after the port control unit replaces the header information of the data frame with the substitute header information, the port control unit calculates a cyclic redundancy check (CRC) value for the data frame and inserts the CRC value into the data frame.
- 23. A method for routing a data frame, comprising:
forming a table of target header information and corresponding substitute header information, wherein the substitute header information comprises a substitute destination address; comparing header information of the data frame to the target header information; replacing the header information of the data frame with the substitute header information corresponding to the target header information if the header information of the data frame matches the target header information; and routing the data frame according to the substitute destination address of the substitute header information.
CONTINUATION DATA
[0001] This patent application is a continuation-in-part to application Ser. No. 09/262,407 entitled “Scalable Performance Storage Architecture” by Fay Chong, Jr. filed Mar. 4, 1999, and application Ser. No. 09/261,978 entitled “Redirected I/O for Scalable Performance Storage Architecture” by Fay Chong, Jr. filed Mar. 4, 1999.
[0002] Patent application Ser. No. 09/262,407 entitled “Scalable Performance Storage Architecture” and application Ser. No. 09/261,978 entitled “Redirected I/O for Scalable Performance Storage Architecture” are incorporated herein by reference in their entirety.
Divisions (1)
|
Number |
Date |
Country |
Parent |
09358356 |
Jul 1999 |
US |
Child |
10039141 |
Jan 2002 |
US |
Continuation in Parts (2)
|
Number |
Date |
Country |
Parent |
09262407 |
Mar 1999 |
US |
Child |
09358356 |
Jul 1999 |
US |
Parent |
09261978 |
Mar 1999 |
US |
Child |
09358356 |
Jul 1999 |
US |