contents1. DMA(direct memory access)2. DMA Bus Controller3. DMA Controller4. PIO 모드와 DMA 모드 차이점1. DMA(direct memory access)CPU의 입출력 명령 하나에 의하여 CPU를 거치지 않고 일련의 정보(block)를 곧바로 입출력 장치에서 메모리로 또는 메모리로부터 입출력장치에 전달하는 기술.대량의 데이터가 전송될 경우 CPU가 직접 제어한다면 CPU에 상당히 많은 부하가 걸리게 된다. 그러므로 CPU를 거치지 않고 직접 데이터를 전송할 수 있게 함으로써 CPU의 부하를 줄여서 전반적인 시스템 성능을 향상시키는 기술이 DMA이다.DMA는 데이터를 불럭단위로 한번에 전송하게 되며 CPU의 개입이 없기 때문에 더욱 빠른 속도로 전송이 가능함으로 시스템의 전반적인 속도도 증가하게 하고, 하드디스크의 경우 DMA를 활성화 할 경우하드디스크 속도가 향상(약20-30%정도) 된다.보통 메모리의 특정 영역이 DMA를 위해서 사용되는 영역으로 할당된다. ISA 버스 표준에서는 메모리의 16 메가바이트까지 DMA를 위해서 할당될 수 있다. EISA와 MCA 표준은 메모리 주소의 전범위(32비트의 주소지정으로 가정)를 액세스할 수 있게 허용한다. PCI는 마이크로프로세서의 입출력 제어를 PCI 컨트롤러에게 위임하는 버스 마스터링(bus mastering)을 사용해서 DMA를 수행한다.DMA에 대비되는 방식은 PIO(Programmed Input/Output) 인터페이스인데 이 방식에서는 모든 데이터가 CPU를 통해서 장치들에 전달된다. ATA/IDE 인터페이스의 최신 프로토콜의 하나인 Ultra DMA/33은 버스트(burst) 데이터 전송률이 초당 33 MB(megabyte)에 이른다. Ultra DMA/33 방식의 하드 드라이브는 PIO 모드 1, 3, 4 와 멀티워드 DMA 모드 2 (초당 16.6 MB)를 지원한다.2. DMA Bus Controller1. Device => BR(bus request) :현재 명령어 끝난 후 bus 를 high Impedance 상태로 만듬2. CPU => BG(bus grant) : DMA controller 가 bus 장악3. DMA Controller1. Data/address bus : DS,RS 활성화, DMA controller initialization2. Device: DMA request -> DC: BR 활성화 -> CPU: bus 포기3. CPU: BG, bus disable -> DC: address,R/W 활성화 -> device: DMA ack4. Device: data transfer by Data/address bus5. 매 word 전송 때마다 addr reg++, word count6. 다음 word 전송을 위해 DMA request 기다림4. PIO 모드와 DMA 모드 차이점하드 디스크의 데이터 전송하는 방식에는 크게 두가지가 있다