이번에는 정보처리기사 필기 과목인 전자계산기 구조의 인터럽트 우선순위를 알아보기로 해요.
인터럽트 우선 순위
전원 공급이 이상 → CPU의 기계적인 오류 → 외부 신호에 의한 인터럽트 → 입출력 전송 요청 및 전송 완료, 전송 오류
→ 프로그램 검사 인터럽트 → 슈퍼바이저 호출(SVC 인터럽트)
폴링(Polling)
가장 높은 인터럽트부터 요청 플래그를 검사하여 인터럽트 서브스 루틴을 수행하는 소프트웨적인 방법입니다.
하드웨어를 추가할 필요가 없어 회로가 간단합니다.
인터럽트를 조사하는 비용이 들어 반응시간이 느립니다.
인터럽트 요청한 장치를 차례대로 검사합니다.
데이지 체인(Daisy Chain)
어디에 인터럽트가 발생하였는지 확인하는 회로를 직렬로 연결하는 하드웨어적인 방법입니다.
우선순위에 따라 한줄로 연결합니다.
병렬(Parallel)
인터럽트가 발생하였는지 확인하는 회로가 각 장치마다 별개의 회선으로 연결하는 하드웨어적인 방법입니다.
인터럽트 요청을 제어하기 위해 장치마다 설정할 수 있는 Mask Register를 사용합니다.
우선순위가 높은 것을 서비스하고 있을 때 우선순위가 낮은 것을 비활성화할 수 있게 Mask Register를 사용합니다.
우선순위가 낮은 인터럽트를 처리하는 중에도 우선순위가 높은 인터럽트를 먼저 처리할 수 있습니다.
데이지 체인과 병렬 방식처럼 하드웨어적인 방법으로 인터럽트 우선순위를 판별하는 것을 벡터 인터럽트라고 부릅니다.
인터럽트 벡터에는 분기번지를 기억합니다.