저는 하드웨어 및 운영 체제 수준에서 인터럽트를 이해하려고 노력하고 있습니다.
시스템에 APIC 컨트롤러가 필요한 이유는 무엇입니까? 나는 그것이 멀티플렉싱을 하고 있다는 것을 알고 있으며 오직 하나의 와이어만이 CPU로 갈 것입니다. 인터럽트에 사용할 외부 하드웨어용 프로세서 라인이 충분하다면 이 작업을 수행할 수 있습니까?
IRQ_HANDLED 없이 ISR을 반환하면 어떻게 되나요?
인터럽트가 발생하더라도 ISR이 처리되지 않는 이유를 어떻게 알 수 있습니까(이미 ISR을 등록하고 초기화했다는 점을 고려하면).
답변1
StackExchange에서는 각 질문을 별도의 질문 게시물로 게시해야 합니다. 또한 질문 2와 3은 주로 커널 프로그래밍 질문이므로 더 적절할 수 있습니다.스택 오버플로대신에. 질문 1만 포함하도록 이 질문을 편집하고 다른 질문은 스택 오버플로에 별도로 게시하는 것이 좋습니다.
귀하의 질문 1에 관해서 :
물론 그렇게 할 수도 있지만 그렇게 되면 더 이상 PC와 호환되지 않는 새로운 하드웨어 아키텍처를 설계하게 될 것입니다.
APIC는 원래 PC의 기존 8259A PIC(Programmable Interrupt Controller) 칩을 향상된 대체품입니다.
PIC는 제한된 인터럽트 기능을 확장하기 위해 8085 및 8086 마이크로프로세서용으로 설계되었습니다. 구형 ISA 버스의 경우 충분했지만 최신 버스 유형의 경우 시스템 성능과 확장성에 병목 현상이 발생합니다. 특히, PIC는 다중 프로세서 시스템을 구축하는 데 충분하지 않습니다.
따라서 APIC(Advanced Programmable Interrupt Controller) 아키텍처가 대안으로 설계되었습니다. 첫 번째 APIC는 개별 칩 82489DX였습니다. 이는 486 및 초기 펜티엄 시대 최초의 듀얼 CPU 시스템 구축을 가능하게 했습니다. 그 이후로 "네이티브 APIC" 기능이 CPU 자체에 통합되었습니다.
APIC는 원하는 경우 하드웨어 수준에서 이전 PIC를 에뮬레이트할 수 있지만 최신 운영 체제에서는 고급 모드로 작동할 수 있습니다.