Reduced instruction set computer: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Etichette: Modifica da mobile Modifica da web per mobile
Etichette: Modifica da mobile Modifica da web per mobile
Riga 38:
 
=== Approcci migliori ===
MentreNel la filosofia RISC si stava sviluppandofrattempo, gli ingegneri, cercandotrovarono dialcuni otteneremetodi prestazionie migliori,tecnologie svilupparonoalternativi alcuneper tecnologie che incrementaronoincrementare la velocitàcapacità dei processori senza aumentare la frequenza.
 
All'inizio degli anni '80 era diffusa l'idea sbagliata che l'architettura avesse raggiunto il suo limite teorico di velocità.
All'inizio degli anni '80 si era diffusa l'idea che l'architettura dei processori avesse raggiunto il suo limite teorico di velocità. Si riteneva che nuovi incrementi di prestazioni si sarebbero ottenuti solamente grazie alle migliorie dei semiconduttori che, permettendo transistor più compatti, avrebbero permesso di innalzare la frequenza di funzionamento. Molti sforzi furono rivolti verso il [[calcolo parallelo]] e verso la realizzazione di metodi di collegamento rapidi. Tuttavia i timori iniziali vennero fugati dallo sviluppo di alcune nuove tecnologie che innalzarono le prestazioni dei processori senza innalzarne la frequenza.
Si riteneva che nuovi incrementi di prestazioni si sarebbero ottenuti solamente grazie ai miglioramenti nei materiali semiconduttori o all'aumento di frequenza.
Permettendo transistori più compatti, avrebbero permesso di innalzare la frequenza di funzionamento. Molti sforzi furono rivolti verso il [[calcolo parallelo]] e verso metodi di collegamento rapidi.
 
[[File:Fivestagespipeline.png|thumb|upright=1.2|Esecuzione delle istruzioni in un microprocessore con pipeline]]
L'idea migliore fu sicuramente quella delle [[pipeline dati]].
L'idea che migliorò maggiormente le prestazioni fu sicuramente quella che portò allo sviluppo delle [[pipeline dati|pipeline]]. In una pipeline l'istruzione viene divisa in sotto operazioni che vengono svolte in modo sequenziale dalle unità funzionali disposte come una catena di montaggio. Un normale processore ha una singola unità generica che preleva un'istruzione, la decodifica, carica gli operandi, esegue l'operazione vera e propria e salva il risultato. Queste fasi vengono svolte in modo sequenziale da un processore classico; un processore dotato di pipeline esegue invece queste operazioni in parallelo, dato che, come in una catena di montaggio, possiede più unità specialistiche, ognuna delle quali esegue una singola fase, incrementando in misura notevole le prestazioni.
 
In una pipeline l'istruzione viene suddivisa in sotto operazioni elementari, che vengono svolte in sequenza dalle unità funzionali disposte come una catena di montaggio.
Un'altra strategia per incrementare le prestazioni prevedeva la creazione di più unità funzionali che lavorassero in parallelo. Per esempio un processore con due unità aritmetiche può lavorare in parallelo su due istruzioni di somma raddoppiando le prestazioni. Questa replicazione delle unità funzionali combinate con le pipeline portò alla realizzazione di processori [[superscalare|superscalari]] in grado di eseguire più di un'operazione per ciclo di clock.
 
L'idea che migliorò maggiormente le prestazioni fu sicuramente quella che portò allo sviluppo delle [[pipeline dati|pipeline]]. In una pipeline l'istruzione viene divisa in sotto operazioni che vengono svolte in modo sequenziale dalle unità funzionali disposte come una catena di montaggio. Un normale processore ha una singola unità generica che preleva un'istruzione, la decodifica, carica gli operandi, esegue l'operazione vera e propria e salva il risultato. Queste fasi vengono svolte in modo sequenziale da un processore classico; un processore dotato di pipeline esegue invece queste operazioni in parallelo, dato che, come in una catena di montaggio, possiede più unità specialistiche, ognuna delle quali esegue una singola fase, incrementando in misura notevole le prestazioni.
Queste nuove idee avevano lo svantaggio di richiedere molti transistor per essere implementate, ed i RISC si trovarono subito avvantaggiati dato che il loro progetto semplice e parco di transistor lasciava molto spazio libero nel processore per poter implementare queste tecniche. I CISC invece, con la loro architettura più complessa, si trovarono ad implementare con maggior difficoltà queste idee, anche perché il loro set di istruzioni ampio ed i molti modi di indirizzamento rendevano più complesso implementare una pipeline rispetto a un classico processore RISC. I primi RISC avevano prestazioni inferiori agli equivalenti CISC, ma i processori RISC colmarono presto il divario e all'inizio degli [[Anni 1990|anni novanta]] superavano i processori CISC praticamente in ogni campo.
 
Un'altraAltra strategia per incrementare le prestazioni prevedevaera la creazione di più unità funzionali che lavorassero in parallelo. Per esempio un processore con due unità aritmetiche può lavorare in parallelo su due istruzioni di somma raddoppiando le prestazioni. Questa replicazione delle unità funzionali combinate con le pipeline portò alla realizzazione di processori [[superscalare|superscalari]] in grado di eseguire più di un'operazione per ciclo di clock.
 
Queste nuove idee avevano lo svantaggio di richiedere molti transistor per essere implementate.
 
I RISC furono inizialmente avvantaggiati dalla semplicità di progetto, e il parco dei transistor lasciava molto spazio libero nel processore per poter implementare queste tecniche.
Queste nuove idee avevano lo svantaggio di richiedere molti transistor per essere implementate, ed i RISC si trovarono subito avvantaggiati dato che il loro progetto semplice e parco di transistor lasciava molto spazio libero nel processore per poter implementare queste tecniche. I CISC invece, con la loro architettura più complessa, si trovarono ad implementare con maggior difficoltà queste idee, anche perché il loro ampio set di istruzioni, ampio ede i molti modi di indirizzamento rendevano più complesso implementare una pipeline rispetto a un classico processore RISC. I primi RISC avevano prestazioni inferiori agli equivalenti CISC, ma i processori RISC colmarono presto il divario e all'inizio degli [[Annianni 1990|anni novanta]] superavano i processori CISC praticamente in ogni campo.
 
Oltre a considerazioni di carattere prestazionale, il fatto di dedicare pochi transistor al core vero e proprio del processore permetteva al progettista di un processore RISC un approccio molto flessibile. Con i molti transistor liberi si poteva per esempio: