다음 이전 차례

3. DMA - 디렉트 메모리 엑세스

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를 두 개의 디바이스에 연결할 수 있지만, 이 경우에는 연결된 디바이스가 교대로 "사용되고 있는" 상황이어야 한다.


다음 이전 차례