컴퓨터 구조_인터럽트

2025. 6. 16. 17:21컴퓨터구조

인터럽트란 란?

CPU의 정해진 명령어 흐름을 끊는 신호

  • 동기 인터럽트(=예외)
    • CPU가 예기치 못한 상황을 접했을 때 발생
    • 종류: 폴트, 크랩, 중단, 소프트웨어 인터럽트
  • 비동기 인터럽트(=하드웨어 인터럽트)
    • 주로 입출력 장치에 의해 발생하는 인터럽트 (알람 역할)
    • 목적: 입출력 작업 시 효율적으로 명령어 처리

인터럽트 처리 순서

  1. 입출력장치가 CPU에 인터럽트 요청 신호 보냄
  2. CPU는 실행 사이클 마친 후 항상 인터럽트 여부 확인
  3. CPU는 인터럽트 요청을 확인하면 인터럽트 플래그를 통해 인터럽트 받아들일 수 있는 상태인지 확인
  4. 인터럽트를 받아들일 수 있는 상태면, CPU는 지금까지의 작업을 벡업
  5. CPU는 인터럽트 벡터를 참조해 인터럽트 서비스 루틴 실행
  6. 인터럽트 서비스 륀이 끝나면 벡업 내용 복구

인터럽트 플래그란?

플래그 레지스터 내부에 위치해그 레지스터 내부에 위치해, 인터럽트를 받아들이는 것에 대한 상태정보를 가짐.

모든 인터럽트는 막을 수 없는가?

아니다. 대부분의 인터럽트는 마스킹을 통해 CPU가 허용여부를 결정할 수 있다. 다만, 막을 수 없는 인터럽트는 존재하는데 Non-Maskable Interrupt (NMI) 라고 한다. 우선순위가 높기 때문에 CPU가 반드시 처리한다.