IRQ는 왜 16ê°œ ë¿ì¸ê°€?

Kêµ°ì€ ì–¸ì œë‚˜ ë°”ì˜ë‹¤.

K-BENCHì—서 ë§Žì€ ê¸°ì‚¬ì™€ í’부한 커뮤니티 ë“±ì„ ë‘루 섭렵한 탓ì¸ì§€ 주변ì—서는 Kêµ°ì—게 ë§Žì€ ì¡°ë¦½ë¬¸ì˜ì™€ ê·¸ í›„ë¡œë„ ì´ì–´ì§€ëŠ” ìž¦ì€ A/S ì „í™”ì— ì‹œë‹¬ë¦¬ê³  있다. (아마 ì£¼ë³€ì˜ PC를 ë§Žì´ ì¡°ë¦½í•´ì£¼ì—ˆë˜ ìœ ì €ë¼ë©´ ë™ê°í•  듯.. ë˜í•œ 조립 ì¤‘ì— ì‹œì¼œ 먹는 ìžìž¥ë©´ì€ ì •ë§ ë§›ìžˆë‹¤!!)

ë˜ ë‹¤ì‹œ 울린 전화벨..

ë¬¸ì˜ ë‚´ìš©ì€ ë„¤íŠ¸ì›Œí¬ ê³µìœ ë¥¼ 위해 새로 장착한 랜카드 (NIC : Network Interface Card)를 ì¸ì‹í•˜ì§€ 못하고 제어íŒì˜ 장치관리ìžì— 노란 ëŠë‚Œí‘œê°€ ë–  있다는 ë‚´ìš©ì´ì—ˆë‹¤. ë¬¸ì œì˜ ì›ì¸ì„ 쉽사리 알아챈 Kêµ°ì€ ë§ˆì¹¨ ì§‘ê³¼ 가까워서 출장A/S를 나간다.  â€˜ì´ì œëŠ” ê·¸ ë…€ì„ê³¼ ì¸ì—°ì„ ëŠìœ¼ë¦¬...’ ë¼ëŠ” ìƒê°ì„ 하며..

ë„착한 Kêµ°ì€ ìŠ¬ë¡¯ 바꿔ë¼ê¸°ë¼ëŠ” 방법으로 쉽게 문제를 해결한다. 하지만 "왜 IRQ는 16ê°œ ë°–ì— ì—†ëŠ”ê±°ì§€? 수십 개로 늘리면 ì´ëŸ° ì¼ì€ ì—†ì„ ê±° ì•„ëƒ?†ë¼ëŠ” ì§ˆë¬¸ì— ë¨¸ë­‡ê±°ë¦¬ë‹¤ “그거야 ë­..†ë§ëì„ í리다 “엇.. ì•½ì† ìžˆëŠ”ë° ë‹´ì— ë³´ìžâ€ë¼ë©° 다시 발걸ìŒì„ 집으로 향한다.

왜 IRQ는 16ê°œ ë°–ì— ì—†ì„까?

IRQ(interrupt request)란 장비를 ì‹ë³„하기 위한 ì‹ë³„번호. PCì— ìžˆì–´ IRQ란 컴퓨터 부품 (키보드나 사운드카드 등)ì—서 나오는 신호를 ë§í•œë‹¤. IRQ 신호는 IRQ ë¼ì¸ì„ ë”°ë¼ì„œ ì¸í„°ëŸ½íЏ 제어기까지 보내진다. ì¸í„°ëŸ½íЏ 제어기는 들어오는 IRQì— ìš°ì„ ê¶Œì„ ì§€ëª…ì— ëª…ë ¹ì„ CPUì— ì˜®ê²¨ë†“ëŠ”ë‹¤.

