개요

Direct memory access (DMA)는 IO를 다루는 많은 방법중에서, CPU는 장치와 메모리 사이에 데이터 복사를 CPU개입 없이 가능하도록 한다. 기존의 시스템은 메모리 카피를 위해서 CPU가 직접 관여하여 메모리의 내용을 옮겨야 하였다. 이는 CPU가 복사 작업 중에 다른 작업을 하지 못하는 것을 의미한다. 이러한 병목 현상을 해결하기 위해서 DMA는 CPU와 IO장치 사이에 주 메모리 사이의 전송을 책임하는 별도의 컨트롤러를 둔다. CPU는 전송을 시작하고 DMA기술을 이용하여 실제로 그러한 작업을 하며 그 와중에 CPU는 다른 일을 처리한다. DMA전송이 완료되면 CPU에 전송이 완료됨을 알리는 인터럽트를 전송하고 OS에 이러한 전송이 완료됨을 알려준다.