본문으로 이동

미디어위키 1.45 안정화가 거의 끝났습니다. 다만 Flow 확장 기능 관련 이슈가 있어서 대체하는 작업을 수행할 계획입니다.

  1. 큰숲백과:청사진에서 위키 발전의 대략적인 방향성을 제시했습니다. 의견이 있으신 분은 큰숲백과토론:청사진에서 의견을 남겨주시면 좋겠습니다.
  2. 기능상의 오류로 지원하지 않고 있는 기능에 대해서는 큰숲백과토론:이슈 트래커에 요약했습니다. 참고하시기 바랍니다.
  3. 데이터베이스 덤프 받고싶으신 분은 큰숲백과 가입 후에 사용자토론:Bigforest에 의견 남겨주시면 ftp 주소, 계정, 비밀번호를 특수:EmailUser를 통해서 공개할 예정입니다.

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 인터페이스와의 상호작용을 위한 메모리 공간을 따로 예약한다.