너도 나도 공부할때

DMA와 Channel의 차이점

kernellifestory 2025. 3. 12. 18:19


DMA(Direct Memory Access)와 채널(Channel)의 차이점

DMA와 채널은 둘 다 CPU의 개입을 최소화하면서 
입출력 장치와 메모리 간의 데이터 전송을
효율적으로 처리하는 방식!!!
개념과 역할에서 차이가 있다.


1. DMA
(Direct Memory Access, 직접 메모리 접근)


✅ 개념

CPU의 개입 없이 입출력 장치 → 메모리 간
데이터를 직접 전송하는 기술

DMA 컨트롤러(DMA Controller, DMAC)가
중재 역할을 수행


✅ 특징

CPU가 데이터 전송 작업을 하지 않아
CPU의 부하 감소

빠른 데이터 전송 가능

소규모 데이터 전송에 적합


✅ 작동 방식

CPU가 DMA 컨트롤러에게 데이터 전송 명령을 내림

DMA 컨트롤러가 I/O 장치 ↔ 메모리 간
직접 데이터 전송 수행

전송 완료 후 CPU에 인터럽트를 발생시켜
완료를 알림


2. 채널(Channel, 입출력 채널)


✅ 개념

입출력 작업을 독립적으로 처리하는
하드웨어 프로세서

DMA보다 더 고급화된 개념으로,
대량의 입출력 처리를 담당


✅ 특징

입출력 연산을 독립적으로 수행하는
전용 프로세서 역할

CPU의 개입 없이 복잡한 입출력 작업 수행 가능

대용량 데이터 처리에 적합


✅ 작동 방식

CPU가 채널에게 입출력 명령을 내림

채널이 I/O 장치와 직접 통신하며 데이터 전송 수행

전송 완료 후 CPU에 알림


3. 차이점 


구분 :  DMA(Direct Memory Access)

정의 :  CPU 없이 메모리와 I/O 장치 간
직접 데이터 전송

제어 방식 :  DMA 컨트롤러가 중재

CPU 개입 여부 : CPU가 전송 요청 후 개입하지 않음

데이터 전송량 : 소규모 데이터 전송에 적합

복잡성 상대적으로 단순한 구조


구분 :  채널(Channel)

정의 :  입출력 연산을 독립적으로
수행하는 전용 프로세서

제어 방식 :   입출력 채널 프로세서가 중재

CPU 개입 여부 :  CPU가 명령을 내리지만
                      이후 독립적으로 수행

데이터 전송량 : 대용량 데이터 전송에 적합

복잡성 :  독립적인 프로세서로 더 복잡한 처리 가능


4. 결론

DMA는 CPU 없이도 데이터를 직접
전송하는 단순한 방식

채널은 독립적인 프로세서로,
대량의 입출력 처리를 담당하는 고급 방식

즉, DMA는 비교적 간단한
직접 메모리 접근 기법이고, 

채널은 더 고급화된 방식으로
대규모 입출력 작업을 수행합니다.