프로그래머블 인터럽트 컨트롤러

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

프로그래머블 인터럽트 컨트롤러(PIC)는 컴퓨터 시스템에서 인터럽트 요청을 관리하는 장치이다. PIC는 인터럽트 요청 레지스터(IRR), 서비스 중 레지스터(ISR), 인터럽트 마스크 레지스터(IMR)와 같은 레지스터를 사용하여 인터럽트를 처리하며, 하드 우선순위, 특정 우선순위, 순환 우선순위 등 다양한 우선순위 체계를 지원한다. 인터럽트는 엣지 트리거 또는 레벨 트리거 방식으로 발생할 수 있으며, 인터럽트 종료(EOI)를 통해 완료를 알린다. x86 아키텍처에서는 인텔 8259가 널리 사용되었으며, 현대에는 APIC로 대체되거나 사우스브리지 칩셋에 통합되었다.

프로그래머블 인터럽트 컨트롤러
📚 더 읽어볼만한 페이지
  • 디지털 전자공학 - 트랜지스터-트랜지스터 논리
    트랜지스터-트랜지스터 논리(TTL)는 1961년 제임스 L. 부이에 의해 발명된 바이폴라 접합 트랜지스터 기반의 디지털 회로 기술로, 텍사스 인스트루먼츠의 7400 시리즈를 통해 널리 사용되었으며, 저렴한 비용으로 디지털 기술 발전에 기여했다.
  • 디지털 전자공학 - 플립플롭
    플립플롭은 1비트 이상의 정보를 저장하는 디지털 논리 회로로, 에클스-조던 트리거 회로에서 기원하여 SR, D, T, JK 등 다양한 유형으로 구현되며, 컴퓨터 기억 장치의 기본 구성 요소로 사용되지만 타이밍 요소에 민감하게 설계해야 한다.
  • 메인보드 - 칩셋
    칩셋은 컴퓨터 시스템에서 CPU와 주변 장치 간 통신을 중재하는 핵심 부품으로, 초기에는 노스브리지와 사우스브리지로 구성되었으나 현재는 사우스브리지가 주요 부분을 담당하며, 인텔, AMD 등 CPU 제조사들이 시장을 주도하고 있다.
  • 메인보드 - 버스 (컴퓨팅)
    버스는 컴퓨터 내부 구성 요소나 컴퓨터 간에 데이터를 전송하는 통로로, 데이터 전송 방식에 따라 병렬 버스와 직렬 버스로 나뉘며, 컴퓨터 시스템의 성능 향상에 핵심적인 역할을 하는 중요한 구성 요소이다.
  • 인터럽트 - 도스 API
    도스 API는 응용 프로그램이 MS-DOS 운영체제의 시스템 기능을 사용하도록 제공되는 인터페이스로, CP/M 호환성을 고려한 초기 설계 이후 유닉스 개념 도입, 네트워크 기능 추가 등으로 확장되었으며, 다양한 운영체제에서 에뮬레이터를 통해 지원된다.
  • 인터럽트 - 인텔 8259
    인텔 8259는 하드웨어 장치의 인터럽트 요청을 관리하여 CPU에 전달하는 인터럽트 컨트롤러이며, 최대 64개의 IRQ를 제공하기 위해 캐스케이딩될 수 있고, DOS 및 Windows와의 호환성을 위해 다양한 작동 모드를 지원한다.

2. 공통 기능

PIC는 인터럽트 요청 레지스터(IRR), 서비스 중 레지스터(ISR), 인터럽트 마스크 레지스터(IMR)와 같은 공통 레지스터 집합을 가지고 있어, 여러 인터럽트 요청을 처리하고 우선순위를 관리한다.

PIC는 하드 우선순위, 특정 우선순위, 순환 우선순위 등 여러 우선순위 체계를 가지며, 인터럽트는 엣지 트리거 또는 레벨 트리거 방식이 될 수 있다.

EOI가 발행될 때 인터럽트 완료를 알리는 방법에는 완료된 인터럽트 지정, 완료된 암시적 인터럽트 사용, 인터럽트 승인을 EOI로 처리하는 것 등이 있다.

2.1. 레지스터

PIC는 일반적으로 다음과 같은 공통 레지스터 집합을 가지고 있다.

* 인터럽트 요청 레지스터 (IRR, Interrupt Request Register): 어떤 인터럽트가 승인을 대기 중인지 지정하며, 일반적으로 직접 접근할 수 없는 기호 레지스터이다.
* 서비스 중 레지스터 (ISR, In-Service Register): 승인되었지만 아직 인터럽트 종료(EOI)를 대기 중인 인터럽트를 지정한다.
* 인터럽트 마스크 레지스터 (IMR, Interrupt Mask Register): 무시되고 승인되지 않아야 하는 인터럽트를 지정한다.

이러한 레지스터 체계를 통해 최대 2개의 서로 다른 인터럽트 요청이 한 번에 발생할 수 있으며, 하나는 승인을 기다리고 다른 하나는 EOI를 기다린다.

2.2. 우선순위 체계

PIC는 하드 우선순위, 특정 우선순위, 순환 우선순위 등 여러 우선순위 체계를 가진다. 인터럽트는 엣지 트리거 또는 레벨 트리거 방식이 될 수 있다.

2.3. 인터럽트 트리거 방식

인터럽트는 엣지 트리거 또는 레벨 트리거가 될 수 있다.

2.4. 인터럽트 종료 (EOI) 처리

PIC는 EOI가 발행될 때 인터럽트가 완료되었음을 알리는 몇 가지 일반적인 방법을 가지고 있다. 여기에는 다음이 포함된다.

* 완료된 인터럽트 지정
* 완료된 암시적 인터럽트 사용 (일반적으로 ISR에서 가장 높은 우선순위 대기 중인 인터럽트를 의미한다)
* 인터럽트 승인을 EOI로 처리

3. x86 아키텍처에서의 PIC

8259A는 가장 잘 알려진 프로그래머블 인터럽트 컨트롤러(PIC) 중 하나로, x86 PC에 포함되었다. 현대의 x86 PC에서는 별도의 칩으로 존재하지 않고 마더보드의 사우스브리지 칩셋에 통합되거나, 더 많은 인터럽트 출력과 유연한 우선순위 체계를 지원하는 고급 프로그래머블 인터럽트 컨트롤러(APIC)로 대체되었다.