입출력 채널

입출력 채널()은 입출력이 일어나는 동안 프로세서가 다른 일을 하지 못하는 문제를 극복하기 위해 개발된 것으로, 시스템의 프로세서와는 독립적으로 입출력만을 제어하기 위한 시스템 구성요소라고 할 수 있다.

컴퓨터의 중앙 처리 장치는 한번에 하나씩 차례대로 업무를 처리하므로 주변 장치의 동작이 끝나야만 비로소 작업을 계속하게 된다. 따라서 중앙 처리 장치는 주변 장치의 느린 속도 때문에 충분히 성능을 발휘하지 못하게 되는데, 이런 일이 없도록 주변 장치를 별도의 장치에서 조종할 수 있게 한 것이 채널이다. 채널은 중앙 처리 장치와 주변 장치의 동작을 분리시키고, 그 사이에서 중앙 처리 장치가 계속 쉬지 않고 다른 일을 할 수 있도록 하는 별도의 컴퓨터 같은 역할을 한다. 중앙 처리 장치에는 여러 개의 채널을 붙일 수 있으므로 처리 속도가 느린 주변 장치들은 여러 대를 하나의 채널로 제어할 수 있지만, 비교적 처리가 빠른 장치들은 각각의 채널을 붙인다.

채널은 정보를 저장하거나 검색하기 위해서 주기억 장치를 직접 접근 할 수도 있다(DMA). 채널은 프로세서로부터 요청된 입출력 작업을 수행하고, 입출력 작업이 끝나면 완료되었다는 사실을 인터럽트의 형식으로 프로세서에 알린다.

 선택 채널(selector channel)은 1개의 보조 채널만 가지고 있어서 한 순간에 1개의 주변기기만 서비스할 수 있다.
 멀티플렉서 채널(multiplexor channel)은 여러 개의 보조 채널을 가지고 있어서 한번에 여러 개의 데이터열을 인터리빙할 수 있다.

역사 
입출력 채널을 처음 사용한 것은 IBM 709 진공관 메인프레임이었으며, 여기에서 1957년의 모델 766 데이터 싱크로나이저(Model 766 Data Synchronizer)가 최초의 채널 컨트롤러이다. 트랜지스터 형태의 후계자 IBM 7090은 2개 이상의 채널(7607)과 하나의 채널 멀티플렉서(7606)을 갖추고 있었으며 최대 8개의 채널을 제어할 수 있었다.

채널의 종류 
채널은 지원되는 동시 입출력 기능의 수와 유형에 따라 다르다. IBM 용어로 멀티플렉서 채널(multiplexer channel)은 수많은 동시 인터리빙 저속 명령어(concurrent interleaved slow-speed operation)들을 지원하며 명령어 각각이 한 번에 하나의 장치로부터 한 바이트를 전송한다. 셀렉터 채널(selector channel)은 하나의 고속 명령(high-speed operation)을 지원하며, 한 번에 하나의 데이터 블록을 전송한다. 블록 멀티플렉서(block multiplexer)는 수많은 동시 고속 명령을 지원한다.

같이 보기 
 시동
 IBM 시스템/360

각주 

메인프레임