Very long instruction word: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
mNessun oggetto della modifica |
mNessun oggetto della modifica |
||
Riga 1:
{{WIP|hellis}}
[[Immagine:Itanium2.JPG|thumb|right|L'Itanium 2 una CPU VLIW]]
La '''Very Long Instruction Word''' o '''VLIW''' è un'architettura per microprocessori sviluppata per avvantaggiarsi dell'[[
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.
Riga 26:
==Storia==
Dalla fine degli [[anni 1960|anni 60]] si erano svolti alcuni studi per demandare la gestione delle unità di calcolo direttamente al compilatore. Melliar-Smith nel 1969 in un articolo pubblicato da AFIPS FJCC proposero un primitivo sistema VLIW. Negli [[anni 1970|anni 70]] altri lavori portarono al perfezionamento di questa idea e portarono alla realizzazione di unità come i [[CDC Advanced Flexible Processor]]. Queste unità comunque non erano processori generici, erano coprocessori dediti all'esecuzione di particolari operazioni e dovevano essere gestiti da un processore centrale. All'inizio degli [[anni 1980|anni 80]] vi furono molti lavori volti allo studio di generici processori VLIS. Nel 1981 James H. Pomerene per l'[[IBM]] depose un brevetto su un sistema di elaborazione parallelo che eseguisse più istruzioni indipendenti raccolte in gruppi.<ref>[http://www.google.com/patents?id=ga4BAAAAEBAJ&dq=US+4,295,193 US 4,295,193 1981]</ref> Nello stesso anno Bob Rau pubblicò un lavoro sul ''Polycyclic Architecture project''; sullo sviluppo di un sistema VLIW. Nel 1983 Josh Fisher presentò il progetto ELI-512 su un sistema VLIS. Fisher sviluppo la sua architettura VLIW mentre era ricercatore presso l'[[Università di Yale]]. Fisher sviluppo le tecniche utilizzate dai compilatori per avvantaggiarsi dell'architettura VLIW. L'idea innovati di Fisher era quella di cercare di rendere il codice parallelo non limitandosi ad analizzare i blocchi elementari di codice (blocchi di codici sequenziali), ma che bisognava estendere l'analisi a tutto il programma. A tal fine sviluppo la [[region scheduling]] una tecnica di analisi del codice che estendeva l'analisi anche a zone di codice soggette a salti condizionati. Il compilatore cercava di prevedere i risultati dei salti condizionati e compilava il codice di conseguenza, il compilatore inseriva anche del codice che in caso di errata predizione eliminava le istruzioni errate. Questo permetteva al compilatore di analizzare ampie porzioni di codice alla ricerca di istruzioni da eseguire in parallelo e quindi migliorava le prestazioni dei processori.
La seconda idea innovativa di Fisher fu di sviluppare insieme il compilatore e il processore. Entrambi erano una parte del progetto complessivo e quindi dovevano suddividersi il lavoro perché un microprocessore troppo complesso sarebbe stato molto lento ma avrebbe richiesto un compilatore semplice, invece un microprocessore troppo semplice avrebbe richiesto un compilatore troppo complesso da programmare e quindi si sarebbero avute comunque prestazioni deludenti pur avendo potenzialmente un microprocessore molto veloce. Fisher sviluppo alcune strutture hardware come self-draining pipeline, ampi registri multiporta e una particolare architettura della memoria al fine di rendere al compilatore il compito più semplice.
Il primo compilatore VLIW venne sviluppato da John Ellis durante la sua tesi di dottorato, tesi supervisionata da Fisher.<ref name="acmaward">{{cite web
| title = ACM 1985 Doctoral Dissertation Award
| publisher = [[Association for Computing Machinery|ACM]]
Riga 39 ⟶ 36:
| url = http://awards.acm.org/citation.cfm?id=9267768&srt=year&year=1985&aw=146&ao=DOCDISRT
| quote = For his dissertation ''Bulldog: A Compiler for VLIW Architecture''.
}}</ref>
Fisher abbandonò Yale nel 1984 per avviare la società [[MultiFlow]] che fondo con John O'Donnell e John Ruttenberg. La società produsse la serie di [[minisupercomputer]] TRACE basati sull'architettura VLIW. Il primo sistema venne messo in commercio nel 1988 ed era in grado di eseguire 28 operazioni in parallelo per istruzione. I sistemi TRACE implementavano un mix di componenti MSI/LSI/VLSI su scheda dato che per ragioni tecnologiche questo era più economico che integrare tutti i componenti in un solo integrato. La società non riuscì a vendere molti sistemi dato che i continui incrementi dell'elettronica permisero alle società produttrici di microprocessori "classici" di mantenere il passo con le soluzioni VLIS in molti campi ma comunque le società riconobbero il valore tecnologico dell'idea difatti la MultiFlow riuscì a vendere molti brevetti.
== Problematiche ==
|