IRQ 를 정하는 것은 어떻게 하는 것인가요?
보통 보면, eth0 (Ethernet) 하고, USB 하고, SATA 등의 디바이스들이 South Bridge하고 연결되지 않나요?
이 South Bridge로부터 나온 한개의 인터럽트 핀이 APIC내부의 8259A (I/O APIC이 Disable 되어 있다고 가정)의 한개의 PIN 으로 연결이 되나요?
아니면, eth0, usb, sata등의 디바이스들이 각각 다른 IRQ를 가질 수 있나요?
Linux Kernel 에서 /proc/interrupts 로 보니까, IRQ#4에 USB, eth0, ahci 등등이 한개로 쭉 연결이 되어 있더라구요.
다른 피시등을 보면, /proc/interrupts 하면, eth0는 irq6에, usb는 irq7 등등으로 나누어서 들어있던 것 같은데, 그렇다면, 그 피시의 south bridge가 없는 것일까요? 아니면, 그 PC는 APIC이 enable 되어 있어서 IRQ를 프로그램으로 고칠 수 있게 되는 것인가요?
CPU 내부의 South Bridge와 interrupt controller를 볼 수 없어서 답답한데요, 보통 어떻게 인터럽트 IRQ가 Assign 되나요? 이 IRQ#가 vector가 되어서 IDT의 index가 되는 것은 알겠는데, IRQ#의 할당에 대해서는 고민입니다.
요즘 나오는 (최소 2005년부터 나온) intel cpu 에서 south bridge에 연결된 디바이스들의 IRQ 할당을 어떻게 하는 것인지 궁금합니다.
댓글 달기