반응형
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 구성도/구성요소
- DMA 전송을 위한 중앙처리장치 버스 신호와 레지스터로 구성
DMA 동작 모드
구분 | 개념도 | 설명 |
---|---|---|
Cycle Stealing (Word) |
- Word 단위 데이터 전송 - DMAC와 CPU 동시 BUS 요청 시 DMA우선권 |
|
Burtst Transfer (Block) |
- Block 단위 데이터 전송 - 여러 메모리 워드로 구성 - Block 전송 시 BUS 독점 |
DMA 동작 순서
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, 태블릿 등 | – 대형 컴퓨터 – 대용량 서버 |
반응형
'임베디드 > [ Embedded ]' 카테고리의 다른 글
[ Embedded ] 10. Bit Depth에 관하여 (0) | 2020.08.27 |
---|---|
[ Embedded ] 09. MUTEX를 이용한 쓰레드 동기화 (3) | 2020.08.19 |
[ Embedded ] 07. FDMA(주파수분할 다중접속) (0) | 2020.08.19 |
[ Embedded ] 06. SSD 요약정리 (0) | 2020.08.13 |
[ Embedded ] 05. Sampling Rate와 나이퀴스트이론 (0) | 2020.08.12 |