Calcolatori elettronici/I processori: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Nuova pagina: {{Calcolatori elettronici}} Il '''processore''' è un dispositivo capace di: * elaborare istruzioni, cioè leggere delle istruzioni dalla memoria ...
 
Gian BOT (discussione | contributi)
m Bot: sostituzione tag obsoleti
 
Riga 10:
 
===Fase di fetch===
L<nowiki>'</nowiki>'''instruction set''' è l'insieme delle operazioni che il processore è in grado di eseguire. A ogni operazione corrisponde una certa istruzione in memoria (es. <ttcode>ADD</ttcode>). Durante la '''fase di fetch''' il processore legge una di queste istruzioni dalla memoria tramite un bus esterno:
# il '''Program Counter''' (PC) contiene l'indirizzo di memoria della nuova istruzione da leggere;
# l<nowiki>'</nowiki>'''Address Register''' (AR) passa il nuovo indirizzo dal PC alla memoria;
Riga 23:
 
Il tempo di esecuzione di un'istruzione, misurato in colpi di clock, dipende da:
* <span style="text-decoration:underline;">tipo di istruzione:</span> quale istruzione eseguire (es. <ttcode>MOV</ttcode>, <ttcode>ADD</ttcode>)?
* <span style="text-decoration:underline;">tipo di operandi:</span> l'operando si trova nei registri (accesso più veloce) o in memoria (ritardo del fetch)?
* <span style="text-decoration:underline;">modo di indirizzamento:</span> l'indirizzo passato è diretto (es. <ttcode>VAR</ttcode>) o richiede una somma (es. <ttcode>vett[DI]</ttcode>)?
 
Gli '''operandi''' di una generica istruzione possono essere contenuti nei registri (<ttcode>Rx</ttcode>) o nella memoria (<ttcode>M[xx]</ttcode>), a seconda di ciò che è richiesto dall'operazione letta dalla memoria. I '''registri''' sono dei moduli di memoria costituiti da flip-flop che risiedono all'interno del processore. Anche se il numero di registri è finito, il tempo di accesso a un registro è molto minore del tempo di accesso a una cella di memoria, a causa dei colpi di clock necessari durante l'operazione di fetch. Il compilatore di C decide automaticamente se utilizzare i registri o la memoria, privilegiando quando possibile i primi: nel caso in cui l'operando si trova in memoria, durante la fase di esecuzione dell'operazione è necessario effettuare un ulteriore fetch per l'operando.
 
Per ridurre i tempi di esecuzione, mentre l<nowiki>'</nowiki>'''execution unit''' esegue un'operazione la '''bus interface unit''' si occupa del fetch dell'istruzione successiva.