DMA(Direct Memory Access) 입출력

DMA가 직접 메모리에 접근하여 입출력을 처리해주고 CPU는 다른일을 한다. CPU의 메모리 접근 부담마저 완전히 제거할 수 있다.

DMA는 마치 입출력 장치 처럼 레지스터가 있다.

  1. 버퍼주소
  2. 버퍼크기(단어 계수기)
  3. 명령

작업이 끝나면 CPU에 보고한다.

CPU와 DMA가 동시에 메모리에 접근할때 DMA에 우선권이 있다. 이런 개념을 사이클 탈취(Cycle Stealing) 이라 하는데 입출력은 빨리 이루어지는 것이 좋다.

DMA는 입출력 장치마다 전용으로 두고 있다.


입출력 채널(I/O channel)

여러 개의 입출력 장치를 관장하여 입출력을 처리하는 처리기를 입출력 채널이라한다. DMA 기능이 확장된 것.

  • 셀렉터 채널(Selector channel)

    입출력 명령을 하나씩 받아 처리, 여러 장치에 대한 동시 입출력을 하지 않는데, 그 이유는 입출력 장치들의 속도가 디스크와 같이 고속이기 때문 한마디로 ‘너는 이것만 담당해!’

  • 멀티플렉서 채널(Multiplexor channel)

    입출력 명령을 여러개 받아서 동시 진행 가능, 장치들이 키보드, 프린터 등과 같이 저속인 경우에만 가능. 셀렉터보다 유연하게 여러개를 선택하여 입출력 장치를 돌아가면서 서비스한다.

  • 블록 멀티플렉서 채널(Block Multiplexor channel)

    여러개의 입출력 명령으로 구성된 명령어 집합을 받아 자동으로 차례차례 처리. 실렉터 채널과 멀티 플렉서 채널 양쪽의 특성을 모두 가짐. 입출력이 진행되는 동안 하나의 장치만 관장(실렉터와 비슷) 그러나 그중 다른 입출력 장치에 대한 요구사항을 저장할 수 있다.