Wednesday, July 30, 2008


Direct Memory Access, is used for I/O (read/write) independently of CPU. Without DMA, CPU is used for I/O. With DMA, CPU would do other operations while the I/O (transfer) is in process.

In memory copy:
Without DMA, data from memory block1(external memory) are transferred to BUS first, and CPU read from BUS, then sent to memory block2. With DMA, memory block1 to block2 directly. (may check the cache size).

In memory copy and process:
Without DMA, data1 from memory block1 are transferred to CUP to process, then transfer to memory block2. With DMA, data1 from memory block1 are transferred to internal memory (Cache), and CPU starts to process, meanwhile, data2 from memory block1 start to transfer to CPU,and CPU is transferring data1 to memory block2. All the processes are parallel.

So that's it, memory access, data transfer without through CPU. DMA is useful when huge data transfer happens frequently, such as video transfer. TI DaVinci has 64 channel DMA controller. [update: 6/26/2009]

No comments:

Post a Comment