토픽 63 / 111·I/O·버스 (I/O & Bus)
DMA 제어 신호 (DREQ/DACK/HRQ/HLDA)
DMA 제어 신호 (DREQ/DACK/HRQ/HLDA)
DMA 전송 시 I/O 장치·DMA 컨트롤러·CPU 간 버스 제어권을 주고받기 위한 하드웨어 핸드셰이킹 신호 체계
목적: DMA 전송의 동기화, 버스 충돌 방지, 장치-DMA-CPU 간 질서 있는 통신
특징: 비동기 하드웨어 신호, 채널별 독립, Active Low, 요청-응답 쌍 구조
구성요소
- •DREQ (DMA Request):
- •DACK (DMA Acknowledge):
- •HRQ (Hold Request):
- •HLDA (Hold Acknowledge):
핸드셰이킹 순서: ① 장치가 DREQ 활성화 → ② DMA가 HRQ로 CPU에 버스 요청 → ③ CPU가 현재 사이클 완료 후 HLDA로 버스 양도 → ④ DMA가 버스 마스터로 전환, DACK로 장치 선택 → ⑤ 데이터 전송 수행 → ⑥ 전송 완료 시 HRQ 해제 → ⑦ CPU가 HLDA 해제, 버스 복귀 → ⑧ DMA가 CPU에 인터럽트 발생(완료 통지)
신호 쌍 구조
- •장치↔DMA 쌍: DREQ(요청)/DACK(응답) — 데이터 전송 제어
- •DMA↔CPU 쌍: HRQ(요청)/HLDA(응답) — 버스 제어권 양도
비교: DREQ/DACK(장치↔DMA 간 전송 요청/응답, 채널별 다중) vs HRQ/HLDA(DMA↔CPU 간 버스 제어권 요청/양도, 단일 쌍)
연관: DMA, 버스 중재, 인터럽트, 버스 마스터