토픽 64 / 111·I/O·버스 (I/O & Bus)
입출력 제어 방식 비교 (I/O Control Methods)
입출력 제어 방식 비교 (I/O Control Methods)
CPU가 I/O 장치와 데이터를 교환하는 방식 (프로그램 I/O, 인터럽트 I/O, DMA)
특징: CPU 부담과 전송 성능의 트레이드오프
프로그램 I/O: 폴링으로 상태 반복 확인, CPU 100% 점유(Busy Waiting), 단순, 임베디드/저속 장치
인터럽트 I/O: I/O 준비 시 인터럽트→ISR 실행, CPU가 대기 중 다른 작업 가능
- •단점: 컨텍스트 저장/복원 오버헤드, 인터럽트 폭주(Interrupt Storm) 시 병합/폴링 전환
DMA: DMA 컨트롤러가 CPU 없이 메모리↔I/O 직접 전송, 완료 시 인터럽트 1회
- •캐시 일관성 문제: 해결→캐시 무효화/플러시/Coherent DMA
- •Scatter-Gather DMA: 비연속 메모리 영역 하나의 전송으로 처리
성능 비교: CPU사용률(프로그램100%>인터럽트>DMA최소), 속도(DMA>인터럽트>프로그램), HW복잡도(DMA>인터럽트>프로그램)
비교: 프로그램I/O(단순/비효율/소량) vs 인터럽트(이벤트기반/중량) vs DMA(직접전송/고속/대량)
연관: 인터럽트, DMA, 버스, I/O 장치, 채널 I/O