I/O 제어, DMA, 인터럽트
출제 빈도: ★★★★☆ | 기본 필수
답안.
Ⅰ. 개요
입출력(I/O) 제어 방식은 CPU가 주변장치와 데이터를 교환하는 메커니즘으로, 프로그램 I/O→인터럽트 I/O→DMA→채널 순으로 발전하여 CPU 관여도를 줄이고 시스템 처리량을 높여왔다.
Ⅱ. I/O 제어 방식 비교
| 방식 | 동작 | CPU 관여 | 성능 |
|---|---|---|---|
| 프로그램 I/O | CPU가 폴링으로 상태 확인 | 매우 높음 | 낮음 |
| 인터럽트 I/O | 장치가 완료 시 인터럽트 발생 | 중간 | 중간 |
| DMA | DMA 컨트롤러가 직접 메모리 전송 | 시작/종료만 | 높음 |
| 채널(I/O 프로세서) | 전용 프로세서가 I/O 프로그램 실행 | 최소 | 최고 |
Ⅲ. DMA 동작 원리
CPU → [DMA 컨트롤러 초기화]
├─ 전송 시작 주소
├─ 전송 바이트 수
└─ 전송 방향(R/W)
DMA 컨트롤러 ←→ 메모리 (버스 마스터링)
│ 사이클 스틸링: 버스 유휴 시 1워드씩
│ 버스트 모드: 블록 단위 연속 전송
└─ 전송 완료 → CPU에 인터럽트
사이클 스틸링(Cycle Stealing)은 CPU와 DMA가 버스를 시분할하는 방식이고, 버스트(Burst) 모드는 DMA가 버스를 독점하여 블록 전송 후 반환하는 방식이다.
Ⅳ. 인터럽트 체계
인터럽트는 외부(하드웨어)와 내부(소프트웨어/예외)로 분류된다. 벡터 인터럽트 방식에서는 장치별 고유 벡터 번호로 ISR(Interrupt Service Routine)을 직접 호출하여 폴링 오버헤드를 제거한다. 우선순위는 데이지 체인 또는 PIC(Programmable Interrupt Controller)로 관리한다.
Ⅴ. 최신 동향
NVMe SSD는 MSI-X 인터럽트와 멀티 큐(최대 64K 큐)로 CPU 코어별 병렬 I/O를 지원하며, RDMA(Remote DMA)는 네트워크 간 직접 메모리 전송으로 데이터센터 저지연 통신의 핵심 기술이다.
관련: RAID(26번) · NVMe 스토리지 · DPU(42번)