DMA: 두 판 사이의 차이

큰숲백과, 나무를 보지 말고 큰 숲을 보라.
(새 문서: 분류: 컴퓨터 분류: 집적 회로 DMA(Direct Memory Access)는 기억 장치 간 I/O만을 전문으로 담당하여 CPU 대신 데이터 I/O 작업을 수행하는 방식과 그것을 수행하는 집적 회로를 가리킨다. 초기의 낮은 CPU 성능로 인해 CPU가 직접 개입하는 Programmed I/O 방식으로는 컴퓨터가 충분한 성능을 낼 수 없었기 때문에(I/O 대기 시간동안 CPU가 아무것도 못한다) 이를 보조하여 CPU가...)
 
잔글편집 요약 없음
 
10번째 줄: 10번째 줄:
캐시가 항상 주기억장치와 동기화되지 않는 점을 고려했을 때 CPU의 개입 없이 데이터를 읽고 쓰는 DMA는 CPU의 캐시 일관성을 해칠 수 있다.
캐시가 항상 주기억장치와 동기화되지 않는 점을 고려했을 때 CPU의 개입 없이 데이터를 읽고 쓰는 DMA는 CPU의 캐시 일관성을 해칠 수 있다.


ISA, PCI, AHB 등의 데이터 통신 규격이 DMA를 위한 메모리 공간을 따로 예약한다.
DMA는 일반적으로 제어 레지스터, 데이터 레지스터, 주소 레지스터, 워드 카운터 레지스터, 인터페이스 회로로 구성된다. 그리고 ISA, PCI, AHB 등의 데이터 통신 규격들은 DMA 인터페이스와의 상호작용을 위한 메모리 공간을 따로 예약한다.

2023년 8월 18일 (금) 19:35 기준 최신판

DMA(Direct Memory Access)는 기억 장치 간 I/O만을 전문으로 담당하여 CPU 대신 데이터 I/O 작업을 수행하는 방식과 그것을 수행하는 집적 회로를 가리킨다.

초기의 낮은 CPU 성능로 인해 CPU가 직접 개입하는 Programmed I/O 방식으로는 컴퓨터가 충분한 성능을 낼 수 없었기 때문에(I/O 대기 시간동안 CPU가 아무것도 못한다) 이를 보조하여 CPU가 직접 개입하지 않고 DMA에 전송 방향, 전송할 데이터 크기 등의 기억 장치 간 데이터 복사를 통한 R/W 작업 사항을 지시하면 DMA가 세팅에 따른 3가지 모드 중 하나로 데이터를 여러 바이트로 이루어진 블록 단위로 복사한다.

  • 버스트 모드(Burst Mode): 전체 데이터 블럭을 분할하지 않고 한번에 보낸다. 이때 DMA가 데이터 블록을 전부 목적지로 전송하기 전까지 시스템의 I/O 버스를 CPU 대신 일정 부분 점유하며 절대 CPU에게 I/O 버스 제어권을 돌려주지 않는다.
  • 사이클 스틸링 모드(Cycle Stealing Mode): 사이클마다 명령 수신과 데이터 전송을 교대로 반복하며 분할한다. 그렇기 때문에 CPU와 DMA가 교대로 시스템 I/O 버스를 점유한다.
  • 투명 모드(Transparent Mode): DMA의 은닉 데이터 전송 모드라고도 하며 CPU가 시스템 I/O 버스를 점유하지 않는 시간에만 DMA가 블록 단위 데이터 전송을 한다. CPU의 I/O 성능 저하가 가장 적으나 DMA가 가장 적은 수준의 성능을 발휘한다.

캐시가 항상 주기억장치와 동기화되지 않는 점을 고려했을 때 CPU의 개입 없이 데이터를 읽고 쓰는 DMA는 CPU의 캐시 일관성을 해칠 수 있다.

DMA는 일반적으로 제어 레지스터, 데이터 레지스터, 주소 레지스터, 워드 카운터 레지스터, 인터페이스 회로로 구성된다. 그리고 ISA, PCI, AHB 등의 데이터 통신 규격들은 DMA 인터페이스와의 상호작용을 위한 메모리 공간을 따로 예약한다.