SW/MCU

DMA

seungH 2025. 3. 30. 21:53

https://www.idec.or.kr/vod/apply/view/?pay=&search_val=amba&no=257

AMBA AXI 설계와 검증 아이덱 강의

DMA(Direct Memory Access, 직접 메모리 접근)는 CPU의 개입 없이 메모리와 외부 장치간에 데이터를 직접 전송하는 기능을 제공하는 하드웨어 모듈이다.

기존에 메모리의 값을 외부 장치에 전송하기 위해서는 어떻게 했을까?

  1. core에서 load instruction을 읽어온다.
  2. 이 load명령에 의해 메모리에 접근해 데이터를 가져온다.
  3. 버스를 통해 (amba axi) 데이터를 가져오고, 그 데이터를 core에 레지스터(x1~x15)에 넣는다.
  4. 레지스터에 저장된 메모리값을 외부 장비에 쓴다.

즉, DMA를 사용해야한다.

 

  1. CPU가 DMA 컨트롤러(DMAC)에 데이터 전송 요청을 보냄
  2. DMA컨트롤러가 메모리와 I/O장치간 직접 데이터 전송 수행
  3. 전송 완료 후 DMA가 CPU에게 인터럽트로 알림

DMA의 유형

버스트모드 : 연속적인 블록 한번에 전송

사이클 스틸링 모드

자동 요청 모드

DMA가 많이 사용되는 분야

고속 데이터 전송(GPU, FPGA와의 데이터 교환)

네트워크 패킷 처리

오디오 및 영상 처리

SSD, HDD같은 저장장치와의 데이터 교환

'SW > MCU' 카테고리의 다른 글

Cortex-M 프로세서 개요  (1) 2024.01.28