데이지 체인
더 많은 작업
데이지 체인(Daisy Chain)은 여러 장치를 신호선 하나에 직렬로 이어, 승인 신호가 앞 장치부터 차례로 전달되게 함으로써 연결 순서대로 우선순위를 정하는 하드웨어 연결 방식이다.
여러 입출력 장치가 동시에 인터럽트를 요청하거나 버스를 쓰겠다고 요청하면, 누구의 요청을 먼저 들어줄지 정해야 한다. 데이지 체인은 이를 회로 배선으로 해결한다. CPU(또는 버스 중재기)가 내보낸 승인 신호는 첫 번째 장치로 들어간다. 그 장치가 요청 중이면 승인을 받아 쓰고 다음 장치로는 넘기지 않는다. 요청하지 않았으면 승인을 다음 장치로 넘긴다. 그래서 CPU 에 가까운 장치일수록 우선순위가 높다.[1]
모든 장치의 인터럽트 요청선은 하나로 묶여 CPU 에 들어간다. CPU 가 인터럽트 승인(INTACK)을 보내면 각 장치의 PI(priority in) 입력으로 들어가 PO(priority out) 출력으로 다음 장치에 이어진다.
- 요청한 장치는 PI 가 1이면 PO 를 0으로 막고 자기 인터럽트 벡터를 데이터 버스에 올린다. CPU 는 그 벡터로 처리 루틴을 찾는다
- 요청하지 않은 장치는 PI 를 그대로 PO 로 넘긴다
- 앞 장치가 PO 를 0으로 막았으므로 뒤쪽 장치는 같은 때 요청했어도 기다린다
자일로그 Z80 계열 주변장치는 IEI(Interrupt Enable In)와 IEO(Interrupt Enable Out) 핀으로 이 방식의 인터럽트 우선순위 체인을 만든다.[2]
버스 중재에서도 같은 원리로 버스 승인(bus grant) 신호를 장치에 직렬로 돌린다. 버스를 요청한 장치 가운데 승인 신호가 먼저 닿는 장치가 버스를 얻는다. 중재기와 회선이 단순하지만, 앞쪽 장치가 버스를 자주 쓰면 뒤쪽 장치는 계속 밀리고(기아), 중간 장치가 고장 나면 그 뒤로 승인이 전달되지 않는다.
- 장점 - 신호선이 적고 장치를 체인 끝에 덧붙이기만 하면 늘릴 수 있다. 우선순위를 판정하는 별도 회로가 필요 없다
- 단점 - 우선순위가 배선 순서로 고정된다. 신호가 장치를 하나씩 거치므로 장치가 많으면 지연이 커진다. 한 장치의 고장이 뒤쪽 전체를 막는다
| 방식 | 우선순위를 정하는 방법 | 특징 |
|---|---|---|
| 데이지 체인 | 승인 신호를 직렬로 전달, 앞쪽이 우선 | 하드웨어 방식. 회선이 적고 고정 우선순위 |
| 소프트웨어 폴링 | CPU 가 프로그램으로 장치를 정해진 순서로 하나씩 확인 | 하드웨어가 단순하지만 장치가 많으면 느리다(폴링) |
| 병렬 우선순위(독립 요청) | 장치마다 요청·승인선을 따로 두고 우선순위 인코더로 판정 | 빠르지만 회선과 회로가 많다(우선순위 인코더) |
데이지 체인과 폴링은 모두 누구의 요청을 먼저 처리할지를 정하는 방법이다. 큰 데이터 블록을 CPU 개입 없이 옮기는 것은 DMA 의 일이고, 장치 레지스터에 메모리 주소를 주는 것은 메모리 사상 입출력의 일이다.
- ↑ M. Morris Mano, 『Computer System Architecture』 3판, Prentice Hall, 1993, 11.5절 「Priority Interrupt - Daisy-Chaining Priority」.
- ↑ 「Z80 CPU User Manual」(UM0080), Zilog, https://www.zilog.com/docs/z80/um0080.pdf, 확인일: 2026-11-04.