Direct Memory Access

김건우·2023년 12월 16일
0

날짜 : 2023-12-16 19:12

주제 :


개요

운영 체제(OS)의 관점에서 "직접 메모리 접근(Direct Memory Access, DMA)"은 CPU의 개입 없이 주변장치가 시스템 메모리에 직접 데이터를 읽고 쓸 수 있게 하는 하드웨어 기능입니다. DMA는 특히 대용량 데이터 전송에 효율적이며, CPU의 부담을 줄여 시스템 성능을 향상시킵니다.

DMA의 기본 개념

  1. 정의: DMA는 CPU를 거치지 않고 주변장치(예: 하드 드라이브, 네트워크 카드, 사운드 카드 등)가 시스템 메모리에 직접 접근할 수 있도록 해주는 기능입니다.

  2. 목적: 이 기능의 주된 목적은 CPU의 부담을 줄이고 데이터 전송의 효율성을 높이는 것입니다. CPU가 데이터 전송을 관리하는 대신, DMA 컨트롤러가 이 역할을 담당하여 CPU를 다른 작업에 할당할 수 있게 됩니다.

DMA의 작동 방식

  1. DMA 컨트롤러: DMA 연산은 DMA 컨트롤러라는 특수한 하드웨어에 의해 수행됩니다. 이 컨트롤러는 주변장치와 메모리 간의 데이터 전송을 관리합니다.

  2. 메모리 접근: 주변장치가 데이터를 전송할 준비가 되면, DMA 컨트롤러는 메모리 주소를 지정하고 데이터 전송을 시작합니다. 이 과정에서 CPU는 관여하지 않습니다.

  3. 인터럽트와 완료 신호: 데이터 전송이 완료되면, DMA 컨트롤러는 CPU에 인터럽트를 보내 전송이 완료되었음을 알립니다. 이를 통해 CPU는 전송된 데이터를 처리할 수 있습니다.

DMA의 장점과 단점

  • 장점:

    • 효율성: 대용량 데이터를 처리할 때 CPU의 부담을 줄여줍니다.
    • 성능 향상: CPU는 다른 중요한 작업에 집중할 수 있어 전체 시스템 성능이 향상됩니다.
    • 저지연: 입출력 장치와 메모리 간의 빠른 데이터 전송을 가능하게 합니다.
  • 단점:

    • 복잡성: DMA 컨트롤러의 관리와 구성이 복잡할 수 있습니다.
    • 자원 충돌: 메모리 버스의 점유로 인해 다른 장치들의 메모리 접근이 지연될 수 있습니다.

결론

DMA는 시스템의 전체적인 성능과 효율성을 향상시키는 중요한 기능입니다. 특히 데이터 집약적인 작업과 입출력이 많은 시스템에서 그 중요성이 두드러집니다. 그러나 DMA의 사용은 시스템 설계에 추가적인 고려사항을 요구하며, 메모리 접근과 관련된 자원 관리에 영향을 미칩니다.

출처(참고문헌)

연결문서

profile
정글 3기

0개의 댓글

관련 채용 정보