Hyper-Threading: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
m +Controllare
LucaDetomi (discussione | contributi)
Profonda revisione e aggiunta di diverse informazioni
Riga 1:
'''Hyper-Threading''' è una delletecnologia più pubblicizzate tecnologie sviluppatesviluppata da [[Intel]] per migliorare le prestazioni dei propri [[processore|processori]] e venne integrata in questi ultimi negli anni a cavallo tra il [[2003]] e il [[2006]].
{{C|La voce è troppo Intel-centrica.|informatica|settembre 2008|firma=[[Utente:Hellis|Hellis]] ([[Discussioni utente:Hellis|msg]]) 22:26, 2 set 2008 (CEST)}}
'''Hyper-Threading''' è una delle più pubblicizzate tecnologie sviluppate da [[Intel]] per migliorare le prestazioni dei propri [[processore|processori]].
 
== Obiettivi di Hyper-Threading ==
Fu introdotta inizialmente nel settore server con gli [[Xeon]] e gli [[Itanium 2]], poi è giunta anche nel settore desktop a partire dal [[Pentium 4]] [[Northwood]] a 3,06 GHz e 533 MHz di [[BUS]]. Successivamente è stata implementata in tutti i successivi modelli di Pentium 4, anche [[Prescott]] e [[Cedar Mill]], e nelle [[CPU]] [[dual core]] [[Pentium EE]].
La tecnologia Hyper-Threading è stata una delle più pubblicizzate da parte di Intel nel corso degli anni in quanto l'idea alla base era quella di migliorare le prestazioni dei processori sfruttando alcune tecniche di [[calcolo parallelo]] grazie alla duplicazione di alcune unità interne dei chip.
 
La tecnologia Hyper-Threading è stata presentata da Intel in un momento in cui i processori dual core non potevano ancora venire prodotti a prezzi ragionevoli in ragione sia dell'avanzamento tecnologico, sia del processo produttivo che nel [[2003]] era ancora quello a [[130 nm]], che non permetteva "fisicamente" la presenza di 2 core all'interno di un unico package.
Stando ad Intel, tale tecnologia avrebbe dovuto garantire un miglioramento delle prestazioni del 24% a prescindere dalla velocità di [[clock]], ma i fatti hanno poi dimostrato che seppure ci sia effettivamente un certo miglioramento nelle prestazioni, tale aumento è di gran lunga più contenuto rispetto a quanto auspicato e, soprattutto, limitato ad una ristretta cerchia di applicazioni, soprattutto per grafica, che riescono a sfruttarne le potenzialità.
 
Essa venne introdotta inizialmente nel settore server con gli [[Xeon]] e gli [[Itanium 2]], ovvero in un settore che già allora prevedeva applicazioni pensate secondo criteri di "parallelizzazione" del codice. Nel [[2003]] però, Intel aveva anche raggiunto i 3 GHz per i processori [[Pentium 4]] destinati al settore desktop, e ormai l'aumento di frequenza cominciava a diventare sempre più difficoltoso da operare; al fine di migliorare ulteriormente le prestazioni dei propri processori desktop senza per questo dover aumentare la frequenza e il consumo massimo, decise di promuovere l'adozione della tecnologia Hyper-Threading anche in questo settore e il primo processore desktop ad esserne dotato fu il Pentium 4 [[Northwood]] a 3,06 GHz con [[BUS]] a 533 MHz. Successivamente, venne implementata in tutti i successivi modelli di Pentium 4, compresi quelli basati sui [[core (Hardware)|core]] successivi a Northwood, vale a dire [[Prescott]] e [[Cedar Mill]], e nelle prime [[CPU]] [[dual core]] [[Pentium Extreme Edition]]; anzi, in questo caso, la presenza della tecnologia Hyper-Threading era la sola caratteristica che differenziava tali processori dagli altri processori dual core, [[Pentium D]], che ne erano sprovvisti.
 
StandoSecondo adle dichiarazioni iniziali di Intel, tale tecnologia avrebbe dovuto garantire un miglioramento delle prestazioni del 24% a prescindere dalla velocità di [[clock]], ma i fatti hannodimostrarono poiin dimostratoseguito che seppure ci siaesistesse effettivamente un certo miglioramento nelle prestazioni, tale aumento èera di gran lunga più contenuto rispetto a quanto auspicato e, soprattutto, limitato ad una ristretta cerchia di applicazioni, soprattutto perlegate graficaal mondo grafico, chein riesconogrado adi sfruttarne le potenzialità. Sul campo delle pure prestazioni, i [[software]] di grafica evoluta come [[Photoshop]] o [[3D Studio Max]] traevano vantaggi nell'ordine del 10%.
 
