Claims
- 1. A disk array system, comprising:
a plurality of controllers, each of which controls a respective ATA (Advanced Technology Attachment) disk drive, said controllers being external to the respective ATA disk drives; and a microcontroller that dispatches disk drive commands to specific controllers of said plurality of controllers over a bus; wherein each controller stores disk drive commands received from the microcontroller in a respective command buffer, and issues the disk drive commands therefrom to its respective ATA disk drive for execution; and wherein each controller is configured to prefetch a next disk drive command from the microcontroller while a current disk drive command is being executed by the respective ATA disk drive, such that the next disk drive command will be available within the respective command buffer to issue to the respective ATA disk drive upon completion of the current disk drive command.
- 2. The disk array system of claim 1, wherein each controller is implemented within automated circuitry.
- 3. The disk array system of claim 1, wherein each controller implements a host side of an ATA protocol in automated circuitry to control a respective ATA disk drive.
- 4. The disk array system of claim 1, wherein the microcontroller dispatches at least some of the disk drive commands to the controllers together with target system memory addresses for transferring input/output data between the ATA disk drives and a system memory.
- 5. The disk array system of claim 1, wherein each controller notifies the microcontroller that it is ready to receive a new command when the command buffer of that controller becomes empty.
- 6. The disk array system of claim 1, wherein the controllers operate without fetching and executing sequences of macro-instructions.
- 7. The disk array system of claim 1, wherein each controller stores disk drive commands in its respective command buffer, and issues such commands therefrom to its respective ATA disk drive, without fetching and executing sequences of macro-instructions.
- 8. The disk array system of claim 1, wherein the microcontroller dispatches the disk drive commands to the controllers over a control bus which is separate from a bus used to transfer I/O data.
- 9. The disk array system of claim 1, wherein the microcontroller is programmed to implement at least one RAID configuration.
- 10. The disk array system of claim 1, wherein the microcontroller maintains command queues for each of the plurality of controllers, and dispatches disk drive commands from the command queues to corresponding controllers.
- 11. The disk array system of claim 1, wherein each controller is coupled to a second bus used to transfer input/output data to and from the ATA disk drives, and each controller includes a bus arbitration circuit that requests time slots on said second bus according to a bus arbitration protocol.
- 12. A disk array system, comprising:
a plurality of ATA (Advanced Technology Attachment) disk drives; and a plurality of controllers, each of which controls a respective ATA disk drive of the plurality of ATA disk drives;
wherein each controller includes a command buffer that stores disk drive commands, and issues said disk drive commands therefrom for execution by the respective ATA disk drive; and wherein each controller further includes a respective automated circuit that prefetches disk drive commands into its respective command buffer, so that a next disk drive command is available in the respective command buffer to issue therefrom when the respective ATA disk drive finishes executing a current disk drive command.
- 13. The disk array system of claim 12, wherein each controller stores disk drive commands in its respective command buffer, and issues such commands therefrom to its respective ATA disk drive, without fetching and executing any macro-instructions.
- 14. The disk array system of claim 12, wherein each controller is implemented within automated circuitry.
- 15. The disk array system of claim 12, wherein each controller implements a host side of an ATA protocol in automated circuitry to control a respective ATA disk drive.
- 16. The disk array system of claim 12, further comprising a microcontroller that dispatches the disk drive commands to each of the plurality of controllers in response to signals generated by the controllers.
- 17. The disk array system of claim 16, wherein the microcontroller dispatches the disk drive commands to the controllers together with associated transfer information for performing transfers of input/output data.
- 18. The disk array system of claim 16, wherein the microcontroller maintains a separate command queue for each of the controllers, and dispatches disk drive commands from the command queues to the respective controllers.
- 19. The disk array system of claim 16, wherein the microcontroller dispatches the disk drive commands to the controllers over a control bus that is separate from a bus used for transfers of input/output data.
- 20. The disk array system of claim 12, wherein each controller is coupled to a bus used to transfer input/output data, and each controller includes a bus arbitration circuit that requests time slots on said bus according to a bus arbitration protocol.
- 21. A method of controlling an ATA disk drive of a disk array system, the method comprising:
dispatching a first disk drive command to a controller that controls the ATA disk drive, the first disk drive command specifying a first disk operation, wherein the controller is external to the ATA disk drive; storing the first disk drive command in a command buffer of the controller; issuing the first disk drive command from the command buffer of the controller to the ATA disk drive for execution; during execution of the first disk drive command by the ATA disk drive, dispatching a second disk drive command to the controller, and storing the second disk drive command within the command buffer of the controller, wherein the second disk drive command specifies a second disk operation; and when the ATA disk drive finishes executing the first disk drive command, issuing the second disk drive command from the command buffer to the ATA disk drive for execution.
- 22. The method of claim 21, wherein the steps of issuing the first and second disk drive commands from the command buffer to the ATA disk drive are performed entirely by automated circuitry of the controller.
- 23. The method of claim 21, wherein the steps of issuing the first and second disk drive commands from the command buffer to the ATA disk drive are performed without the controller fetching and executing any macro-instructions.
- 24. The method of claim 21, wherein the steps of dispatching the first and second disk drive commands to the controller are performed by a microcontroller.
- 25. The method of claim 21, wherein the first and second disk drive commands are dispatched to the controller together with corresponding address and transfer information for performing input/output operations.
- 26. The method of claim 21, wherein the second disk drive command is dispatched to the controller in response to a ready signal generated by the controller.
- 27. The method of claim 21, further comprising automating a host side of an ATA protocol within application-specific circuitry of the controller to communicate with the ATA disk drive.
PRIORITY CLAIM
[0001] This application is a continuation of U.S. patent appl. Ser. No. 10/142,562, filed May 9, 2002, which is a continuation of U.S. patent appl. Ser. No. 09/558,524, filed Apr. 26, 2000 (now U.S. Pat. No. 6,421,760), which is a continuation of U.S. patent appl. Ser. No. 09/034,247, filed Mar. 4, 1998 (now U.S. Pat. No. 6,134,630), which claims the benefit of U.S. Provisional Appl. No. 60/065,848, filed Nov. 14, 1997.
Provisional Applications (1)
|
Number |
Date |
Country |
|
60065848 |
Nov 1997 |
US |
Continuations (3)
|
Number |
Date |
Country |
Parent |
10142562 |
May 2002 |
US |
Child |
10364798 |
Feb 2003 |
US |
Parent |
09558524 |
Apr 2000 |
US |
Child |
10142562 |
May 2002 |
US |
Parent |
09034247 |
Mar 1998 |
US |
Child |
09558524 |
Apr 2000 |
US |