Very long instruction word: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
→Collegamenti esterni: - Il riferimento "Tesina sui sistemi VLIW", punta ad una pagina inesistente; probabilmente rimossa. |
Nessun oggetto della modifica |
||
Riga 25:
==Storia==
Dalla fine degli [[anni 1960|anni 60]] si erano svolti degli studi per realizzare dei sistemi di calcolo che permettessero al programmatore di caricare più istruzioni in parallelo all'interno di un'unità di calcolo. 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 richiedevano una programmazione a basso livello delle unità funzionali per poter sfruttare la capacità di eseguire più istruzioni in parallelo del sistema, questo era un grande limite perché una programmazione parallela a livello di istruzioni e estremamente difficile e tediosa quindi solo pochi programmi sfruttavano efficacemente le potenzialità dei sistemi. All'inizio degli [[anni 1980|anni 80]] vi furono molti lavori volti allo studio di generici processori con architettura tipo 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 VLIW. Fisher sviluppò la sua architettura VLIW mentre era docente presso l'[[Università Yale]]. Fisher sviluppò le tecniche utilizzate dai compilatori per avvantaggiarsi dell'architettura VLIW. L'idea
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 sviluppò alcune strutture hardware come self-draining pipeline, ampi registri multiporta e una particolare architettura della memoria al fine di semplificare al compilatore il compito.
|