문제

듀얼 코어 CPU가 인터럽트를 처리하는 방법에 대한 아이디어가 있습니다.둘 이상의 물리적 프로세서가 있는 보드에서 인터럽트 처리가 어떻게 구현되는지 궁금합니다.

물리적 보드의 구성에 따라 인터럽트 책임이 결정됩니까?각 프로세서는 디스크 I/O와 같은 일부 유형의 인터럽트를 처리할 수 있어야 합니다.적절한 프로세서에 인터럽트를 관리하고 전달하는 회로가 없다면?내 생각에는 모든 프로세서와 코어가 인터럽트 핸들러를 실행할 수 있도록 구성표가 프로세서 중립적이어야 한다는 것입니다.

코어가 디스크 읽기를 기다리고 있는 경우 디스크가 준비되면 해당 코어가 인터럽트 핸들러를 실행하는 코어가 될까요?

도움이 되었습니까?

해결책

x86 시스템에서 각 CPU는 서로 연결되어 있는 자체 로컬 APIC(Advanced Programmable Interrupt Controller)를 가지며 로컬 APIC에 대한 라우팅 장치 인터럽트를 처리하는 I/O APIC에도 연결됩니다.

OS는 APIC를 프로그래밍하여 어떤 인터럽트가 어떤 CPU로 라우팅되는지 결정하거나 APIC가 결정을 내리도록 할 수 있습니다.

나는 멀티 코어 CPU가 각 코어에 대해 로컬 APIC를 가질 것이라고 상상하지만 솔직히 그것에 대해 확신할 수 없습니다.

자세한 내용은 다음 링크를 참조하세요.

다른 팁

여러분이 관심을 갖고 있는 것은 SMP 프로세서 선호도입니다. 여기 Linux에서 처리하는 방법에 대한 훌륭한 기사입니다.그만큼 APIC(고급 프로그래밍 가능 인터럽트 컨트롤러) 현대 시스템에서 이를 관리하는 방법입니다.기본적으로 이 인터페이스를 활용하여 올바르게 설정하는 OS가 없는 한 기본값은 모두 프로세서 0으로 이동하는 것입니다.또한 명령을 실행한 코어가 특정 인터럽트를 기다리기를 반드시 원하는 것은 아닙니다.부하가 적은 코어가 이를 수신하기를 원합니다.

나는 이미 얼마 전에 이 질문을 했습니다.아마도 그것은 당신에게 통찰력을 제공할 수 있을 것입니다 :)

멀티코어/멀티CPU 시스템의 인터럽트는 어떻게 작동하나요?

하드웨어 제조사에 따라 다르다고 하는데...

하지만 이 링크 아마도 대부분이 기본 프로세서 및/또는 첫 번째 코어에 의해 처리될 것이라고 생각됩니다.

다른 링크

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top