1. Memoria principale (RAM):
* Codice programma: La fonte primaria delle istruzioni di controllo è il codice del programma memorizzato nella memoria principale (memoria di accesso casuale o RAM). Quando si esegue un programma, le sue istruzioni vengono caricate da archiviazione (come un disco rigido o SSD) in RAM. La CPU recupera quindi queste istruzioni una per una (o in batch), le decodifica ed le esegue. Questa è la fonte più comune e fondamentale.
2. Cache delle istruzioni (L1, L2, L3 Caches):
* Istruzioni usate frequentemente: Per accelerare l'esecuzione, le CPU usano cache, che sono ricordi più piccoli e più veloci. La cache delle istruzioni contiene copie di istruzioni usate frequentemente recuperate dalla RAM. Quando la CPU necessita di un'istruzione, controlla prima la cache. Se l'istruzione è lì (un "cache hit"), viene recuperato molto più velocemente che andare alla memoria principale.
3. Microcodice (in istruzioni complesse architetture - CISC):
* Operazioni complesse: Nelle architetture più antiche o più complesse (come Intel X86), alcune istruzioni sono effettivamente implementate come sequenze di microinstruzioni più semplici. Questo * microcodice * è memorizzato in una ROM speciale (memoria di sola lettura) o archiviazione simile all'interno della CPU stessa. Quando la CPU incontra un'istruzione complessa, esegue la corrispondente sequenza di microcodie, che suddivide l'istruzione complessa in passaggi più semplici e gestibili. Ciò è meno comune nelle moderne architetture RISC (ridotto set di istruzioni), che generalmente preferiscono istruzioni più semplici che possono essere eseguite direttamente.
4. Interruzioni:
* Eventi esterni: Gli interrupt sono segnali che possono interrompere il normale flusso di esecuzione del programma. Possono provenire da hardware (ad es. Una pressa per tastiera, un'unità disco che termina un'operazione) o software. Quando si verifica un interrupt, la CPU salva lo stato del programma attuale e salta su una routine speciale chiamata *gestore di interrupt *o *routine di servizio di interruzione (ISR) *. L'ISR contiene istruzioni per gestire l'interrupt (ad esempio, leggere i dati dalla tastiera). Dopo che l'ISR è terminato, la CPU ripristina lo stato del programma salvato e riprende l'esecuzione da dove ha interrotto.
* Pertanto, un interrupt può causare l'esecuzione di un set di istruzioni di controllo * diverso * rispetto a quello che intendeva il programma originale.
5. Ripristina il vettore:
* Avvio: Quando il computer è acceso o ripristinato, la CPU inizia l'esecuzione delle istruzioni da un indirizzo di memoria predefinito chiamato *Resect Vector *. Questo vettore contiene l'indirizzo della prima istruzione da eseguire, in genere l'inizio del caricatore di avvio del sistema operativo.
In sintesi:
Il flusso in genere assomiglia a questo:
1. Accensione/Ripristino: La CPU inizia dal vettore di ripristino.
2. Processo di avvio: Avvio del caricatore in RAM carica il sistema operativo.
3. Esecuzione del programma: Il codice del programma e i dati vengono caricati in RAM.
4. Ciclo di esecuto-decodi-decodi: La CPU recupera le istruzioni dalla RAM (o la cache delle istruzioni), le decodifica nei segnali di controllo ed esegue tali segnali.
5. Interrupt: Gli eventi esterni possono innescare interruzioni, deviazione dell'esecuzione per interrompere i gestori.
La CPU stessa è l'agente che recupera ed esegue queste istruzioni, seguendo ripetutamente il ciclo di esecuzione del decennale di recupero. La * sorgente * delle istruzioni, tuttavia, varia come descritto sopra.
hardware © www.354353.com