Architetture dei processori/Unità predizione salti: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Hellisp (discussione | contributi)
mNessun oggetto della modifica
mNessun oggetto della modifica
Riga 3:
 
[[Image:Pentium4 northwood.png|thumb|right|300px|Pentium IV, processore utilizzante la predizione della linea successiva]]
Esistono molte tecniche per implementare la predizione dei saltasalti. Tecniche più complesse portano ad ottenere percentuali di previsione migliori ma comportano anche costi maggiori per via del maggior numero di transistor impiegato e quindi spesso non vienevengono utilizzatautilizzate lale miglioremigliori strategiastrategie di previsione ma strategie più semplici e quindi più economiche da implementare.
*Predizione elementare
I primi esemplari di [[w:SPARC|SPARC]] e [[w:MIPS (microprocessori)|MIPS]] (due delle prime architetture RISC commerciali) facevano una specie di predizione, molto elementare: non consideravano mai il salto accettato, e decodificavano l'istruzione seguente. L'operazione di salto veniva effettutata solo dopo che la condizione veniva valutata.
 
Entrambe le CPU effettuavano questa "predizione" in fase di decodifica e dedicavano al ''fetch'' delle istruzioni (il caricamento della istruzione dalla cahe) un solo ciclo di clock. In questo modo per effettuare un salto servivano due cicli di clock, ma dopo il primo la CPU aveva già effettuato il ''fetch'' dell'istruzione subito successiva al salto; piuttosto che sprecare questo lavoro, entrambi i microprocessori eseguivano anche queste istruzioni, avvantaggiandosi magari per fasi successive del lavoro. Ovviamente i compilatori (o i programmatori assembler) devono essere ben consci di questa caratteristica pena bug molto difficili da scovare.
 
*Predizione statica