Pipeline (CPU): differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
A7N8X (discussione | contributi)
A7N8X (discussione | contributi)
Riga 31:
== Evoluzioni ==
[[File:Superscalarpipeline.png|thumb|upright=1.2|CPU superscalare a doppia Pipeline]]
Per realizzare CPU con prestazioni migliori col tempo si è affermata la strategia di integrare in un unico microprocessore più pipeline che funzionano in parallelo., Questiquesti microprocessori sono definiti [[Microprocessore superscalare|superscalari]] dato che sono in grado di eseguire mediamente più di un'operazione per ciclo di clock. Queste pipeline ovviamente rendono ancora più complessa la gestione dei problemi di coerenza e dei salti condizionati. Nelle CPU moderneprodotte inoltread inizio del terzo millennio le pipeline non sono composte da soli cinque stadi ma in realtà ne utilizzano molti di più (il [[Pentium 4]] ne utilizza da 20 fino a 31), mentre successivamente sono stati prodotti CPU da un numero medio di 14-15 stadi per pipeline.
 
QuestoL'aumento sidegli èstadi resodelle necessariopipeline perporta potereo innalzarepermette laun aumento della frequenza di clock., infatti Spezzettandospezzettando le singole operazioni necessarie per completare un'istruzione in tante sotto operazioni si può elevare la frequenza della CPU dato che ogni unità deve svolgere un'operazione più semplice e quindi può impiegare meno tempo per completare la sua operazione. Questa scelta di progettazione consente effettivamente di aumentare la frequenza di funzionamento delle CPU, ma rende critico il problema dei salti condizionati. In caso di un salto condizionato non previsto il Pentium 4 per esempio può essere costretto a svuotare e ricaricare una pipeline di 30 stadi perdendo fino a 30 cicli di clock contro una classica CPU a pipeline a 5 stadi che avrebbe sprecato nella peggiore delle ipotesi 5 cicli di clock. <br>
Inoltre l'aumento della frequenza non è sempre proporzionale all'aumento di prestazione, in quanto deve essere associata alla lunghezza del pipeline, a parità di pipeline un aumento di frequenza porta un aumento di prestazioni, a parità di frequenza, pipeline più corte portano ad un aumento di prestazione.
 
La sempre maggior richiesta di potenza di calcolo ha spinto le industrie produttrici di microprocessori a integrare in un unico [[Circuito integrato|chip]] più microprocessori (architetture a [[multiprocessore]]). Questo strategia consente al [[computer]] di avere due CPU separate dal punto di vista logico, ma fisicamente risiedenti nello stesso chip. Questa strategia progettuale attenua i problemi di coerenza e di predizione dei salti. Infatti ogni CPU logica esegue un programma separato e quindi tra i diversi programmi non si possono avere problemi di coerenza tra le istruzioni. Questa scelta progettuale aumenta le prestazioni solo nel caso in cui il [[sistema operativo]] sia in grado di gestire/utilizzare più programmi contemporaneamente o in caso di un solo programma attivo se questo risulta scritto per poter utilizzare tutte le CPU disponibili, cioè se i programmi sono [[calcolo parallelo|parallelizzabili]].