Hyper-Threading: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
m +Controllare |
Profonda revisione e aggiunta di diverse informazioni |
||
Riga 1:
'''Hyper-Threading''' è una
▲'''Hyper-Threading''' è una delle più pubblicizzate tecnologie sviluppate da [[Intel]] per migliorare le prestazioni dei propri [[processore|processori]].
== Obiettivi di Hyper-Threading ==
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.
▲
== Principi di funzionamento ==
[[Immagine:Hyper-threaded_CPU.png|thumb|right|300px|Schema di funzionamento dell'
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.
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
== Voci correlate ==
Riga 23 ⟶ 38:
* [[Pentium D]]
* [[Pentium Extreme Edition]]
* [[Simultaneous Multi-Threading]]
[[Categoria:Microprocessore]]
|