Very long instruction word

Un processore a istruzioni lunghe

La Very Long Instruction Word è un'architettura obsoleta di processori. Fu sviluppata basandosi sul parallelismo di istruzione. Si tratta di tecniche rudimentali per eseguire più istruzioni in parallelo. I primi metodi prevedevano la realizzazione di unità di elaborazione di tipo pipeline dati, in queste unità le istruzioni vengono elaborate come fossero in una catena di montaggio.

Un miglioramento fu portato dall'introduzione di più unità di calcolo in parallelo (più pipeline) al fine di ottenere un microprocessore superscalare. 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.


From Wikipedia, the free encyclopedia · View on Wikipedia

Developed by Tubidy