Very long instruction word: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Aos (discussione | contributi)
Aos (discussione | contributi)
mNessun oggetto della modifica
Riga 1:
[[Immagine:Itanium2.JPG|thumb|300px|right|L'Itanium 2 una CPU VLIW]]
La '''Very Long Instruction Word''' o '''VLIW''' è un'architettura per microprocessori sviluppata per avvantaggiarsi dell'[[Instruction level parallelism]] (ILP). Un processore che esegue ogni istruzione in modo sequenziale sarebbe un processore molto lento e userebbe le prestazioni in modo inefficiente. Al fine di migliorare le prestazioni dei processori e quindi di utilizzare in modo efficiente le unità funzionali si sono sviluppate tecniche di esecuzione in grado di eseguire più istruzioni in parallelo. I primi metodi prevedevano la realizzazione di unità di elaborazione di tipo [[pipeline dati|pipeline]], in queste unità le istruzioni vengono elaborate come fossero in una catena di montaggio. Un'ulteriore miglioramento è stato portato daldall'introduzione di più unità di calcolo in parallelo (più pipeline) al fine di ottenere [[microprocessore superscalare|microprocessori superscalari]]. Un'ulteriore miglioria è stata l'[[esecuzione fuori ordine]] delle istruzioni. Con questa modalità di esecuzione le istruzioni non vengono eseguite secondo l'ordine previsto dal programmatore ma secondo l'ordine che permette al processore di eseguirle in parallelo.
 
Queste tecniche hanno un fondamentale difetto, incrementano molto la complessità del microprocessore. Per poter eseguire le operazioni in parallelo il microprocessore deve costantemente verificare le dipendenze tra le varie istruzioni e i dati al fine di eseguire correttamente i programmi. Esistono più tipologie di dipendenze, per esempio un'istruzione potrebbe dover elaborare un dato ottenuto, come risultato, da un'altra istruzione e quindi questa non potrebbe essere eseguita prima dell'altra istruzione. I moderni microprocessori dedicano molte risorse al controllo delle dipendenze e all'arrangiare le istruzioni in modo da poterne eseguire il maggior numero possibile in parallelo.
 
L'approccio 'VLIW cerca di risolvere il problema utilizzando un'altra strada, invece di eseguire il controllo delle dipendenze e delle istruzioni eseguibili in parallelo durante l'elaborazione questi vengono lasciati al compilatore che le determina in modo statico e include nelle istruzioni dei dati di controllo per il processore. Il compilatore assembla le istruzioni in blocchi di più istruzioni (2 o più), i singoli blocchi vengono ricevuti dal processore che li decodifica e esegue le istruzioni in parallelo senza dover controllare dipendenze o altro, dato che tutto è già stato controllato dal compilatore. Questo permette di semplificare di molto il processore e di ottenere microprocessori molto veloci.