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