Direct Memory Access (DMA) allows hardware subsystems and peripheral devices to access main system memory independently of the central processing unit (CPU). DMA controllers temporarily borrow the address, data, and control buses from the CPU to transfer data directly between an I/O port and memory locations, freeing up the CPU to perform other tasks while the transfer is in progress. DMA can transfer data faster than traditional programmed I/O and allows high-speed memory-to-memory transfers. DMA requires initialization by software to set parameters like source/destination addresses and transfer length.