CPU는 ìžê¸°ì˜ ìš°ì„ ìˆœìœ„ì— ë”°ë¼ ì—°ì‚°, 제어업무를 하는 ì¤‘ì— ê° ìž¥ì¹˜ì—서 필요한 ìš”ì²­ì— ìž ì‹œ ìžê¸°ì˜ ì¼ì„ 중단하고 신호를 처리하고 ë˜ ìžì‹ ì˜ ë³¸ì—°ì˜ ìž„ë¬´ë¥¼ 수행하는 것ì´ë¼ 1ì´ˆì— ìˆ˜ ì²œë²ˆì˜ ì¸í„°ëŸ½íŠ¸ë¥¼ ì²˜ë¦¬í•´ë„ ì´ë¯¸ GHZê¸‰ì˜ CPUì—게는 ì¼ë„ 아니리ë¼..

간단히 ì–´ë–¤ ë¶€í’ˆì´ ì£¼ì–´ì§„ ì¼ì„ 하기 위해 CPUì— ì‹ í˜¸ë¥¼ 보내는 것ì´ë¼ ìƒê°í•˜ë©´ ë˜ê² ë‹¤.

현재 í•„ìžì˜ IRQìƒíƒœëŠ” ì´ë ‡ê²Œ 구성ë˜ì–´ 있다.

â–²IRQ

í˜„ìž¬ì˜ ì‹œìŠ¤í…œì€ 16ê°œì˜ ì¸í„°ëŸ½íЏ 요청 레벨 신호를 가지고 있다. ì´ê²ƒì€ 16ê°œì˜ ë‹¤ë¥¸ ìž¥ì¹˜ë“¤ì´ í”„ë¡œì„¸ì„œë¥¼ ì¸í„°ëŸ½íЏ 한다는 ë§ê³¼ 같다. ì´ì „ 시스템ì—서는 8ê°œì˜ IRQë§Œ 존재했다.

ê·¸ ì¸í„°ëŸ½íЏ 회로는 단 8ê°œì˜ ì¸í„°ëŸ½íŠ¸ë§Œì„ ë‹¤ë£° 수 ìžˆì—ˆë˜ INTEL 8259 ì¹©ì— ë‚´ìž¥ë˜ì—ˆê¸° 때문ì´ë‹¤. 1982ë…„ ì´í›„ì˜ ì‹œìŠ¤í…œì€ ë” ë§Žì€ IRQê°€ 필요했으므로 PC ë””ìžì´ë„ˆë“¤ì€ ë˜ ë‹¤ë¥¸ 8259를 추가했다.

그렇지만 ì´ ë””ìžì´ë„ˆë“¤ì€ 새로워진 마ë”보드가 너무 급작스럽게 변하는 ê²ƒì€ ì›í•˜ì§€ 않았으므로 ì´ ë³„ë„ì˜ IRQ를 PC ë””ìžì¸ì— 추가하는 ë°©ë²•ì„ ì°¾ê¸° 시작했다. 그렇게 하려면 CPUê°€ ë‘ ë²ˆì§¸ 8259를 예약하려면 첫 번째 8259ì— ëŒ€í•œ ì˜ˆì•½ì„ ë§ˆì¹˜ê³  난 í›„ì— í•˜ë„ë¡ ì„¤ê³„í•˜ì˜€ë‹¤.

첫 번째 8259는 ì¸í„°ëŸ½íŠ¸ë¥¼ ë°›ì„ ë•Œë§ˆë‹¤ 곧바로 CPU와 통신하게 ë˜ì–´ 버린다.

즉 IRQ 0부터 7번까지는 언제ë¼ë„ 활성화 ë˜ì–´ 있는 것ì´ë‹¤. ë‘ ë²ˆì§¸ 8259 IRQ(8-15번까지)중 하나가 활성화 ë˜ë©´ ë‘ ë²ˆì§¸ 8259는 CPUì—게 í†µì‹ ì„ í•˜ëŠ” ê²ƒì´ ì•„ë‹ˆë¼ ì²« 번째 8259ì—게 먼저 신호를 보내는 것ì´ë‹¤.

