Pergunta

Eu tenho uma idéia de como as interrupções são tratadas por um CPU dual core. Eu estava pensando sobre como manipulação de interrupção é implementado em uma placa com mais de um processador físico.

é qualquer parte da responsabilidade de interrupção determinada pela configuração da placa de física? Cada processador deve ser capaz de lidar com alguns tipos de interrupções, como disco I / O. A menos que haja alguns circuitos para gerir e interrupções de despacho para o processador apropriado? Meu palpite é que o regime deve ser processador neutro, de modo que qualquer processador e núcleo pode executar o manipulador de interrupção.

Se um núcleo está à espera de uma leitura de disco, será que o núcleo ser o único a executar o manipulador de interrupção quando o disco está pronto?

Foi útil?

Solução

Em sistemas x86 cada CPU obtém seu próprio APIC local (Advanced Programmable Interrupt Controller), que também são ligados uns aos outros e para um O APIC I / que manipula o roteamento de interrupções do dispositivo para os APICs locais.

O sistema operacional pode programar os APICs para determinar quais interrupções são roteados para o qual CPUs (ou para deixar os APICs tomar essa decisão).

Eu imagino que uma CPU multi-core teria um APIC local para cada núcleo, mas eu não sou honesta certo sobre isso.

Veja esses links para mais detalhes:

Outras dicas

O que você está interessado é SMP Processor Affinity. Aqui é um excelente artigo sobre como ele é tratado em Linux. A Advanced Programmable Interrupt Controller (APIC) é como você gerencia isso em um sistema moderno. Basicamente, o padrão seria a de ir todos para o processador 0, a menos que você tivesse um sistema operacional que utilizou esta interface para coisas configurado corretamente. Além disso, você não necessariamente quer o núcleo que emitiu uma ordem para esperar em uma interrupção particular. Você quer que os núcleos menos carregados para recebê-lo.

Eu já fiz esta pergunta um tempo atrás. Talvez ele pode oferecer-lhe algumas dicas:)

como é que as interrupções no multicore / multicpu máquinas trabalho

Eu diria que ele iria depender do fabricante do hardware ...

No entanto este link me faz acreditar a maioria são provavelmente manipulados pelo processador primário e / ou primeiro núcleo.

Outra ligação

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top