DMA; Direct Memory Access
WHAT
DEF
device controller가 CPU를 거치지 않고 memory에 직접 read/write
HOW
[READ]
ALG.
-
SETUP-DMA(
- device = IO device,
- memory_address = buffer,
- count = N bytes,
- direction = DEVICE_TO_MEMORY
-
)
-
ISSUE-DMA-READ-COMMAND()
-
CPU_DO_OTHER_WORK()
-
// DMA 완료 interrupt 발생 시
-
DMA-INTERRUPT-HANDLER:
- status := READ-DMA-STATUS()
- IF (status == ERROR)
- RETURN error condition
- done := true