Claims
- 1. A data transfer apparatus transferring data between a data transfer element and a buffer memory, and between said buffer memory and a data bus, comprising:a plurality of state machines, said state machines arranged into three functional units; an upper machine, middle machine and a lower machine; said lower machine being interfaced to said buffer memory and said data transfer element, said lower machine being operable to control transfers between said buffer memory and a plurality of data transfer elements including said data transfer element; said upper machine being interfaced to said buffer memory and said data bus, said upper machine being operable to control data transfers between said buffer memory and said data bus; said middle machine being operable to control data movement to and from said data bus by coordinating control between said plurality of data transfer elements, and between said upper machine and said lower machine; wherein said plurality of state machines are operable to facilitate movement of user data between said data transfer element and said data bus, through said buffer memory.
- 2. The data transfer apparatus of claim 1, wherein said buffer memory is a dual port ram (DPR) configured to receive data for buffering read operations from and write operations to said data bus.
- 3. The data transfer apparatus of claim 2, wherein said DPR is further configured to buffer and speed-isolate different transfer rates of said data bus to and from a cache memory.
- 4. The data transfer apparatus of claim 2, further comprising Error Detection And Correction circuitry (EDAC), wherein data transfers between said data transfer element and said buffer DPR pass through said EDAC.
- 5. The data transfer apparatus of claim 4, wherein said EDAC is configured to implement a modified hamming algorithm.
- 6. The data transfer apparatus of claim 1, wherein said data bus is a backplane connected to a global memory system in an integrated cache disk array.
- 7. The data transfer apparatus of claim 4, wherein said data transfer element is an assembly/disassembly mechanism and said lower machine connects to said assembly/disassembly mechanism of a data transfer channel.
- 8. The data transfer apparatus of claim 7, wherein said lower machine is operable to coordinate handshake and data transfer protocol between said assembly/disassembly mechanism, said EDAC and said buffer memory.
- 9. The data transfer apparatus of claim 1, wherein the data transfer element is an assembly/disassembly mechanism which is further operable to selectively transmit a request to said middle machine to initiate transfer of data, and wherein said middle machine arbitrates among a plurality of lower side requesters to initiate a grant cycle.
- 10. The data transfer apparatus of claim 9, wherein said middle machine selects from among said plurality of lower side requesters, and sends a buffer memory pointer to said lower machine; and wherein said lower machine is configured to send an acknowledgment back to selected lower side requestor, and begins a data transfer between said assembly/disassembly mechanism and said buffer memory.
- 11. The data transfer apparatus of claim 10, wherein, upon completion of said transfer, status and ending pointer information are returned to said middle machine.
- 12. The data transfer apparatus of claim 3, wherein, said upper machine is configured to implement a backplane protocol to accomplish data transfers between said data bus and said buffer DPR.
- 13. The data transfer apparatus according to claim 1, wherein said middle machine is configured to maintain a transfer counter, which is implemented to pace a transfer and to calculate appropriate data bus burst sizes.
- 14. The data transfer apparatus of claim 1, wherein said middle machine comprises a plurality of registers and is configured to collect status from said upper and lower machines and post error conditions in a status register and disable a failing transfer of data upon detection of an error condition.
- 15. A data transfer apparatus transferring data between a data transfer element and a buffer memory, and between said buffer memory and a data storage system, comprising:a plurality of state machines, said state machines arranged into three functional units: an upper machine, a middle machine and a lower machine; said lower machine being interfaced to said buffer memory and said data transfer element, said lower machine being operable to control transfers between said buffer memory and a plurality of data transfer elements including said data transfer element; said upper machine being interfaced to said buffer memory and said data storage system, said upper machine being operable to control data transfers between said buffer memory and said data storage system; said middle machine being operable to control data movement to and from said data storage system by coordinating control between sid plurality of data transfer elements, and between said upper machine and said lower machine; wherein said plurality of state machines are operable to facilitate movement of user data between said data transfer element and said data storage system, through said buffer memory.
- 16. The data transfer apparatus according to claim 15 wherein said data storage system comprises a cached disk array.
- 17. The data transfer apparatus according to claim 15 wherein said data transfer element is an assembler/disassembler component.
CROSS REFERENCE TO RELATED APPLICATIONS
This application is a continuation of U.S. application Ser. No. 09/216,329 filed Dec. 18, 1998, now U.S. Pat. No. 6,279,050 and claims priority therefrom.
US Referenced Citations (4)
Number |
Name |
Date |
Kind |
4809217 |
Floro et al. |
Feb 1989 |
A |
4882702 |
Struger et al. |
Nov 1989 |
A |
5890219 |
Scaringella et al. |
Mar 1999 |
A |
6230217 |
Tuccio et al. |
May 2001 |
B1 |
Continuations (1)
|
Number |
Date |
Country |
Parent |
09/216329 |
Dec 1998 |
US |
Child |
09/840422 |
|
US |