Claims
- 1. An adapter for enabling multiple hosts to share access to a single serial ATA device, comprising:
a switch for receiving commands from multiple hosts; a memory module for storing identifying information associated with a received command; an arbitration logic module operatively connected to the switch for assigning a priority scheme to received commands; and a state machine that determines when a received command has been completed by the serial ATA device and updates the memory module to indicate that the command has been completed.
- 2. An adapter according to claim 1, wherein the switch includes an input for receiving commands from two hosts.
- 3. An adapter according to claim 1, wherein the memory module stores the original Tag associated with each outstanding command.
- 4. An adapter according to claim 3, wherein the memory module further stores information identifying the host that originated the command.
- 5. An adapter according to claim 4, wherein the memory module further stores information identifying the type of queued command.
- 6. An adapter according to claim 1, further comprising a pointer queue for indicating available spaces in the memory module.
- 7. An adapter according to claim 1, wherein the arbitration logic module implements a round-robin priority scheme.
- 8. An adapter according to claim 1, further comprising a first buffer for storing and decoding information received from a host.
- 9. An adapter according to claim 1, further comprising a second buffer for storing and decoding information received from the serial ATA device.
- 10. An adapter according to claim 1, further comprising a third buffer for storing non-queued commands received from a host.
- 11. A method for enabling multiple hosts to share access to a single serial ATA device, comprising the steps of:
receiving commands from a plurality of hosts; storing identifying information associated with received commands in a memory module; executing an arbitration scheme to assign a priority to received commands; forwarding the received command having the highest priority to the serial ATA device; monitoring execution of the commands by the serial ATA device; and updating the memory module to reflect completion of a command.
- 12. A method according to claim 11, wherein the step of storing identifying information includes storing the original Tag associated with each outstanding command.
- 13. A method according to claim 12, wherein the step of storing identifying information includes storing information identifying the host that originated the command.
- 14. A method according to claim 12, wherein the step of storing identifying information includes storing information identifying the type of queued command.
- 15. A method according to claim 11, wherein the step of monitoring execution of the commands by the serial ATA device includes decoding incoming ATA FIS's passed up from a Link Layer state machines associated with each port.
- 16. A method according to claim 15, wherein the step of monitoring execution of the commands by the serial ATA device further includes detecting serial ATA primitives that indicate the completion of FIS transmissions and receptions.
- 17. A storage module adaptable for use in a storage area network, comprising:
a plurality of host bus adapters that receive communication requests from one or more host computers; a plurality of storage devices communicatively connected with the host bus adapters, wherein the plurality of storage devices includes an ATA disk drive; and a dual port adapter connected to at least one ATA disk drive, such that the ATA disk drive can maintain communications with at least two host bus adapters.
- 18. The storage module of claim 17, further comprising a switch communicatively connected to the host bus adapters and the dual port adapters, wherein the switch routes communications from a host bus adapter to a dual port adapter.
- 19. The storage module of claim 18, further comprising a bus communicatively connected to the host bus adapter and the dual port adapters.
- 20. The storage module of claim 17, wherein the dual port adapter includes:
a switch for receiving commands from multiple hosts; a memory module for storing identifying information associated with a received command; an arbitration logic module operatively connected to the switch for assigning a priority scheme to received commands; and a state machine that determines when a received command has been completed by the serial ATA device and updates the memory module to indicate that the command has been completed.
RELATED APPLICATION
[0001] The present application is a continuation-in-part of U.S. patent application Ser. No. 10/177,274, filed Jun. 21, 2002, entitled “SYSTEM AND METHOD FOR PROVIDING MULTI-INITIATOR CAPABILITY TO AN ATA DRIVE”, and assigned to COMPAQ INFORMATION TECHNOLOGIES GROUP, L.P., Houston, Tex., the disclosure of which is herein specifically incorporated by this reference.
Continuation in Parts (1)
|
Number |
Date |
Country |
Parent |
10177274 |
Jun 2002 |
US |
Child |
10373969 |
Feb 2003 |
US |