이전 포스팅에서 폴링과 인터럽트를 시그널을 기준으로 설명했는데

 

자료를 찾다 보니 인터럽트의 우선순위를 판단함에 있어서 폴링과 데이지체인 기법을 

 

설명하는 자료도 많네요.

 

관점에 따라서 폴링을 인터럽트랑 비교할 수도 있고

 

인터럽트의 우선순위를 판단하는 기법중 하나로 볼 수도 있는 거 같습니다.

 

그러면 본격적으로 폴링과 데이지체인을 설명해보겠습니다.

 

먼저 인터럽트 우선순위를 다루는 이유는

 

인터럽트가 2개 이상 발생하였을 때 먼저 처리할 인터럽트를 정하기 위함입니다.

 

인터럽트 우선 순위


1. 전원 공급 이상

2. CPU의 기계적인 오류

3. 외부 신호에 의한 인터럽트

4. 입출력 전송 요청 및 전송 완료, 전송 오류

5. 명령어 오류
6. 프로그램 검사

7. 슈퍼바이저 호출(SVC)

 

여기서 위의 우선순위들을 판별하는데에 폴링과 데이지체인 기법이 있습니다.

 

폴링(Polling)

 

소프트웨어적으로 인터럽트 우선순위를 판별하는 방법입니다.

 

장점으로는 우선순위 변경이 용이하고 회로가 간단하고 융통성이 있다.

 

인터럽트가 많은 경우 반응시간이 느리다는 단점이 있다.

 

 

벡터 인터럽트(Vector Interrupt)

 

하드웨어적으로 인터럽트 우선순위를 판별하는 방법입니다.

 

별도의 프로그램 루틴이 없기 때문에 응답 속도가 빠르다.

 

회로가 복잡하고 융통성이 없다. 추가 하드웨어가 필요하므로 비경제적이다.

 

직렬과 병렬 우선순위 부여 방식이 있다.

 

데이지 체인(Daisy Chain)

 

하드웨어적으로 인터럽트 우선순위를 판별하는 방법으로 직렬 우선순위 부여 방식이다.

 

인터럽트가 발생하는 모든 장치를 한개의 회선에 직렬로 연결하며

 

우선순위가 높은 장치를 맨 앞에 위치시키며 우선 순위에 따라 연결한다.

 

 

 

병렬 우선순위 부여 방식은 각 장치마다 별개의 회선으로 연결한다.

 

인터럽트 요청을 제어하기 위해 Mask Register를 사용한다.

 

 

+ Recent posts