Esecuzione fuori ordine: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
YFdyh-bot (discussione | contributi)
m r2.7.3) (Bot: Aggiungo zh:乱序执行
Nessun oggetto della modifica
Riga 8:
L'esecuzione fuori ordine divenne nota in ambito industriale verso la fine degli anni 70 e l'inizio degli anni 80, periodo in cui si concentrarono la maggior parte delle ricerche sull'argomento. La prima ricerca di un certo peso sull'argomento fu svolta da Yale Patt sul simulatore HPSim. Un documento di James E. Smith e A.R. Pleszkun pubblicato nel [[1985]] analizzo come gestire in modo efficiente un'eccezione durante un'esecuzione fuori ordine e permise di gettare i presupporti teorici per la realizzazione di una macchina che implementasse questa modalità di esecuzione.
 
La prima macchina ad eseguire l'esecuzione fuori ordine fu probabilmente il [[CDC 6600]] (1964) che utilizzava lo [[scoreboarding]] per risolvere i conflitti. Secondo la terminologia moderna lo scorebording non è propriamente una tecnica che permette l'esecuzione fuori ordine dato che le istruzioni vengono bloccate al primo conflitto RAW (Read After Write). Lo scorebording avvia l'esecuzione delle istruzioni in ordina ma può terminaleterminare l'esecuzione delle stesse fuori ordine. Meno di tre anni dopo con l'[[IBM System/360|IBM 360/91]] (1966) venne presentato l'[[Algoritmo di Tomasulo]], questo algoritmo permetteva una piena esecuzione fuori ordine dato che le istruzioni potevano essere completate e avviate non in ordine. IBM ha anche realizzato il primo processore con esecuzione fuori ordine, il [[POWER|POWER 1]] (1990) per le macchine [[IBM System p|RS/6000]]. Con la presentazione da parte di Intel del [[Pentium Pro]] (1995) si ebbe la diffusione dell'esecuzione fuori ordine anche nel mercato degli IBM compatibili. In seguito molti altri produttori adottarono questa tecnologia per i loro processori come [[IBM]]/[[Motorola]] per il [[PowerPC]] 601 (1992/1993), [[Fujitsu]]/Hal per lo Sparc64 (1995), [[Hewlett Packard|HP]] per il [[HP-PA|PA-8000]] (1996) la [[MIPS Technologies]] per il [[Architettura MIPS|MIPS R-10000]] (1996), [[Advanced Micro Devices|AMD]] per il [[AMD K5|K5]] (1996) e la [[Digital Equipment Corporation]] con il [[DEC Alpha]] 21264 (1998). Eccezioni notevoli sono la [[Sun Microsystems]] con i processori [[SPARC|UltraSparc]] l'alleanza [[Hewlett Packard|HP]]/[[Intel]] con i processori [[Itanium]] e la [[Transmeta]] con il [[Crusoe]].
 
== Implementazione ==