(Computer Architecture)인터럽트 우선순위 체제

인터럽트가 다양하게 발생하면 순서를 매겨서 차례차례 처리한다.
실제로 인터럽트 우선순위가 정의되어있다.



인터럽트 우선순위 체제의 목적은 CPU에 연결되어 있는 여러 장치에서 동시에 하나이상의 인터럽트가 발생했을 때 먼저 서비스할 장치를 결정하기 위해서다.

인터럽트 우선순위 체제의 기능
1) 각 장치에 우선순위를 부과하는 기능
2) 인터럽트를 요청한 장치의 우선순위를 판별하는 기능
3) 우선순위가 높은 것을 먼저 처리할 수 있는 기능

인터럽트 우선순위를 판별하는 방법은 소프트웨어적인 방법과 하드웨어적인 방법이있다.

소프트웨어적인 인터럽트 우선순위 판별 방법을 Polling이라고 한다.

인터럽트 발생시 우선순위가 가장 높은 인터럽트 자원(Source)부터 인터럽트 요청플래그를 차례로 검사하여 찾고 이에 해당하는 인터럽트 서비스 루틴을 수행하는 방식.

폴링의 특징은 다음과 같다.
1)우선순위 변경이 쉽다.
2) 회로가 간단하고 융통성이 있으며 별도의 하드웨어가 필요 없으므로 경제적이다.
3)많은 인터럽트가 있을 때 그들을 모두 조사하는데 많은 시간이 걸려 반응시간이 느리다는 단점이 있다.

하드웨어 우선순위 인터럽트는 CPU와 Interrupt를 요청할 수 있는 장치 사이에 장치 번호에 해당하는 버스를 병렬이나  직렬로 연결하여 요청 장치의 번호를 CPU에 알리는 방식이다.

벡터 인터럽트의 특징은 다음과 같다.

1)벡터 인터럽트 방식에서는 인터럽트를 발생한 장치가 프로세서에게 분기할 곳에 대한 저보를 제공하는데, 이 정보를 인터럽트 벡터라고 한다.
2) 하드웨어적인 방법은 장치 판별을 위한 별도의 프로그램 루틴이 없어 응답속도가 빠르다.
3)회로가 복잡하고 융통성이 없으며 추가적인 하드웨어가 필요하므로 비경제적이다.
4) 하드웨어적인 방법은 직렬과 병렬 우선순위 부여 방식이 있다.

직렬,병렬 방식의 특징 떄문에 벡터 인터럽트는 두가지로 나뉜다.

****데이지 체인(Daisy-Chain)방식은 직렬(Serial)우선순위 부여 방식으로 인터럽트가 발생하는 모든 장치를 한개의 회선에 직렬로 연결한다. 우선순위가 높은 장치를 선두에 위치시키고 나머지를 우선순위에 따라 차례로 연결한다.

****병렬(Parallel)우선순위 부여방식은 인터럽트가 발생하는 각 장치를 개별적인 회선으로 연결한다. 각 장치의 인터럽트 요청에 따라 각 비트가 개별적으로 Set될 수 있는 Mask Register를 사용한다. 우선순위는 Mask Register의 비트 위치에 의해서 결정된다.
마스크 레지스터는 우선순위가 높은 것이 서비스 받고 있을 때 우선순위가 낮ㅇ느 것을 비활성화 시킬 수 있다. 우선순위가 높은 인터럽트는 낮은 인터럽트가 처리된ㄴ 중에도 우선처리 된다.



댓글

이 블로그의 인기 게시물

(네트워크)폴링방식 vs 롱 폴링방식

(ElasticSearch) 결과에서 순서 정렬

(18장) WebSocekt과 STOMP를 사용하여 메시징하기