[계산기 구조] 23.입출력 제어

이번에는 정보처리기사 필기 과목인 전자계산기 구조의 입출력 제어를 알아볼게요.

프로그램으로 입출력 제어
CPU가 상태 플래그를 조사하여 입출력 작업을 완료하였는지 조사하여 메모리 데이터 레지스터(MDR)과 누산기(AC) 사이의 자료 전송을 처리하는 방식입니다.
입출력 작업을 수행할 때 CPU가 입출력 작업에 관여합니다.
인터페이스는 메모리 데이터 레지스터, 장치 번호 디코더, 플래그로 구성하여 회로 구성이 간단합니다.

인터럽트로 입출력 제어
데이터 전송하기 위해 입출력 인터페이스가 CPU에게 인터럽트 신호를 보내 입출력을 수행하는 방식입니다.
CPU는 상태 플래그를 검사하지 않기 때문에 프로그램 방식보다 효율이 높습니다.

DMA(Direct Momory Access) 제어
입출력 장치가 직접 주기억장치를 접근하여 제어하는 방식입니다.
CPU를 경유하지 않기 때문에 데이터 전송이 빠릅니다.
인터럽트 신호로 CPU에게 입출력 종료를 알립니다.
블록 단위로 데이터를 전송하여 대용량의 전송이 가능합니다.
CPU와 DMA 제어기는 메모리와 버스를 공유합니다.
CPU에서는 DMA 제어기에게 입출력 장치의 주소, 주기억장치의 주소, DMA를 시작하는 명령, 입출력 데이터의 양, 입출력 명령을 전송합니다.
DMA는 인터페이스 회로, 주소 레지수터, 워드 카운터 레지스터, 제어 레지스터, 데이터 레지스터로 구성합니다.
전송 작업을 수행하는 순서는 버스 사용 요청 => 버스 사용 허가 => 데이터 전송 => 인터럽트 순입니다.
DMA제어기가 한 번에 한 데이터 워드를 전송하고 버스의 제어기를 CPU에게 돌려주는 방법을 사이클 스틸링이라 부릅니다.

채널로 제어
채널은 신호를 보낼 수 있는 전송로이며 CPU의 지시를 받아 입출력 장치와 주기억장치 사이에 데이터 중개 역할을 담당합니다.
입출력은 DMA 방법으로도 수행합니다.
채널 입출력에 관한 명령어를 입출력 프로세스에게 수행하게 합니다.
CPU와 채널 사이에 인터럽트로 통신합니다.
입출력 장치와 CPU 사이에 속도 차이로 발생하는 단점을 해결하기 위한 방법입니다.
채널은 자체적으로 자료의 수정 또는 코드 변환 등의 기능을 수행합니다.
선택 채널 방식은 한 개의 장치를 선택하여 독점으로 채널을 사용합니다. 자기디스크, 자기테이프, 자기 드럼처럼 고속 장치에서 주로 사용합니다.
다중 채널 방식은 동시에 여러 개의 장치가 입출력 채널을 사용합니다. 카드리더, 프린터처럼 저속 장치에서 주로 사용합니다.
Block 다중 채널 방식은 고속 입출력 장치에서 주로 사용하며 동시에 여러 개의 장치가 입출력 채널을 사용합니다.

폴링<인터럽트<DMA<채널 순으로 처리량이 증가합니다.