DIRECT MEMORY ACCESS (DMA)

DMA refers to the transfer of data without involving the µP. The following DMA transfer combinations are possible:

The DMA approach is to "turn off" (i.e. tri-state and electrically disconnect from the system busses) the µP and let a peripheral device (or memory - another module or another block of the same module) communicate directly with the memory (or another peripheral).

ADVANTAGE: Transfer rates approaching that of the memory can be achieved. DMA latency is <= 6µsec.

DISADVANTAGE: A DMAC is needed, making the system complex and expensive.

DMA requests have priority over all other bus activities, including interrupts. No interrupts will be recognized during a DMA cycle.


WHY DMA ?

The instruction mov [2],[9] is illegal.

should be done in two steps:

Thus it is not possible to transfer from one memory location to another without involving the µP. The same applies to transfer between memory and peripherals connected to I/O ports. e.g. cannot have out dport,[6].

should be done in two steps:

Similar comments apply to the in instruction.

Thus the real cause of limited transfer rate is the µP itself. It acts as an unnecessary "middleman".


Some Definitions


THE DMA PROTOCOL UNDER MAXIMUM MODE


-RQ/-GT PRIORITY


-RQ/-GT USAGE


TYPES OF DMA

DMA cycles are of two types:

In both cases the data transfer is done completely in hardware without involving the CPU and thus there is no associated software overhead.


OPTIONS FOR THE DMAC


Some Notes

(N1, N2, N3, N6b, N6c, N6d, N6e, N8, N9)