Domanda

Ho un'idea di come interrupt sono gestiti da una CPU dual core. Mi chiedevo su come interrupt movimentazione è implementato su una scheda con più di un processore fisico.

È una delle responsabilità di interruzione determinata dalla configurazione della scheda fisica? Ogni processore deve essere in grado di gestire alcuni tipi di interrupt, come disco I / O. A meno che non ci sia alcuni circuiti da gestire e gli interrupt di spedizione al processore appropriata? La mia ipotesi è che il sistema dovrà essere processore neutra, in modo che qualsiasi processore e nucleo può eseguire il gestore di interrupt.

Se un nucleo è in attesa su una lettura del disco, sarà quel nucleo essere quello di eseguire il gestore di interrupt quando il disco è pronto?

È stato utile?

Soluzione

Su sistemi x86 ogni CPU ottiene il proprio APIC locale (Advanced Programmable Interrupt Controller) che sono anche collegato tra loro e ad un APIC I / O che gestisce dispositivo di routing interrompe alle APICs locali.

Il sistema operativo può programmare le APIC per determinare quanto interrompono ottenere indirizzato ai quali CPU (o di lasciare che i APIC prendere quella decisione).

I immaginare che una CPU multi-core avrebbe un APIC locale per ogni core, ma non ne sono onestamente certo di questo.

Vedere questi link per maggiori dettagli:

Altri suggerimenti

Quello che ti interessa è SMP Affinità processori. Qui è un ottimo articolo su come è gestita in Linux. Il Advanced Programmable Interrupt Controller (APIC) è come gestire questo in un sistema moderno. In sostanza, il default sarebbe quella di andare tutti al processore 0 a meno che non si aveva un sistema operativo che utilizzate questa interfaccia per impostare le cose correttamente. Inoltre, non si vuole necessariamente il nucleo che ha emesso un comando per attendere su un particolare interrupt. Si desidera che i nuclei meno caricati a riceverlo.

Ho già fatto questa domanda un po 'indietro. Forse è in grado di offrire una certa comprensione:)

come fanno gli interrupt in multicore / macchine MultiCPU funzionano

Direi che sarebbe dipenderà dal produttore dell'hardware ...

questo link mi fa credere la maggior parte sono probabilmente gestite dal processore primario e / o primo nucleo.

Un altro collegamento

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top