- 주변장치들이 CPU의 개입없이 메모리에 직접 접근하여 읽거나 쓸 수 있도록 하는 기능
- 여기서 주변장치란 : HDD, 그래픽카드, Network카드, 사운드카드 등 - CPU는 DMA request를 DMA Controller에 보낸 뒤에 다른 일을 할 여유가 생김.
- DMAC의 counter가 0이 될 때까지 CPU 개입 없이 I/O 수행
- 작업이 완료되면 DMAC -> CPU로 단 한 번의 인터럽트만 발생한다. (데이터가 전송되는 동안 CPU는 다른 작업을 수행할 수 있게 되어 효율성 UP)
- 메모리의 일정 부분이 DMA 전용으로 지정되며 CPU가 데이터 전송에 관여하지 않아도 되므로 성능이 좋아짐
- 주변장치의 데이터는 Device Controller에 의해 local buffer로 이동했다가 memory에 복사되는데 전송할 데이터가 많은 경우 DMA를 이용하면 좋다.
reference