Each DMA controller instance contains one or
more channels. A channel represents a single thread of strongly ordered operations whose
purpose is to move data from one interface to another. Operations between channels are
orthogonal and have no assumption of ordering but operations within a channel must be
completed in order. The DMA controller uses time division multiplexing to allow work
from channels to momentarily use shared data transfer units and data paths.