프로그래머블 인터럽트 컨트롤러
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.4. 인터럽트 종료 (EOI) 처리
PIC는 EOI가 발행될 때 인터럽트가 완료되었음을 알리는 몇 가지 일반적인 방법을 가지고 있다. 여기에는 다음이 포함된다.
* 완료된 인터럽트 지정
* 완료된 암시적 인터럽트 사용 (일반적으로 ISR에서 가장 높은 우선순위 대기 중인 인터럽트를 의미한다)
* 인터럽트 승인을 EOI로 처리
3. x86 아키텍처에서의 PIC
8259A는 가장 잘 알려진 프로그래머블 인터럽트 컨트롤러(PIC) 중 하나로, x86 PC에 포함되었다. 현대의 x86 PC에서는 별도의 칩으로 존재하지 않고 마더보드의 사우스브리지 칩셋에 통합되거나, 더 많은 인터럽트 출력과 유연한 우선순위 체계를 지원하는 고급 프로그래머블 인터럽트 컨트롤러(APIC)로 대체되었다.