DMA: Direct Memory Access 기술 개요
AI Store에서 AI코딩으로 만들어진 앱을 만나보세요!
지금 바로 방문하기

DMA(Direct Memory Access) 요약

카테고리

프로그래밍/소프트웨어 개발

서브카테고리

인프라/DevOps/보안

대상자

시스템 설계자, 하드웨어 엔지니어, 운영체제 개발자

난이도: 중간 (컴퓨터 구조 기초 지식 필요)

핵심 요약

  • DMA는 CPU 개입 없이 I/O 장치와 메모리 간 직접 데이터 전송을 가능하게 하는 하드웨어 기술
  • DMA 컨트롤러가 데이터 전송 관리, CPU는 명령만 전달 후 대기
  • Burst Mode, Cycle Stealing Mode, Transparent Mode 등 3가지 주요 전송 방식 존재

섹션별 세부 요약

  1. 구조
  • DMA 컨트롤러는 메모리와 I/O 장치 간 데이터 이동을 독립적으로 관리
  • CPU는 명령 전달 후 다른 작업 수행 가능
  • 전송 완료 시 인터럽트를 통해 CPU에 알림
  1. 동작 과정
  • CPU가 DMA 컨트롤러에 "주소, 크기, 방향" 명령 전달
  • DMA 컨트롤러가 디바이스와 메모리 간 직접 데이터 전송
  • 전송 완료 시 CPU에 인터럽트 발생
  1. 전송 방식
  • Burst Mode: 블록 단위 전송 (빠름, 버스 독점)
  • Cycle Stealing Mode: CPU와 DMA가 번갈아 버스 사용
  • Transparent Mode: CPU가 사용하지 않을 때만 DMA 사용
  1. 장점/단점
  • 장점: CPU 부하 감소, 데이터 전송 속도 향상
  • 단점: 하드웨어 복잡성 증가, 버스 경합 가능성
  1. 활용 분야
  • 저장장치(디스크 ↔ 메모리), 그래픽 처리(GPU ↔ 메모리), 오디오 처리, 네트워크(NIC ↔ 메모리)
  1. CPU vs DMA 비교

| 항목 | CPU 방식 | DMA 방식 |

|---|---|---|

| 처리 방식 | CPU 직접 이동 | DMA 컨트롤러 전담 |

| CPU 개입 | 지속 필요 | 명령만 전달 |

| 속도 | 느림 | 빠름 |

  1. DMA 컨트롤러 위치
  • 과거: 외부 DMA 컨트롤러 칩(예: Intel 8237)
  • 현대: CPU 칩셋(Southbridge/PCH) 또는 SoC 내부 통합

결론

DMA는 하드웨어와 운영체제 설계 시 핵심 기술로, 인터럽트, 버스 관리, 메모리 매핑과 연계하여 시스템 성능을 극대화합니다. 현대 시스템에서는 SoC 내부 통합이 일반적이며, Burst Mode는 고속 전송을 위해 주로 사용됩니다.