Berkeley RISC: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Funzionalità collegamenti suggeriti: 3 collegamenti inseriti.
Funzionalità collegamenti suggeriti: 3 collegamenti inseriti.
 
(2 versioni intermedie di 2 utenti non mostrate)
Riga 1:
{{F|microprocessori|marzo 2013}}
'''Berkeley RISC''' è il nome dato a uno dei due progetti di ricerca sulle architetture [[Reduced instruction set computer|RISC]] finanziato dal progetto [[VLSI project]] dell'[[Defense Advanced Research Projects Agency|ARPA]]. Il progetto venne gestito da [[David Patterson]] della [[Berkeley University]] tra il 1980 e il 1984. Nello stesso periodo alla [[Stanford University]] si svolgeva l'altro progetto, che, tra il 1981 e il 1984, portò allo sviluppo dei processori [[Architettura MIPS|MIPS]]. Comunque il progetto Berkeley RISC è il progetto che più ha influenzato lo sviluppo dei processori RISC e le scoperte di questo gruppo sono state utilizzate da praticamente tutti i progettisti di [[CPU]] RISC. Il progetto portò allo sviluppo dell'architettura [[SPARC]].
 
== L'idea RISC ==
{{Vedi anche|Reduced instruction set computer}}
Gli scienziati del progetto [[Reduced instruction set computer|RISC]] e [[Architettura MIPS|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 [[Reduced instruction set computer|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.
 
Quando venne sviluppato il progetto RISC la memoria era un componente molto costoso e quindi ridurre la densità di istruzioni memorizzate nella memoria poteva avere un reale effetto economico sulle macchine. Per ridurre questo effetto si decise di utilizzare parole di [[32 bit]] una parola molto lunga per l'epoca. Una parola così grande permetteva di memorizzare direttamente delle piccole costanti all'interno dell'istruzione in modo da ridurre gli accessi alla memoria. Inoltre spesso i programmi utilizzavano con elevata frequenza gli stessi dati e quindi invece di salvare i dati in memoria il processore li memorizzava in un registro per averlo subito pronto durante il successivo uso, questo rendeva il processore molto più rapido in teoria. Per esempio una funzione matematica poteva caricare dalla memoria i dati e poi lavorare solo sui registri rendendo il programma molto rapido.
Riga 29 ⟶ 30:
 
==RISC II==
Mentre il progetto RISC I procedeva verso la sua realizzazione i ricercatori di Berkeley iniziarono a svilupparne la nuova versione che prese il [[nome in codice]] di '''Blue'''. I lavori su Blue avanzarono con maggior lentezza del progetto Gold. Questo fu dovuto sia alla mancanza di urgenza sia al cambio di team di sviluppo e di studenti. Il nuovo progetto inglobò diverse nuove caratteristiche e migliorie che ne incrementarono le prestazioni.
 
La differenza chiave tra i processori era che il nuovo progetto eliminava una delle tre linee dedite alla gestione della cache riducendo notevolmente la dimensione del gestore dei registri. Questo cambiamento richiedeva uno stretto accorpamento con il bus di sistema ma era un piccolo prezzo da pagare per ottenere un sistema molto più veloce e quindi delle prestazioni più elevate.