For detached DMA's there are two addressing approaches. One is dual-address and one is implicit. What the difference between the two and why does dual-address take twice as many bus cycles?
In dual-address DMA, the data transfer takes two cycles: The DMA controller first puts the source address on the bus, reads the data, and then puts the destination address on the bus and writes the data. The source and destination can each be either memory or a peripheral register.
In implicit-address DMA, a peripheral makes a DMA request to the DMA controller. The DMA controller puts the memory address on the bus and the peripheral transfers the data directly to/from memory in a single cycle. This type of DMA cannot support peripheral-to-peripheral or memory-to-memory DMA.