토픽 66 / 85·파일 시스템, I/O, 시스템 구조
DMA (Direct Memory Access)
DMA (Direct Memory Access)
CPU 개입 없이 하드웨어 장치가 메모리에 직접 접근하여 데이터를 전송하는 기술로, I/O 장치와 메모리 간 대량 데이터 전송 시 CPU 부담을 줄이고 성능을 향상
목적: CPU 부담 감소, I/O 성능 향상, 동시 처리, 대량 데이터 전송
특징: CPU 우회, 하드웨어 제어, 블록 전송, 인터럽트 완료 통지, 버스 마스터링
구성요소: DMA 컨트롤러(DMAC), 소스 주소, 목적지 주소, 전송 크기, 채널
동작 과정: ① CPU가 DMAC에 전송 설정(소스, 목적지, 크기) → ② CPU는 다른 작업 수행 → ③ DMAC가 버스 마스터로 메모리-장치 간 직접 전송 → ④ 전송 완료 시 인터럽트 발생 → ⑤ CPU가 완료 처리
버스 마스터링: DMA가 시스템 버스 제어권 획득, CPU는 버스 대기
DMA 모드
- •Burst Mode: 전송 완료까지 버스 점유, 빠름, CPU 블록
- •Cycle Stealing: CPU와 버스 공유, 한 사이클씩 전송, 느림, CPU 방해 적음
- •Transparent Mode: CPU가 버스 사용 안 할 때만 전송, 가장 느림
채널: 여러 장치 동시 DMA, 채널당 독립 전송, 다채널 DMAC
장점: CPU 효율 향상, 빠른 I/O, 대량 전송 효율, 동시 처리
단점: 하드웨어 비용, 버스 경쟁, 캐시 일관성 문제, 복잡도
적용사례: 디스크 I/O(SATA, NVMe), 네트워크(NIC DMA), 그래픽(GPU), 오디오, USB
비교: DMA(직접/CPU절약/빠름) vs Programmed I/O(CPU개입/느림) vs Interrupt-driven I/O(중간)
연관: 인터럽트, I/O, 디스크, 네트워크, 캐시 일관성