Domanda

Forse la domanda dovrebbe essere, sono gli interrupt esterni sono addirittura vettoriali su PowerPC? Ho cercato http://www.ibm. com / developerworks / eserver / library / es-archguide-v2.html , 'libro 3', cercando di capire come il processore individua la routine appropriata del servizio di interruzione in risposta a un interrupt esterno. Sembra suggerire che quando PPC riconosce un interrupt esterno, salta semplicemente l'esecuzione a 0x0000_0500.

Potrei lavorare sotto un'idea sbagliata di come funziona la PPC. Con x86, il processore risponde alle richieste di interruzione con un ciclo di conferma dell'interruzione e ottiene un "vettore" direttamente dal dispositivo. Il vettore (in realtà un indice) consente quindi alla CPU di scegliere una routine di gestore appropriata dalla sua tabella di vettore di interrupt. Ancora più importante, questo riconoscimento / vector fetch è una cosa hardware, protocollo di bus, nessuno deve scrivere alcun codice per farlo accadere. L'unico codice che deve essere scritto (leggi, software) sono gli stessi ISR.

il PPC fa qualcosa di simile? Ci sarebbe una tabella di vettori a 0x500? O fa qualcosa di radicalmente diverso e scarica la funzionalità di ottenere il vettore del dispositivo su un controller di interrupt esterno? Suppongo che potrebbe saltare semplicemente al codice a 0x500, dove il software reale interrogherebbe il controller di interruzione (ipotetico?) Per ottenere il vettore .. e poi lo userebbe in una tabella di salto / what-have -you, ma non riesco a trovare la documentazione per verificare questo è il caso, in un modo o nell'altro.

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