1. DMA (Direct Memory Access)
ㅇ CPU 도움없이, 주변장치(제어기)들이 직접 메모리에 읽고 쓸 수 있는 방식
ㅇ 이와 반대되는 경우는, PIO (Programmed I/O) 이라고 함
- CPU가, 상태 비트를 반복 검사하면서, 직접 1 바이트씩 옮기는 I/O 방식
ㅇ 결국, CPU의 I/O 작업을 덜어주기 위한 방식이, DMA 방식 임
- DMA에 의해, 각 장치(컴퓨터 제어기)들은,
- PC 메인 버스를 통해 CPU의 개입/도움없이,
- 직접 데이터를 메인 메모리에 전달하는 것 등이 가능
2. DMA 특징
ㅇ DMA 단점
- 컴퓨터 버스 상에 여러 장치(CPU,주기억장치,제어기 등)들이 서로 경쟁하게 만들어,
이를 조정해야하는 복잡함 있게됨
ㅇ 버스 경쟁 및 제어
- DMA는, 버스 사용권을 획득하는 과정(Bus Mastership)이 필요하며,
- 이 과정에서 CPU와의 버스 충돌을 방지하기 위한,
- 버스 중재기(Bus Arbiter)가 반드시 필요
3. DMA 최신 기술 적용
ㅇ DMA는, 과거 병렬 버스 방식인 ISA 버스뿐만 아니라,
- 오늘날의 PCIe(PCI Express), SATA, NVMe, 네트워크 인터페이스 카드(NIC) 등
- 거의 모든 고속 입출력 인터페이스에서 필수적으로 사용
- 현대의 DMA 컨트롤러는, 훨씬 지능적으로 작동하며, 복잡한 데이터 패킷 전송을 전담
ㅇ 사이클 스틸링 (Cycle Stealing)
- CPU가 버스를 사용하지 않는 짧은 틈(클록 사이클)을,
- DMA가 뺏어서(Steal) 데이터를 전송하는 기법
- 전체적인 시스템 속도는 다소 느려질 수 있으나, CPU의 작업을 멈추지 않게 함
ㅇ 버스트 모드 (Burst Mode)
- 한 번 버스 사용권을 얻었을 때, 대량의 데이터를 연속적으로 빠르게 전송하는 방식
- 현대의 고성능 하드웨어에서 주로 사용