Hyper-Threading: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
m Principi di funzionamento: risolvo wikilink a disambigua
m riscrivo spiegazione tecnica, quella precedente non era molto chiara e fuorviante
Riga 6:
 
== Principi di funzionamento ==
[[Immagine:Hyper-threaded_CPU.png|thumb|right|300px|Schema di funzionamento dell'hyper-threading. Le istruzioni dei diversi thread (indicati con colore diversi) vengono mischiate ed eseguite in parallelo all'interno del processore al fine i occupare al meglio le unità d'elaborazione]]
Cercando di semplificare il più possibile il concetto che sta alla base di questa tecnologia, possiamo dire che essa permette ad un processore di "apparire" come fosse composto da due processori fisici (in realtà si tratta di due processori "logici"), dal momento che l'[[sistema operativo|OS]] e gli altri programmi "credono" che in ogni momento ci siano veramente due processori fisici contemporaneamente al lavoro. I benefici sono doppi: durante il [[multitasking]], Hyper-Threading permetterà di usare qualsiasi combinazione di applicazioni desktop, le eseguirà contemporaneamente, e comporterà un livello di benefici diverso a seconda delle applicazioni. Possiamo considerare come valido esempio una presentazione [[Microsoft PowerPoint]] con della musica. Mentre viene codificata la musica, allo stesso tempo sarà possibile manipolare le immagini: il processo di codifica in [[background]] finirà più velocemente, mentre in primo piano vi sarà una veloce risposta delle immagini: in passato capitava di dover attendere, e di non avere un ambiente reattivo, e in certi casi l'applicazione in foreground poteva addirittura bloccarsi. Nelle applicazioni [[software di produttività personale|Office]], le scansioni degli [[antivirus]] e la criptazione di un certo livello richiedono gran parte della capacità di calcolo. Se si eseguono operazioni basilari in primo piano e un semplice antivirus sta lavorando in background, aprire un file PowerPoint di una certa dimensione può richiedere molto tempo. In teoria tutto questo dovrebbe migliorare notevolmente grazie a Hyper-Threading.
L'Hyper-threading è una tecnica di [[multithreading]], il processore è dotato di un singolo gruppo di unità di calcolo (core) ma è in grado di gestire più [[thread]] in contemporanea, quando le istruzioni di un thread rimangono bloccate nella [[pipeline dati|pipeline]] il processore provvede ad attivare il secondo thread al fine di mantenere le unità di elaborazione sempre attive. I singoli thread possono essere bloccati per problemi di recupero dei dati da elaborare (per esempio un [[cache miss]]) o per problemi di [[Dipendenza dai dati|dipendenza dai dati]] che sono in elaborazione presso altre istruzioni in esecuzione. L'hyper-threading permette di eseguire due diversi thread appartenenti a un singolo programma ma a differenza di un sistema multiprocessore richiedono solamente la replicazioni di alcune componenti del processore permettendo di contenere i costi. Nel Pentium 4 l'aggiunta del hyper-threading ha comportato un aumento dell'area occupata nel processore del 5% a fronte di aumenti di prestazione che potevano essere anche del 30%. Lo svantaggio del hyper-threading è che il processore un realtà è dotato di un solo gruppo di unità di elaborazione e queste possono gestire in parallelo solo thread e non processi. Quindi i programmi per potersi avvantaggiare di un processore hyper-threading devono essere dotati di più thread mentre in un sistema multiprocessore programmi indipendenti anche a singolo thread possono essere eseguiti in parallelo.
Sul campo delle pure prestazioni invece, i [[software]] di grafica evoluta come [[Photoshop]] o [[3D Studio Max]] traggono vantaggi nell'ordine del 10%.
 
In realtà tutti questi miglioramenti non sono molto evidenti per l'utente medio, e certamente sono molto meno eclatanti di quelli analoghi che si possono notare con i processori [[dual core]] come i [[Pentium D]]. In questo caso il sistema operativo non vede due core "logici" ma due core "fisici" analogamente a quanto accadrebbe se si fosse in presenza di un sistema [[biprocessore]]. In questo caso i benefici sul multitasking sono nettamente evidenti e anche le applicazioni sviluppate per il calcolo parallelo traggono diversi vantaggi.
 
== L'abbandono della tecnologia ==