Tuesday, April 3, 2007

Improve mass storage access speed with USB2.0 (2) - Use DMA

  • Use DMA
Using a DMA is the common way to improve transfer speed and reduce CPU load. There are roughly 3 types of DMA transfers used by USB peripheral controller, like Philips ISP1583.
  1. PIO mode - Usually use a small size of transfer buffer, for example 8KB FIFO. Slowest and make CPU load high. DIOR/DIOW and IORDY signals are used.
  2. Multi word DMA mode - DREQ and DACK signals without IORDY signals are used. According to specification it has almost same speed with PIO mode. But it's faster and makes lower the CPU load in practical implementation.
  3. Ultra DMA mode - Such as HDMARDY and DSTROBE signals are needed. Highest speed.
* For further investigation, refer the ATAPI specification.

With CPUs commonly used for handheld device like Intel PXA27x(passed to Marvell), PIO mode or Multi word DMA mode can be implemented. The data transfer of connections (1) at Fig.1 should be implemented with Multi word DMA.