Claims
- 1. An interconnecting unit for coupling a plurality of hosts to a plurality of storage devices, the coupling involving exchange of a plurality of serial I/O structures between the plurality of hosts and the plurality of storage devices, the interconnecting unit comprising:
a. a plurality of device control units enabling distribution of a plurality of commands to the plurality of storage devices, each of the plurality of commands being an element of a serial I/O structure; b. a plurality of host interface units, each of the plurality of host interface units synchronizing data between a host and the interconnecting unit; c. a plurality of device interface units, each of the plurality of device interface units synchronizing data between a storage device and the interconnecting unit; and d. an interconnect routing unit to connect a device control unit to a device interface unit.
- 2. The interconnecting unit according to claim 1, wherein each of the plurality of the elements of a serial I/O structure is transmitted in a serial bit format.
- 3. The interconnecting unit according to claim 1, wherein each of the plurality of host interface units converts each of the plurality of the received elements of the serial I/O structure in a serial bit stream format to a character bit format.
- 4. The interconnecting unit according to claim 1, wherein each of the plurality of device interface units converts each of the plurality of the received elements of the serial I/O structure in a serial bit stream format to a character bit format.
- 5. The interconnecting unit according to claim 1, wherein each of the plurality of device control units comprises:
a. a target transmit and receive block monitoring the host for the element of the serial I/O structure; b. a device selector unit selecting the storage device to which the element of the serial I/O structure is to be directed; and c. an initiator transmit and receive block delivering the element of the serial I/O structure to the selected storage device and monitoring the plurality of storage devices for a response subsequent to the delivering of the element of the serial I/O to the selected storage device, the response being sent as an element of the serial I/O structure; wherein the target transmit and receive block is capable of monitoring the host for the next serial I/O structure while the initiator transmit and receive block is monitoring the plurality of storage devices for the response.
- 6. The interconnecting unit according to claim 5, wherein each of the plurality of device control units further comprises an error register, the error register enabling identification of a fault location in case a fault is encountered during the communication between the plurality of hosts and the plurality of storage devices.
- 7. The interconnecting unit according to claim 5, wherein the target transmit and receive block comprises:
a. a target transport receive unit forwarding the element of the serial I/O structure to the device selector for selecting the storage device; and b. a target transport transmit unit to forward a receipt from the selected storage device to the host connected to the target transmit and receive block, the receipt being an acknowledgment that the delivered element of the serial I/O structure has been accepted by the selected storage device.
- 8. The interconnecting unit according to claim 7, wherein the target transmit and receive block further comprises a link unit for converting the element of the received serial I/O structure in the character bit format to a fixed size format.
- 9. The interconnecting unit according to claim 5, wherein the device selector unit comprises:
a. a write select logic unit selecting a routing path from the host through the interconnect routing unit to the selected storage device; b. a read select logic unit selecting a routing path from the selected storage device through the interconnect routing unit to the host; and c. a flow select logic unit negotiating between the host and the selected storage device in case the storage device is not queue-capable.
- 10. The interconnecting unit according to claim 9, wherein the device selector unit further comprises a command queue block storing a pending command while either the selected storage device has not yet responded or the selected storage device has responded but other commands is being processed.
- 11. The interconnecting unit according to claim 5, wherein the initiator transmit and receive block comprises:
a. an initiator transmit unit for delivering the identified element of the serial I/O to the selected storage device; and b. an initiator receive unit for monitoring the plurality of storage devices for the an element of a serial I/O element.
- 12. The interconnecting unit according to claim 11, wherein the initiator transmit and receive block further comprises:
a. a first link connected to the initiator transmit unit and the interconnect routing unit; and b. a second link connected to the initiator receive unit and the interconnecting routing; each of the links converting the serial bit stream into the character bit format.
- 13. The interconnecting unit according to claim 5, wherein each of the plurality of device control units further comprises a data processing logic unit, the data processing logic unit providing either security or compression to the data before being delivered to each of the plurality of storage devices.
- 14. A data storage system, the data storage system comprising:
a. a plurality of hosts, each of the plurality of hosts being queue capable; b. a plurality of storage devices; c. an interconnecting unit for coupling the plurality of hosts to the plurality of storage devices, the coupling involving exchange of a plurality of serial I/O structure between the plurality of hosts and the plurality of storage devices, the interconnecting unit comprising:
i. a plurality of device control units enabling distribution of a plurality of commands to the plurality of storage devices, each of the plurality of commands being an element of serial I/O structure; ii. a plurality of host interface units, each of the plurality of host interface units synchronizing the data between the host and the interconnecting unit, each of the plurality of host interface units converting the elements of the serial I/O structure in a serial bit stream format to a character bit format; iii. a plurality of device interface units, each of the plurality of device interface units synchronizing the data between the storage device and the interconnecting unit, the device interface unit converting the element of the serial I/O structure in the serial bit stream format to the character bit format; and iv. an interconnect routing unit to connect a device control unit to a device interface unit.
- 15. A method for data storage between a plurality of hosts and a plurality of storage devices, the method comprising the steps of:
a. receiving a command from a host, the command being directed to a storage device; b. selecting the storage device to which the received command is directed; c. delivering the command to the selected storage device; d. receiving a receipt from the selected storage device if the command is delivered without error; e. monitoring the plurality of hosts for a next command and plurality of storage device for a response to the delivered command; repeating steps a to d if the next command is received from the host; performing steps f to h if the response is received from one of the storage devices; f. identifying whether the storage device is queue capable; g. routing the response to the host, the routing being based on the identification of the storage device; h. locking host and the responding storage device for operation, the operation being based on the command; i. checking if there is a command in a queue; repeating steps f to h if there is a command in the queue.
- 16. The method according to claim 15, wherein the step of routing comprises routing the response from the storage device to the host if the storage device is queue capable.
- 17. The method according to claim 15, wherein the step of routing comprises negotiating with the host to give a tag to the responding storage device if the storage device is not queue capable, the tag being the same tag used by the host to select the storage device.
- 18. The method according to claim 14, wherein the step of locking comprises the steps of:
a. identifying whether the operation is a read operation or a write operation; b. the storage device sending a read data to the host if the read operation is to be performed; and c. the storage device sending a response to the host enabling the host to write a data if the write operation is to be performed.
REFERENCE TO RELATED APPLICATIONS
[0001] This application claims the priority of U.S. Provisional Patent Application No. 60/462,336, entitled “Method And Apparatus For Storage Command And Data Router”, by Ghaffari, et al., filed Apr. 14, 2003, which is incorporated as reference as of set forth herein in its entirety.
Provisional Applications (1)
|
Number |
Date |
Country |
|
60462336 |
Apr 2003 |
US |