본문 바로가기
Computer: Architecture

Concepts: Interrupt

by riwonet 2024. 10. 3.

1. 인터럽트의 개념

프로그램 실행 중 예기치 않은 상황이 발생한 경우, 인터럽트를 통해 현재 실행 중이던 작업을 멈추게 됩니다. 그리고 발생한 문제 상황을 먼저 처리한 뒤에 중단했던 원래 작업으로 복귀하여 이어서 계속 처리하게 됩니다.

명령어 사이클의 간단한 도식입니다.

 

2. 인터럽트의 동작

STEP 1. 어떠한 요인에 의해 인터럽트 요청 신호가 발생합니다.

STEP 2. 현재 수행하고 있던 명령어까지만 완료하고 수행중인 프로세스를 일시적으로 중지합니다.

STEP 3. 중단된 프로세스의 상태 정보를 안전한 장소에 보관합니다.

STEP 4. 인터럽트의 원인을 판별해 적절한 인터럽트 서비스 루틴을 실행하도록 합니다.

STEP 5. 인터럽트 서비스 루틴의 실행이 완료되면 이전에 보관해두었던 인터럽트된 프로세스의 레지스터 내용과 프로그램 카운터 내용을 복구하여 중단된 곳부터 다시 이어서 수행하게 됩니다.

 

3. 인터럽트의 처리

A. 소프트웨어를 이용한 폴링 방법: 폴링 순서가 곧 우선순위가 됩니다.

Pros_이는 프로그램으로 결정하므로 융통성이 크다는 것과, 우선순위 설정을 위한 하드웨어가 필요하지 않으므로 경제적이라는 장점이 존재합니다.

Cons_다만 폴링을 이용해 우선순위가 가장 높은 장치부터 하나씩 차례로 검사하게 되어 시간이 많이 소요되기에 인터럽트 반응 속도가 느려진다는 단점이 있습니다.

 

B. 하드웨어를 이용한 데이지 체인 방법: 인터럽트를 요청한 장치 중 우선순위가 가장 높은 장치에게만 장치 번호 버스를 사용하게 합니다. 따라서 다른 장치는 인터럽트를 요청함에도 불구하고 장치 번호 버스를 사용하지 못하게 됩니다.

Pros_이 경우 우선순위를 하드웨어로 결정하므로 응답 속도가 빠르다는 장점이 있습니다.

Cons_하드웨어로 결정하는 만큼 융통성이 적다는 것과, 우선순위 설정을 위해 하드웨어를 추가적으로 필요로 하므로 비경제적이라는 단점도 존재합니다. 

 

C. 다중 인터럽트 요청선을 이용한 방법: 하드웨어적 구성에 기반한 인터럽트 요청선을 여럿 사용하는 방법입니다.

Pros_CPU 입장에서 인터럽트를 어떤 장치가 요청했는지 쉽게 찾을 수 있다는 장점이 있습니다.

Cons_하지만 각 장치마다 인터럽트 요청선(INTR), 인터럽트 확인선(INTA)이 2개씩 요구되므로 하드웨어 구성이 복잡해지고, 접속 가능한 장치의 수가 CPU 칩의 핀수에 따라 제한이 된다는 단점이 있습니다.

 

D. 인터럽트 제어기를 이용하는 방법: CPU칩의 핀이 인터럽트 요청 신호(INTR)를 하나만 가진 경우, 인터럽트 제어기를 사용하게 됩니다.

Pros_제어기를 사용하면 제어기에 각 장치의 인터럽트 요청선이 모두 연결되어 있기에 어떤 장치가 인터럽트를 요청했는지 하드웨어로 바로 판별할 수 있다는 장점이 있습니다.