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í¬íŠ¸ì— ëª¨ëŽ€ì„¤ì¹˜ë¡œ “ì´ë¯¸ í¬íŠ¸ê°€ ì—´ë ¤ìžˆìŠµë‹ˆë‹¤.†ë¼ëŠ” 문구를 ì ‘í•˜ì‹ ìœ ì €ë„ ë§Žìœ¼ë¦¬ë¼..