다음 이전 차례

1. IRQ - 인터럽트 리퀘스트

IRQ는 인터럽트 리퀘스트 (Interrupt ReQuest)의 약자이다. [인터럽트 리퀘스트 -프로그램 중단 요청]. 이것은 ISA 슬롯에 연결되어 있는 주변 기기나 카드가 CPU에게 무엇인가 전할 말이 있을 때 마치 CPU의 "어깨를 툭 쳐서 주의를 끄는 것"과 동일한 역할을 한다 (EISA와 MCA 슬롯에서도 같은 역할을 한다). 주변 기기라는 것의 예를 들자면, 모뎀, 네트워크 카드, 사운드 카드, 스커지 어뎁터 카드, 하드 드라이브 콘트롤러, 플로피 드라이브 콘트롤러, COM 포트와 프린터 포트 등이 있다.

IRQ는 하드웨어적 인터럽트인데, 이 것은 머더보드에서 ISA 슬롯으로 연결되는 선 (線 -실제적으로는 기판의 회로선)이 물질적으로 존재하고 있다는 말이기도 하다. ISA 슬롯에는 8 비트와 16 비트 두 종류가 있다. 16 비트용 슬롯은 기본 8 비트 슬롯에 16 비트 연장 슬롯 (Extension slot)이 연장 연결되어 있는 형식이다.

8 비트 슬롯에는 여덟 개까지의 IRQ (IRQ0 - IRQ7) 선 (線)이 하나씩 각각 연결되도록 되어 있다. 16 비트 슬롯용에는 또 다른 여덟 개의 IRQ (IRQ8 - IRQ15)가 하나씩 추가로 붙게 된다. 그러므로 ISA 버스를 쓰는 PC에는 전부 열 여섯 개의 IRQ가 존재한다. IRQ0이 (인터럽트의) 우선적 사용권을 행사하며, IRQ7이 제일 마지막 우선권을 가지고 있다. IRQ8에서 IRQ15는 좀 "특별한" 우선권이 있다.

IRQ8에서 15는 IBM이 AT 컴퓨터를 만들었을 때 처음 소개된 사양이다. 그 당시에 나와 있던 8 비트 XT (8088) 컴퓨터와 AT (286) 컴퓨터와의 호환성을 유지하기 위해서, 또한 이 새로운 IRQ의 우선권을 "높이기" 위한 방법의 하나로 두 개의 인터럽트 콘트롤러를 직렬 연결해서 만들었다. 이런 이유로, IRQ8에서 15 번까지는 IRQ2와 동급의 우선권을 가지게 된다. 여기에서 우선권이라 하는 것은 두 개의 인터럽트가 동시에 작동되었을 때, 높은 우선권을 가진 것이 먼저 처리됨을 뜻한다.

중요 사항: IRQ는 사용되고 있는 (Active) 디바이스에 한 개씩 만 지정되어야 한다. 만약 두 개의 디바이스가 하나의 IRQ를 공유하고 있는 경우에는 이러한 상황을 콘플릭트가 일어났다고 한다. 만약 이 공유되고 있는 IRQ 선 (線)이 가동된 경우에 CPU는 둘 중의 어느 디바이스에 "통신을 해야 하는 지" 모를 것이다. 모뎀이 이미 IRQ5를 지정해 서 사용하고 있고, 네트워크 카드가 같은 IRQ5를 사용하고 있는 상황을 예로 들어 보자. 만약 모뎀 이 CPU에 전달해 주어야 하는 정보가 있을 때면 이것이 IRQ5를 켜올 것이다. 하지만 CPU는 모뎀 에 응답을 해야 할지, 아니면 NIC에 응답을 해야 할지 알 방법이 없다. 그 상황에서 컴퓨터는 멈춰 버리거나 아니면 아무런 일도 아닌 것이 될 수 있다.

***IRQ 충돌은 PC에서 가장 많이 발생되는 문제이다. ***

아래에 일반적으로 구성된 IRQ 세팅을 적어 놓았다. 우선권을 가진 IRQ 순서대로 적은 것이다. (위에서 모든 IRQ 선 (線)이 카드 슬롯으로 간다고 한 것은 엄밀히 따지만 거짓말인 셈이라...)

IRQ    기능                            연결선 (線)     ISA 버스
------------------------------------------------------------
IRQ0   System Timer                     No               -                       
        시스템 타이머                    존재하지 않음

IRQ1   Keyboard Controller              No               -
        키보드                           존재하지 않음

IRQ2   Cascaded to IRQ8-15              No               -
        IRQ8-15로 직렬 연결              존재하지 않음

IRQ8   Real-time clock                  No               -
        시계                             존재하지 않음

IRQ9   *-Available(IRQ2)                Yes              8/16 비트
        *-빈 공간 (IRQ2)                 존재

IRQ10  NIC                              Yes              16 비트
        네트워크 카드                    존재

IRQ11  SCSI adapter                     Yes              16 비트
        스커지 어뎁터 카드               존재

IRQ12  Motherboard mouse/available      Yes              16 비트
        머더보드 마우스 / 빈 공간        존재

IRQ13  Math coprocessor                 No               -
        부동 연산기                      존재하지 않음

IRQ14  Primary IDE controller           Yes              16 비트
        첫 번째 IDE 콘트롤러             존재

IRQ15  Secondary IDE controller         Yes              16 비트
        두 번째 IDE 콘트롤러             존재

IRQ3   Com2/Com4                        Yes               8 비트
        COM2 / Com4                      존재

IRQ4   Com1/Com3                        Yes               8 비트
        COM1 / Com3                      존재 

IRQ5   Sound card/LPT2                  Yes               8 비트
        사운드 카드 / LPT2               존재

IRQ6   Floppy drive controller          Yes               8 비트
        플로피 드라이브 콘트롤러         존재

IRQ7   Parallel port LPT1               Yes               8 비트
        패러렐 포트 LPT1                 존재 
*- IRQ9는 마치 IRQ2인 것처럼 보인다. 이는 문제가 발생하는 경우가 많기 때문에 사용하지 않는 경우가 많다. 진짜 IRQ9인가? 아니면 IRQ2가 IRQ9로 직렬 연결 (Cascade)된 것인가? 어떤 상황으 로 맞추어 쓸 것인가? 만약 16 비트 버스 ISA 슬롯에 8 비트 ISA 모뎀을 사용한다면? 문제가 발 생될 수 있는 상황이 되는 것이다.

위의 표는 여러분이 IRQ를 골라서 쓸 때 도움이 되도록 적어놓은 것일 뿐이다. 예로서 여러분이 스커지를 쓰지 않는 상황이라면 IRQ11은 빈자리가 되니까 다른 네트워크 카드나 다른 디바이스를 쓸 수 있을 것이다.

대부분의 자동 인식을 하는 소프트웨어나 리눅스 등의 운영 체계는 IRQ가 위와 같이 맞추어 있기를 원할 것이다.


다음 이전 차례