What's the difference between dual-address and implicit DMA?
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.