현대 PC는 하드웨어 기능 조율을 위해 인터럽트 요청에 의존합니다. 개념은 1953년 UNIVAC 1103으로 거슬러 올라가며, IBM 650이 1954년 인터럽트 마스킹을 도입했습니다. 개별 장치에 고유한 IRQ 라인 할당은 효율적 작동에 필수적입니다. 키보드나 마우스 같은 주변장치가 CPU 관심을 필요로 하면 인터럽트를 생성해 해당 인터럽트 서비스 루틴(ISR)을 트리거합니다. ISR은 시간 민감 작업, 데이터 전송, 에러 처리, 워치독 타이머, 트랩에 필수적입니다.
인터럽트란?
정의: 인터럽트는 프로세서의 즉각적 주의를 요구하는 입력 신호로, 하드웨어 및 소프트웨어 이벤트 중 최고 우선순위를 가집니다. 초기 컴퓨팅에서 프로세서는 모든 주변장치와 프로그램을 폴링하며 신호를 확인해야 했고, 클록 사이클 낭비와 성능 저하를 초래했습니다. 인터럽트 메커니즘은 이 모델을 뒤집었습니다: 주변장치나 소프트웨어 모듈이 CPU에 신호를 보내고, CPU는 현재 작업을 중단하고 상태를 저장한 후 적절한 ISR을 실행합니다. ISR 완료 후 CPU는 이전 상태를 복원하고 실행을 계속합니다.
인터럽트
인터럽트 유형
인터럽트는 크게 두 범주로 분류됩니다.
하드웨어 인터럽트
외부 장치에서 CPU로 전송되는 전자 신호로 즉각적 서비스 필요를 알립니다. 키보드 키입력, 마우스 움직임, 센서 알림이 대표적 예. 하드웨어 인터럽트는 비동기적이며 명령어 실행 중 어느 시점에나 도착할 수 있습니다.
하드웨어 인터럽트는 세분됩니다:
마스크 가능 인터럽트 – 프로세서의 인터럽트 마스크 레지스터가 특정 인터럽트 소스 활성화/비활성화 제어. 레지스터 각 비트가 특정 IRQ 라인 대응; 비트 설정 시 인터럽트 서비스 허용, 클리어 시 차단.
논마스크 가능 인터럽트(NMI) – 최우선순위이며 프로세서가 비활성화 불가. 워치독 타이머 만료나 하드웨어 장애 같은 치명적 이벤트에 주로 사용.
소프트웨어 인터럽트
CPU 자체가 특수 명령어 실행이나 프로그램 실행 중 예외적 조건 발생 시 인터럽트 생성. 소프트웨어 인터럽트는 시스템 콜, 예외 처리, 트랩 루틴을 가능하게 합니다.
트리거링 방식
인터럽트 라인은 로직 레벨이나 신호 에지로 트리거될 수 있습니다. 이 두 방식은 소스가 CPU에 신호하는 방식에서 차이.
레벨 트리거 인터럽트
이 모드에서 인터럽트 라인은 소스가 서비스를 필요로 하는 동안 어서트된 상태 유지. ISR 실행 중 소스가 활성 상태로 남아 있으면 완료 후 CPU가 핸들러 재호출. 레벨 트리거 입력이 장기간 어서트되면 문제될 수 있음.
에지 트리거 인터럽트
에지 트리거 인터럽트는 신호가 로우→하이 또는 하이→로우 전이할 때 즉시 발생. CPU는 신호 레벨이 아닌 전이만 의존하므로 빠르고 일회성 이벤트에 적합.
레벨-에지 트리거링
시스템 구현
인터럽트는 전용 제어 라인으로 하드웨어에 배선되거나 메모리 서브시스템 내에 내장됩니다. 프로그래머블 인터럽트 컨트롤러(PIC) 구현 시 다중 소스가 단일 CPU 핀 공유, 배선 단순화 및 우선순위 중재 가능.
공유 인터럽트 요청(IRQ)
에지 트리거 인터럽트에서 풀업/풀다운 저항이 라인을 알려진 상태 유지. 각 장치 펄스가 공유 라인 따라 전파되고 CPU가 트레일링 에지에서 라인 샘플링하여 펄스 누락 방지. 구형 ISA 보드는 공유 IRQ 의존으로 경합 발생; 현대 PCI 아키텍처는 전용 컨트롤러와 동적 할당으로 완화.
하이브리드
하이브리드 시스템은 에지 트리거링에 레벨 검증 결합, 활성 신호 무시 방지. 논마스크 가능 입력에 흔히 사용되며 오양성 감소.
메시지 신호 인터럽트
전용 라인 대신 장치가 PCI Express 같은 버스로 메시지 전송해 CPU에 알림. 물리적 핀 불필요, 높은 처리량 지원.
도어벨
도어벨 인터럽트는 소프트웨어 주도 신호로 장치가 공유 메모리 영역에 데이터 쓰고 인터럽트 트리거, CPU가 준비된 데이터 처리.
멀티프로세서 IPI
멀티코어 시스템에서 한 프로세서가 다른 프로세서로 프로세서 간 인터럽트(IPI) 전송, 코어 간 작업 조정이나 이벤트 신호.
대표적 용도/응용
하드웨어 타이머 처리 및 키보드/마우스 입력 처리.
시간 민감 또는 실시간 이벤트 대응.
주변장치와의 데이터 전송 관리.
전원 차단 요청, 트랩, 워치독 타이머 같은 고우선순위 신호 처리.
비정상 CPU 이벤트 보고.
외부 전원 손실 시 질서 있는 전원 차단 지원.
절대 시간 유지를 위한 주기적 인터럽트 생성.
자주 묻는 질문
1. 왜 인터럽트를 사용하는가?
인터럽트는 CPU 초점을 긴급 하드웨어/소프트웨어 작업으로 가져와 지속적 폴링 없이 적시 대응 가능하게 합니다.
2. NMI란?
NMI는 논마스크 가능 인터럽트(Non-Maskable Interrupt)로 프로세서가 비활성화할 수 없는 신호, 치명적 이벤트 전용.
3. 인터럽트 확인 라인 기능은?
CPU가 인터럽트 수신 준비됨을 장치에 알리고, 장치가 버스에 ISR 주소 올릴 수 있게 함.
4. 하드웨어 인터럽트 설명 및 예시.
하드웨어 인터럽트는 외부 장치(키보드 누름, 마우스 클릭, 센서 출력)가 생성하며 즉각적 CPU 서비스 필요.
5. 소프트웨어 인터럽트 설명.
소프트웨어 인터럽트는 프로세서가 특수 명령어(시스템 콜, 예외 처리 루틴)로 호출.
6. 최고 우선순위 인터럽트는?
논마스크 가능 인터럽트(NMI)와 트랩이 최고 우선순위.
7. 인터럽트 용도 예시.
실시간 이벤트 신속 대응.
주변장치 데이터 전송.
전원 차단, 워치독 타이머 등 중요 작업 처리.
비정상 CPU 이벤트 보고.
8. 하이브리드 시스템 구현이란?
하이브리드 시스템은 에지 트리거와 레벨 검증 모두 사용, 진짜 이벤트 포착하면서 스퓨리어스 트리거 감소.
이 글은 인터럽트의 중요성을 탐구하며 유형, 시스템 통합, 실용적 응용을 상세히 다룹니다.