SATA Client based on Arduino

Please clarify on what hardware that DMA access should occur. DMA is not related to Arduino in general, even if it may be available on some boards with 32 bit controllers. Most probably such hardware is controlled by an OS, so that this OS specific forum will be the right place for such questions.

WRT speed I'd think that it's only the device driver, which expects that a DMA transfer of a certain number of bytes is finished within some time limit. A modern DMA controller may have some watchdog feature, to timeout on broken transmissions, but else it simply waits for a device READY signal, that triggers a memory and device read/write cycle. Details again depend on a specific machine architecture.