입출력 제어기와 DMA·채널·I/O 프로세서의 역할

입출력 제어기가 CPU와 장치 사이의 속도 차이를 조절하는 방식과 DMA, 채널 제어기, I/O 프로세서의 특성을 정리한다.

2026-08-14 · 최초 발행 2025-12-30

CPU와 장치 사이에 제어기가 필요한 이유

입출력 제어기(I/O Controller)는 CPU와 입출력 장치 사이의 데이터 전송을 관리하는 하드웨어다. CPU와 장치는 처리 속도와 통신 방식이 다르므로, 제어기는 전송을 중재하고 버퍼를 통해 일시적으로 데이터를 보관하며 속도를 조절한다.

CPU는 GHz 급으로 동작하는 반면 I/O 장치는 MHz ~ KHz 급의 속도를 보일 수 있다. CPU가 저속 장치의 상태를 직접 확인하고 전송까지 맡으면 연산 자원이 대기 상태에 묶인다. 제어기에 I/O 작업을 맡기면 CPU는 연산에 집중할 수 있고, 장치별 차이는 통일된 인터페이스 뒤로 감출 수 있다.

CPU(고속)입출력제어기디스크(중속)키보드(저속)네트워크(중고속)프린터(저속)속도 매칭버퍼링프로토콜 변환

CPU가 직접 처리하던 시기

초기 컴퓨터에서는 CPU가 Programmed I/O 방식으로 장치를 직접 제어했다. 폴링(Polling)으로 장치 상태를 반복 확인하고, 전송 과정 전체를 CPU가 수행하는 구조다.

구조는 단순하지만 I/O를 기다리는 동안 다른 작업을 하기 어렵다. 저속 장치 때문에 고속 CPU가 대기하게 되어 시스템 전체 성능이 떨어진다. 1950-1960년대 초기 메인프레임의 CPU 활용률은 10-20%였고, I/O 처리량은 매우 낮으며 응답 시간도 느렸다.

DMA가 전송 경로를 분리하는 방식

DMA 제어기(DMA Controller)는 CPU 개입 없이 메모리에 직접 접근해 데이터를 블록 단위로 전송한다. 전송이 끝나면 인터럽트로 CPU에 완료 사실을 알린다.

DMA 제어기에는 메모리 시작 주소를 담는 주소 레지스터, 전송 데이터 크기를 관리하는 카운터, 전송 방향과 모드를 지정하는 제어 레지스터가 포함된다. 디스크 I/O, 네트워크 카드, 그래픽 카드에서 활용된다.

CPU는 전송을 매번 직접 처리하지 않아도 되므로 부담이 줄고, 고속 데이터 전송과 인터럽트 횟수 최소화가 가능해진다. 1960-1970년대 미니컴퓨터와 초기 PC에서 이 방식이 쓰였으며, CPU 활용률은 60-70%, I/O 처리량은 중간 수준, 응답 시간은 개선된 것으로 정리된다.

여러 장치를 병렬로 다루는 채널 제어기

채널 제어기(Channel Controller)는 DMA 기능을 포함하면서 여러 I/O 장치를 독립적으로 처리한다. 채널 프로그램을 실행하고 자체 명령어 세트를 사용해 CPU와 병렬로 동작한다.

Selector Channel은 한 번에 하나의 고속 장치를 담당한다. Multiplexor Channel은 여러 저속 장치를 동시에 처리하며, Block Multiplexor는 고속 장치를 다중 처리한다. 이 구조는 다중 장치를 효율적으로 관리하고 높은 I/O 처리량을 제공하면서 CPU 부담을 최소화한다.

1970-1980년대 메인프레임과 대형 서버에서 사용됐고, CPU 활용률은 80-90%, I/O 처리량은 높으며 응답 시간은 빠른 수준이었다.

I/O 처리를 위한 독립 프로세서

입출력 프로세서(I/O Processor)는 전용 프로세서 코어, 로컬 메모리, I/O 버스 인터페이스, 인터럽트 컨트롤러를 갖춘 I/O 처리 장치다. 독립적인 메모리와 레지스터를 바탕으로 복잡한 I/O 작업을 수행하며, 자체 운영체제를 둘 수도 있다.

CPU와 완전히 독립해 동작하므로 메인프레임, 고성능 서버, 스토리지 시스템에서 사용할 수 있다. 1980년대 이후 현대 고성능 시스템에서는 CPU 활용률이 95% 이상, I/O 처리량은 매우 높고 응답 시간은 매우 빠른 방식으로 제시된다.

전단 프로세서(Front-End Processor)는 네트워크 통신에 특화된 독립 시스템이다. 패킷 조립과 분해, 에러 체크 및 복구, 버퍼 관리, 흐름 제어를 담당하며 전용 소프트웨어를 실행한다. 통신 서버, 게이트웨이, 프록시 서버가 적용 분야다.

처리 부담과 적용 분야의 차이

제어기 종류 CPU 부담 I/O 처리량 복잡도 비용 적용 분야
CPU 직접 제어 매우 높음 매우 낮음 낮음 없음 초기 시스템
DMA 제어기 낮음 중간 중간 낮음 PC, 워크스테이션
채널 제어기 매우 낮음 높음 높음 중간 서버, 스토리지
I/O 프로세서 거의 없음 매우 높음 매우 높음 높음 메인프레임
전단 프로세서 없음 매우 높음 매우 높음 매우 높음 통신 서버

여기서 CPU 부담은 I/O 처리 중 CPU가 개입하는 정도를 뜻한다. I/O 처리량은 단위 시간당 처리 가능한 I/O 작업 수이고, 복잡도는 하드웨어와 소프트웨어 구현의 복잡도다. 비용은 추가 하드웨어 비용을 가리킨다.

시스템별로 달라지는 I/O 제어

PC와 워크스테이션은 DMA 제어기, PCI/PCIe 버스, 통합 I/O 컨트롤러를 사용한다. 서버 시스템에는 채널 제어기와 I/O 프로세서, RAID 컨트롤러, 네트워크 오프로드 엔진이 쓰인다.

임베디드 시스템은 DMA 제어기를 이용해 실시간 I/O 처리와 저전력 설계를 다룬다. 클라우드 데이터센터에서는 I/O 프로세서, 가상화 I/O(SR-IOV), 스마트 NIC가 I/O 처리를 분담한다. CPU 직접 제어에서 독립적인 처리 장치로 갈수록 CPU 부담은 줄고, I/O 처리의 독립성과 처리 능력은 커진다.

입출력 제어기DMA운영체제컴퓨터구조I/O 프로세서