직접 메모리 접근: 두 판 사이의 차이

내용 삭제됨 내용 추가됨
Hs0207 (토론 | 기여)
편집 요약 없음
TedBot (토론 | 기여)
잔글 봇: 틀 이름 및 스타일 정리
13번째 줄:
== 이론 ==
=== Third-party ===
표준 DMA(Third-party DMA)는 DMA 컨트롤러를 사용한다. DMA 컨트롤러는 메모리 주소를 생성하고 메모리 읽기 또는 쓰기 사이클을 초기화할 수 있다. 여기에는 일부 [[하드웨어 레지스터]]들이 포함된다. 이것들은 메모리 주소 레지스터, 바이트 카운트 레지스터와 하나 이상의 레지스터들을 포함한다. DMA 컨트롤러의 특징에 따라 컨트롤 레지스터들은 원본, 대상, 전송 방향, 전송 크기 단위, 버스트 당 전송 파이트 수의 조합을 지정할 수 있다.<ref name=Osborne80>{{cite book서적 인용|first=Adam |last=Osborne |title=An Introduction to Microcomputers: Volume 1: Basic Concepts |edition=2nd |publisher=Osborne McGraw Hill |year=1980 |isbn=0931988349 |pages=[https://archive.org/details/introductiontomi00adam/page/5 5–64 through 5–93] |url=https://archive.org/details/introductiontomi00adam/page/5 }}</ref>
 
=== 버스 마스터링 ===
29번째 줄:
 
== 캐시 간섭 ==
DMA는 [[캐시 일관성]] 문제를 일으킬 수 있다.
== 예 ==
ISA 버스 표준에서는 DMA를 위해 메모리를 최대 16MB까지 지정할 수 있다. EISA와 MCA 표준은 (32비트 주소지정이 가능하다는 전제 하에) 전체범위의 메모리 주소에 액세스를 허용한다. PCI는 CPU가 PCI 콘트롤러에 입출력제어를 위임하는 버스 마스터링을 사용하여 DMA를 지원한다. 방식에는 폴링(polling), 인터럽트(INT)방식이 있다.