R&D/OS

[x86] Interrupt

sunshout 2014. 6. 25. 15:38

ㅇ IO-APIC Interrupts


- IO-APIC은 24개의 interrupt line을 가지고 있으며, priority를 설정할 수 있다.

- 하위 16개의 interrupt 는 XT-PIC 과 backwards compatibility를 위해서 동작한다.


- IO-APIC 은 Local-APIC에 interrupt vector를 씀. 따라서 OS는 IO-APIC과 interaction이 필요하지 않다.

EOI를 Notification 할 때만 IO-APIC과 interaction 이 존재한다.


interrupted CPU는 interrupt vector 를 받아서 ISR를 실행한다.


ㅇ Message Signaled Interrupts

- every device to write directly to the CPU's Local-APIC

- MSI model support 224 interrupts


동작 방식

1) device 가 CPU 작업이 필요할 때 MSI를 생성함. (Local APIC에 directly interrupt vector를 씀)

2) interrupt CPU는 interrupt vector를 확인하여 ISR를 수행함. (device 는 IRQ pending bit을 check & clear 할 필요가 없음)



참조) Reducing Interrupt Latency Through the Use of MSI 

msg-signaled-interrupts-paper.pdf

http://www.intel.co.kr/content/dam/www/public/us/en/documents/white-papers/msg-signaled-interrupts-paper.pdf


[Lecture] Interrupt and Exception Handling on the x86 

interrupt and exception handling on the x86.pdf

http://pdos.csail.mit.edu/6.828/2005/lec/lec8-slides.pdf