그러면 ì–´ë–¤ 장치가 IRQ 8~15번 중 하나를 활성화 시키면 ë‘ ë²ˆì§¸ 8259는 첫 번째 8259ì— ìžˆëŠ” IRQ2를 활성화 시킴으로서 ì‘답하게 ë˜ëŠ”ë° ì´ë¡œì„œ CPUì—게 ì¸í„°ëŸ½íŠ¸ê°€ 있ìŒì„ 알리게 ëœë‹¤.

ë°˜ë©´ì— 8ê°œì˜ IRQ를 얻었지만 ë™ì‹œì— 하나를 잃게 ë˜ëŠ” ì¼ì´ ë°œìƒí•˜ëŠ”ë° IRQ2ê°€ ê·¸ 별ë„ì˜ ì—¬ëŸ ê°œì˜ IRQ용으로 ì „ìš©ë˜ì—ˆê¸° 때문ì´ë‹¤. 그리고 IRQ2는 ë” ì´ìƒ 확장보드ì—서는 사용할 수 없게 ë˜ì—ˆë‹¤. ê·¸ ì´ìœ ëŠ” 엄청난 ìœ„ë ¥ì„ ê°€ì§€ê³  ìžˆë˜ IBMì—서 ê·¸ ë¼ì¸ì„ IRQ9번으로 재할당하기로 결정했기 때문ì´ë‹¤. (1984ë…„ì— IBMì—서는 16비트 í˜¸í™˜ê¸°ì¢…ì„ ë°œí‘œë˜ë©´ì„œ 변칙ì ìœ¼ë¡œ “ë¼ì›Œë„£ê¸°!â€ì˜ ë°©ë²•ì„ ì„ íƒí–ˆë‹¤.)

â–²IBM AT ìƒì˜ 8259

사실 IRQ2는 IRQ9를 ì˜ë¯¸í•œë‹¤.

í•˜ë‚˜ì˜ 8259ê°€(IRQ 0~7까지)ê°€ ë˜ ë‹¤ë¥¸ 8259를 위해 ìž‘ë™í•˜ë„ë¡ ë§Œë“œëŠ” ì´ëŸ¬í•œ 프로세스를 IRQ ìºìŠ¤ì¼€ì´ë”©(Cascading)ì´ë¼ 한다.

IRQ

장  ì¹˜

설 명

0

타ì´ë¨¸

변경불가

1

키보드

변경불가

2

IRQ9 ìºìŠ¤ì¼€ì´ë“œ

변경불가

3

COM2, 4

둘 중 하나만 사용가능

4

COM1, 3

둘 중 하나만 사용가능

5

 

ìžìœ ë¡­ê²Œ 사용가능

6

플로피디스í¬ì½˜íŠ¸ë¡¤ëŸ¬

 

7

LPT1

 

8

실시간 í´ëŸ­

변경불가

9

 

 

10

 

 

11

 

 

12

PS/2 í¬íЏ

 

13

코프로세서

변경불가

14

주IDE

 

15

ë³´ì¡° IDE

 

â–²ì¼ë°˜ì ì¸ IRQ

IRQ 우선순위

시스템ì—ì„œì˜ IRQ는 ìš°ì„  순위대로 ì‘답한다. í•œêº¼ë²ˆì— 16ê°œì˜ ì¸í„°ëŸ½íЏ 신호를 ë°œìƒì‹œí‚¨ë‹¤ë©´ CPU는 IRQ0ì— ë¨¼ì € ì‘답하고 ê·¸ 다ìŒë¶€í„° 1,2,3ë“±ì˜ ìˆœì„œëŒ€ë¡œ ì‘답한다. IRQ8번부터 IRQ15번 까지는 IRQì— ìºìŠ¤ì¼€ì´ë”© ë˜ë¯€ë¡œ ì´ IRQë“¤ì€ IRQ2ë²ˆì˜ ìš°ì„ ìˆœìœ„ë¥¼ 따르게 ëœë‹¤.

즉 IRQì˜ ìš°ì„  순위는 0, 1, 2(8, 9, 10, 11, 12, 13, 14, 15), 3, 4, 5, 6, 7ì´ ë˜ëŠ” 것ì´ë‹¤.