== Principi di funzionamento ==
[[Immagine:Hyper-threaded_CPU.png|thumb|right|300px|Schema di funzionamento dell'hyperHyper-threadingThreading. 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]]
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.
 
Come detto, l'idea alla base della tecnologia Hyper-Threading era quella di duplicare alcune unità di elaborazione all'interno dei microprocessori al fine di poter eseguire simultaneamente alcune operazioni, grazie a tecniche di [[multithreading]].
== L'abbandono della tecnologia ==
Con l'avvento, a partire dalla metà del [[2006]], dei nuovi processori dual core basati sull'architettura "[[Intel Core|Core]]", i [[Core 2 Duo]] [[Conroe]], come successori del Pentium D [[Presler]], Intel ha deciso di abbandonare l'implementazione di tale tecnologia in quanto sembra che i benefici che apporterebbe in presenza di un sistema dual core con [[Pipeline dati|pipeline]] corte come i [[Core 2 Duo]] siano esigui e quindi controproducenti per la compagnia in quanto occuperebbero spazio inutile sul wafer del processore.
 
Si trattava, in un certo senso, di un tentativo di creare un processore di transizione tra i tradizionali [[single core]] e i successivi dual core, non inserendo 2 interi core all'interno di un unico [[package (elettronica)|package]], ma duplicando solo alcune aree "sensibili" del singolo core.
Intel comunque non ha mai parlato di abbandono definitivo, quindi è possibile che, in futuro, essa possa venire re-introdotta. A questo proposito, sembra proprio che Intel stia considerando di re-introdurre l'Hyper-Threading all'interno della nuova architettura [[Nehalem]] attesa per il [[2008]]; si tratta dell'architettura che andrà a sostituire la "Core" dei Core 2 Duo.
 
Grazie all'Hyper-Threading un singolo core era comunque in grado di gestire più [[thread]] in contemporanea, quando le istruzioni di un thread rimanevano bloccate nella [[pipeline dati|pipeline]] il processore procedeva ad elaborare un secondo thread al fine di mantenere le unità di elaborazione sempre attive. I singoli thread possono infatti venire bloccati nella loro esecuzione da molteplici fattori, quali ad esempio problemi di recupero dei dati da elaborare (per esempio un [[cache miss]]) o per problemi di [[Dipendenza dai dati|dipendenza dai dati]] che si trovano in elaborazione presso altre istruzioni in esecuzione.
 
=== Principali differenze tra "Hyper-Threading" e "processore dual core" ===
La replicazione solo di alcune unità di elaborazione non poteva ovviamente competere, come prestazioni, con un processore dual core vero e proprio, dove cioè l'intero core veniva duplicato. A fronte però di un aumento di prestazioni più contenuto, Intel dichiarò che l'integrazione della tecnologia Hyper-Threading comportava un aumento dell'area della CPU di un misero 5% a fronte di un aumento di prestazioni che avrebbe potuto sfiorare anche il 30% (come detto, si trattava in realtà di un valore quasi irraggiungibile). In ogni caso, un aumento tanto modesto della superficie del processore consentiva di contenere i costi di produzione e quindi il rapporto costi/benefici era a favore dei modelli integranti tale tecnologia rispetto a quelli precedenti.
 
Il punto veramente debole della tecnologia Hyper-Threading, quando confrontata con un processore dual core vero e proprio, risiedeva nella capacità di tale tecnologia di gestire in parallelo solo thread e non [[Processo (informatica)|processi]]; in altre parole, in un sistema dotato di processore con Hyper-Threading traggono vantaggio solo le applicazioni dotate di più thread, mentre in un sistema dotato di un processore dual core, possono essere eseguiti in parallelo sia i thread di un singolo programma (come avviene con la tecnologia Hyper-Threading), sia i thread appartenenti a programmi diversi, che possono quindi essere eseguiti simultaneamente solo in quest'ultimo tipo di sistemi.
 
=== Hyper-Threading dal punto di vista del sistema operativo ===
Dal punto di vista del [[sistema operativo]], un processore single core ma dotato di tecnologia Hyper-Threading era indistinguibile da un normale processore dual core. Intel aveva infatti sviluppato tale nuova soluzione in modo che il sistema operativo "vedesse" comunque la presenza di 2 core di elaborazione. Tali core non erano in effetti 2 core "fisici" come nei processori dual core, ma erano 2 core "logici", vale a dire che un applicazione non doveva essere pensata espressamente per la tecnologia Hyper-Threading; se essa era in grado di sfruttare 2 core di elaborazione, era anche in grado di sfruttare le potenzialità della nuova tecnologia (ovviamente con vantaggi prestazionali inferiori, per i motivi espressi sopra). Il [[BIOS]] della [[scheda madre]], che doveva a sua volta supportare la nuova tecnologia, faceva "credere" al sistema operativo e alle applicazioni di trovarsi di fronte ad un vero e proprio sistema [[biprocessore]].
 
== L'abbandono della tecnologia ==
Con l'avvento, a partire dalla metà del [[2006]], dei nuovi processori dual core basati sull'architettura "[[Intel Core|Core]]", i [[Core 2 Duo]] [[Conroe]], come successori del Pentium D [[Presler]], Intel ha decisodecise di abbandonare l'implementazione di tale tecnologia in quanto sembraessa cheera ipoco beneficiefficace chequando apporterebbeabbinata in presenza di una sistemaprocessori dual core con [[Pipeline dati|pipeline]] corte come i [[Core 2 Duo]] siano esigui e quindi controproducenti per la compagnia in quanto occuperebbero spazio inutile sul wafer del processore.
 
AlIntel momentocomunque non parlò mai di quest'annuncio,abbandono definitivo e quindi è apparso subito sortoplausibile un dubbioritorno, sebbene in versione rivisitata, di tale tecnologia. A questo proposito, alla fine del [[2008]] riguardoarriveranno i motiviprimi processori appartenenti alla nuova architettura [[Nehalem]], successiva alla "Core", che porterebberoporteranno con sé una tecnologia analoga chiamata [[Simultaneous Multi-Threading]]. Al momento dell'annuncio da parte di Intel adi re-introdurreinserire una tecnologia (sebbene si tratti di una sua evoluzione) che non ha mai goduto di particolare successo presso i clienti, sono emersi alcuni interrogativi sulle motivazioni di tale scelta. La risposta può essere trovata nello sviluppo del [[software]].; Sembrasecondo infattiIntel cheinfatti, attraverso [[Windows Vista]] questa tecnologia potrà ottenere nuovi successi.
 
== Voci correlate ==
Riga 23 ⟶ 38:
* [[Pentium D]]
* [[Pentium Extreme Edition]]
* [[Simultaneous Multi-Threading]]
 
[[Categoria:Microprocessore]]