웹개발

DMA

업무 중 2021. 1. 20. 21:45

개념메모리 버퍼, 포인터, 카운터를 사용하여 장치 제어기가 CPU의 도움 없이 DMA컨트롤러를 이용하여 데이터를 직접 메모리로 전송하는 입출력 방식

I. CPU의 도움없이 I/O 장치가 직접 메모리에 접근하는 방식, DMA의 개요
    가. Direct Memory Access의 정의

  • 메모리 버퍼, 포인터, 카운터를 사용하여 장치 제어기가 CPU의 도움 없이 DMA컨트롤러를 이용하여 데이터를 직접 메모리로 전송하는 입출력 방식
  • CPU는 상태, 제어정보만을 교환하고 데이터 전송은 I/O와 메모리간에 직접 교환
  • DMA컨트롤러가 버스를 제어하고 I/O와 메모리가 정보를 직접 전송
  • 중앙처리장치에게 PIO작업을 할당하지 않고 DMA라는 특수 프로세서에게 위임하여 메모리와 직접 데이터 전송할 수 있도록 하는 방법

 

    나. 등장배경(인터럽트 오버헤드)

  • 고속의 I/O 장치의 경우 인터럽트로 CPU의 실제적인 프로세스 작업 시간 감소
  • 디스크 같은 많은 데이터를 입/출력하는 장치를 위해 범용 프로세서가 매번 전송을 제어하게 하는 것은 낭비
  • 인터럽트 방식이 프로그램에 의한 입출력 방식보다는 효율적이지만 입출력을 위한 상태, 제어정보,데이터 전송을 위해서는 능동적인 CPU의 개입이 필요하기 때문에 오버헤드 발생 가능

 

     다. DMA의 특징 

  • 프로그램 수행 중 인터럽트의 발생 횟수 최소화하여 시스템 효율 증대
  • CPU는 DMA 컨트롤러와 상태정보 및 제어 정보만 전송
  • CPU의 개입 없이 입출력장치와 주 기억 장치와의 데이터 직접 전송

 

출처: www.jidum.com/jidums/view.do?jidumId=470

'웹개발' 카테고리의 다른 글

알고리즘 설계 기법(Algorithm Design Paradigm)  (0) 2021.01.26
불대수 / 부울대수  (0) 2021.01.21
논리회로  (0) 2021.01.19
WebService  (0) 2021.01.15
트랜잭션(Transaction)이란?  (0) 2021.01.11