임베디드/[ Embedded ]

[ Embedded ] 08. DMA모드란?

kim.svadoz 2020. 8. 19. 17:37
728x90
반응형

DMA 모드


  • Direct Memory Access
  • I/O로 인한 성능 감소 방지를 위해 CPU 개입 없이 I/O 장치와 기억장치 간 직접 데이터 전송 방식

처리기를 거치지 않고 DMA컨트롤러에 의해 주변기기로부터 데이터가 메모리로 직접 전송되는 것을 뜻한다. 이 때 각 주변기기는 DMA 컨트롤러 칩의 지시에 따라 데이터를 주고받게 되며 DMA가 지원되지 않는 보드나 주변기기에서 이 부분을 체크하게 되면 컴퓨터가 작동을 멈추는 수가 있으므로 확인하고 사용하는 것이 좋다.

DMA I/O Direct I/O(DMA 미사용)
DMA 기반 Data 처리 중 CPU는 다른 프로세스 처리 Data I/O 처리 시 완료까지 작업 중지, CPU 대기 필요

DMA 구성도/구성요소

image-20200819162114280

  • DMA 전송을 위한 중앙처리장치 버스 신호와 레지스터로 구성

DMA 동작 모드

구분 개념도 설명
Cycle Stealing
(Word)
image-20200819162310604 - Word 단위 데이터 전송
- DMAC와 CPU 동시 BUS 요청 시 DMA우선권
Burtst Transfer
(Block)
image-20200819162324048 - Block 단위 데이터 전송
- 여러 메모리 워드로 구성
- Block 전송 시 BUS 독점

DMA 동작 순서

image-20200819162540341

DMA 주요 구성요소

구성 구성요소 설명
명령어 - DMA Select(DS)
- Register Select(RS)
- 주소 버스로 DS, RS enable 하여 DMA Register 선택
명령어 - BUS Request(BR) - DMAC를 통해 버스 요청
- add/data 버스 제어권 양도
명령어 - BUS Grant(BG) - BR에 따른 상태 변경 후 DMA BUS 사용 가능 알림
레지스터 - Address Register - 메모리의 접근 주소 저장
- Work 전송 후 Increment
레지스터 - Word Count Register - 전송할 블록 Word 수 저장
- Work 전송 후 Decrement
레지스터 - Control Register - 레지스터 동작 모드 설정
- Burst Mode, Cycle Stealing

DMA와 채널제어 방식 비교

항목 DMA 채널제어
처리 단위 – 하나의 Instruction에 하나의 Block I/O – 하나의 Instruction에 여러 Block I/O 처리
메모리 – 기억장치 필요 – 로컬 메모리 기반 데이터 블록 저장
활용 – 소형 컴퓨터 – PC, 태블릿 등 – 대형 컴퓨터
– 대용량 서버
728x90
반응형