가장 ë†’ì€ ìš°ì„  ìˆœìœ„ì— íƒ€ì´ë¨¸ê°€ 있다. ì´ê²ƒì€ 시스템 타ì´ë¨¸ë¡œì„œ ì „ì²´ ì‹œìŠ¤í…œì„ ìž‘ë™ì‹œí‚¤ë„ë¡ í•˜ëŠ”ê²ƒì´ë‹¤. ì´ ìž¥ì¹˜ê°€ 지시하는 ì¼ì„ ì‹œìŠ¤í…œì˜ ë‚˜ë¨¸ì§€ ë¶€ë¶„ë„ ê°€ìž¥ 빨리 알아야 한다. ê·¸ 다ìŒì´ 키보드 ì´ë‹¤. 키를 누르는 순간 바로 ì‹œìŠ¤í…œì´ ì‘답하ë„ë¡ í•˜ê¸° 위해서며 IRQ 8~15번 까지로 ìºìŠ¤ì¼€ì´ë”© 해주는 IRQ2ê°€ ê·¸ 다ìŒì´ë‹¤. ê·¸ 다ìŒìœ¼ë¡œ 실시간 í´ëŸ­ì´ 있다.

IRQ ì¶©ëŒ

â–²ê°•ì œì„¤ì •ì´ ê°€ëŠ¥í•˜ë‹¤

ëŒ€ë¶€ë¶„ì˜ ë³´ë“œë“¤ì€ IRQ강제할당 ê¸°ëŠ¥ì„ ì§€ì›í•œë‹¤. PCI슬롯마다 IRQ를 지정할 수 있고 ë°”ì´ì˜¤ìФì—서 조정가능하지만 ì´ëŸ° ê¸°ëŠ¥ì´ ì—†ëŠ” 경우 í•„ì‚´ ê¸°ìˆ ì¸ â€œìŠ¬ë¡¯ ì´ë¦¬ì €ë¦¬ 바꿔ë¼ê¸°â€ëž€ 방법으로 ë”°ë¼ë‹¤ë‹ˆëŠ” IRQ ì¶©ëŒ ë¬¸ì œë¥¼ 멀찌ê°ì¹˜ í•´ê²°í•  수 있다.

보드 ë‚´ì— í”„ë¼ë¯¸ìŠ¤ë‚˜ HPTì˜ ë ˆì´ë“œ 컨트롤러를 ë³´ë“œì— ë‚´ìž¥í•˜ê³  있다면 ì»¨íŠ¸ë¡¤ëŸ¬ë“¤ì´ IRQ를 하나씩 ì ìœ í•˜ê³  있으므로 공유하고 있는 ìŠ¬ë¡¯ì€ ë¨¼ì € 비워 놓고 ìš´ì˜ì²´ì œë¥¼ 설치 하는 ê²ƒì´ ì¶©ëŒë¡œ ì¸í•œ 시간낭비를 ì¤„ì¼ ìˆ˜ 있는 ë°©ë²•ì¼ ê²ƒì´ë‹¤.. 보드 제조사ì—ì„œë„ ë¹„ì›Œë†“ê¸°ë¥¼ 권장한다.

현재는 ìš´ì˜ì²´ì œì—서 대부분 완벽하게 ì¶©ëŒ ì—†ì´ IRQ를 ë¶„ë°°, 공유하고 있고 USB장비가 많아지는 관계로 스트레스 ë°›ì„ ì¼ì´ ê±°ì˜  ì—†ì§€ë§Œ  ëª‡ ë…„ ì „ë§Œí•´ë„ COMí¬íŠ¸ì— ëª¨ëŽ€ì„¤ì¹˜ë¡œ “ì´ë¯¸ í¬íŠ¸ê°€ 열려있습니다.†ë¼ëŠ” 문구를 접하신 ìœ ì €ë„ ë§Žìœ¼ë¦¬ë¼..


ì¼€ì´ë²¤ì¹˜ ë§Žì´ ë³¸ 뉴스