Home

DMA

Direct Memory Access (DMA) is a feature of computer architectures that allows peripheral devices to read from and write to main memory without continuous CPU intervention. By moving data directly between memory and a device, DMA reduces the workload on the processor and can significantly increase data transfer throughput for I/O heavy operations such as disk I/O, networking, and audio or video streaming.

In operation, a DMA-capable device or a dedicated DMA controller coordinates a transfer. The CPU configures

DMA supports several transfer modes. Burst or block transfers use the bus aggressively for a contiguous block

In contemporary architectures, DMA functionality is often integrated into chipsets, peripherals, or PCI/PCIe devices, and may

the
transfer
by
selecting
a
DMA
channel
and
programming
registers
with
the
source
and
destination
addresses,
the
transfer
size,
and
the
direction
of
data
flow.
When
the
transfer
is
ready,
the
DMA
controller
requests
control
of
the
system
bus.
After
gaining
bus
access,
it
performs
the
data
movement,
freeing
the
CPU
to
perform
other
tasks.
Upon
completion,
the
DMA
controller
typically
signals
the
CPU
via
an
interrupt
or
a
status
flag.
of
data,
while
cycle
stealing
transfers
take
bus
cycles
intermittently,
allowing
the
CPU
to
continue
executing
other
instructions.
Modern
systems
may
also
employ
more
advanced
DMA
engines
with
features
such
as
chained
or
scatter-gather
transfers
and
direct
memory
access
without
CPU
intervention
for
long
sequences.
be
protected
by
hardware
support
such
as
an
IOMMU
to
ensure
memory
safety
and
address
translation.
DMA
remains
essential
for
high‑performance
I/O,
enabling
faster
data
movement
while
freeing
the
CPU
to
handle
computation
and
control
tasks.