DMA는 Direct Memory Access의 약자이다. 이 것은 디바이스가 CPU를 거치지 않고 직접 메모리를 읽고 쓸 수 있는 방법으로 쓰이고 있다. 이 방법을 쓰면 CPU가 작업을 할 일의 수고를 어느 정도 덜어 주는 역할을 한다.
PC에는 DMA0에서 DMA7까지의 여덟 개 DMA 채널이 있다. 이는 8 비트 ISA 슬롯과 16 비트 ISA 슬롯에 따라서 8 비트 채널과 16 비트 채널로 나뉘어 진다.
DMA 채널을 고르는 데 도움이 되도록 예를 적어 보았다.
DMA 기능 선 (線) ISA 버스 채널 폭 ---------------------------------------------------------------- DMA0 Available 존재 16 비트 8 비트 빈자리 DMA1 Sound 존재 8 비트 8 비트 사운드 DMA2 Floppy Disk controller 존재 8 비트 8 비트 플로피 디스크 콘트롤러 DMA3 ECP Parallel Port 존재 8 비트 8 비트 ECP 패러렐 포트 DMA4 * - Not used 존재하지 않음 - 16 비트 *- 사용하지 않음 DMA5 Sound 존재 16 비트 16 비트 사운드 DMA6 SCSI 존재 16 비트 16 비트 스커지 DMA7 Available 존재 16 비트 16 비트 빈자리
주의: DMA0은 16 비트 ISA 버스에 연결되어 있지만 폭은 8 비트에 불과하다. DMA4는 첫 번째 8 비트 DMA 콘트롤러에 직렬 연결 (Cascade) 되어 있기 때문에 마음대로 골라서 쓸 수 없다.
***DMA 충돌은 PC에서 발생되는 두 번째로 많은 문제일 것이다. ***
IRQ와 마찬가지로, DMA도 각각의 사용되고 있는 디바이스에 각 하나씩 배정되어야 한다. 그렇지 않으면 충돌이 발생한다. 위의 문장에서 주의를 둘 것은 "사용되고 있는" 이라는 말이다. 한 개의 DMA를 두 개의 디바이스에 연결할 수 있지만, 이 경우에는 연결된 디바이스가 교대로 "사용되고 있는" 상황이어야 한다.