IDE (integrated device electronics) controllers for mass storage devices are in common use in personal computers because they are easily configured and have fast access and transfer times. However, currently all transfers from one IDE device in a computer to another IDE device in the same computer require the data be read from the source device, written to the main memory of the computer, then read from the main memory, and finally written to the destination device. In order to access main memory, the IDE controller must interface to either the central processing unit (CPU) of the computer or to a direct memory access (DMA) chip which performs the actual writes and reads to and from main memory. Using the DMA chip permits the CPU to perform processor-intensive tasks in parallel with the data transfer. While a data transfer is taking place, the DMA chip acts as a gateway to main memory to prevent multiple processes from using the same portion of memory simultaneously.
Using main memory as a temporary storage buffer for the data allows re-writing the data to the destination disk without having to re-read the data from the originating disk if the initial write fails. However, memory is often a scarce resource in many computer systems, and the DMA transfer uses memory needed by other executing programs thus creating memory contention problems.
Therefore, the fast transference of data between IDE devices without using main memory is a currently unmet need in the computer user community.