토픽 61 / 111·I/O·버스 (I/O & Bus)
DMA (Direct Memory Access)
DMA (Direct Memory Access)
CPU의 개입 없이 I/O 장치가 메모리와 직접 데이터를 주고받을 수 있도록 하는 하드웨어 메커니즘으로, CPU 부담을 줄이고 I/O 성능을 향상
목적: CPU 부담 감소, I/O 성능 향상, 병렬 처리, 효율적 데이터 전송
특징: 직접 메모리 접근, 블록 단위 전송, 인터럽트 통지, 버스 중재
구성요소: ① DMA 컨트롤러 ② 버스 마스터 ③ 메모리 버스 ④ I/O 장치
동작과정: ① CPU가 DMA 설정(소스/목적지/크기) → ② DMA가 버스 제어권 획득 → ③ 메모리-I/O 간 데이터 전송 → ④ 완료 시 CPU에 인터럽트 발생
전송모드
- •Burst Mode: 전체 블록 연속 전송, 빠름, CPU 정지
- •Cycle Stealing: 한 번에 1바이트/워드, CPU와 교대, 느림
- •Transparent Mode: CPU 유휴 사이클 활용
장점: CPU 효율 향상, 고속 전송, 병렬 처리, 낮은 레이턴시
단점: 버스 경쟁, 캐시 일관성 문제, 보안 이슈(DMA 공격)
적용사례: 디스크 I/O, 네트워크 카드, GPU, 사운드카드, SSD(NVMe)
비교: DMA(직접/빠름/복잡) vs PIO(CPU경유/느림/단순) vs IOMMU(가상메모리/보안)
연관: I/O 시스템, 인터럽트, 버스, NVMe, IOMMU, DMA 제어 신호