Berkeley RISC: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Riga 4:
Gli scienziati del progetto RISC e MIPS sono partiti dalla constatazione che la maggior parte dei programmi non sfruttasse tutte le istruzioni dei processori, ma che in realtà ne utilizzasse solo un piccolo sottoinsieme. Si è notato che l'intero sistema operativo [[UNIX]], una volta compilato, utilizzava solamente il 30% delle istruzioni messe a disposizione dal [[Motorola 68000]]. Quindi il processore aveva un elevato numero di transistor preposti a decodificare e ad eseguire istruzioni che in realtà non vengono mai chiamate. L'idea dei processori RISC è di implementare solamente quelle istruzioni che vengono realmente utilizzate dai programmi e di utilizzare gli altri transistor per velocizzare i processori.
 
I processori RISC si concentrarono sull'aggiunta di molti [[registro (informatica)|registri]], che il programma poteva utilizzare per memorizzare i valori intermedi dei dati, in modo da evitare accessi alla lenta memoria centrale. Un buon compilatore era in grado di generare del codice che sfruttasse intensamente i registri, riducendo di molto gli accessi alla memoria e innalzando quindi le prestazioni. A parità di transistor un processore RISC era molto più veloce di un classico processore CISC.
 
I processori RISC inoltre eliminarono molti modi di indirizzamento e consentirono solamente il trattamento di dati memorizzati nei registri. Solamente le istruzioni di <code>load</code> e di <code>store</code> potevano accedere alla memoria. In un processore classico l'istruzione <code>ADD</code> poteva accettare come parametro dati in memoria. Nel caso di un'elaborazione di dati dalla memoria il processore avrebbe dovuto caricare i dati in alcuni registri nascosti, eseguire l'elaborazione vera e propria e poi salvare i dati nuovamente in memoria. Quindi il processore doveva avere una complessa unità decodifica e dei registri nascosti. Un processore RISC eliminando questa modalità di accesso rende l'unità di decodifica più semplice e non necessita di registri nascosti. Il rovescio della medaglia è che i programmi devono sempre prevedere esplicitamente il caricamento e il salvataggio dei dati dai registri e quindi sono mediamente più grandi.