Come lavora l'Hyper-Threading

Test e Recensione - Sei core e 12 thread, analisi dell'HT dell'Intel Core i7-980X.

Avatar di Tom's Hardware

a cura di Tom's Hardware

Come lavora l'Hyper-Threading

Il Pentium III aveva una pipeline istruzioni a 10 stadi, il Pentium 4 ne portò la lunghezza a 20 con i core Willamette (180nm) e Northwood (130nm). Il core Prescott (90nm) aveva una pipeline a 31 stadi. L'ultimo del suo genere, il core Cedar Mill (65nm), manteneva questa struttura di pipeline.

L'idea di base dietro alla pipeline istruzioni è strutturare il calcolo in differenti passaggi, per poi organizzare questi ultimi in una linea (pipeline), in modo da ottenere una velocità d'esecuzione più alta (throughput), specialmente a frequenze elevate. Se però la pipeline resta vuota, o contiene istruzioni sbagliate, le prestazioni calano. Per questo il cosidetto program branches è importante. Indica sostanzialmente la capacità di "ramificarsi" di un programma, ed è un fattore gestito dalla CPU tramite l'unità chiamata branch prediction, che serve appunto a capire quale elemento sarà il prossimo nelle linea di esecuzione.

Le pipeline a 31 stadi dei core Prescott e Cedar Mill in particolare dipendeva dall'efficienza di un carico elevato. Per questo Intel ha inventato e aggiunto una "replay unit", che permetteva al processore d'intercettare le operazioni inviate per errore, e di riproporle quando si potevano garantire le corrette condizioni d'esecuzione. Un effetto collaterale del sistema replay riguardava il rallentamento di alcune applicazioni con Hyper-Threading abilitato, perché le risorse di esecuzione erano vincolate, e perciò detraevano dalle prestazioni thread secondarie. In quel periodo, il valore dell'Hyper-Threading doveva essere messo in discussione, perché alcune volte era un beneficio e altre un danno.

jpg

L'implementazione attuale dell'Hyper-Threading è simile a quella di cui abbiamo parlato, almeno per il fatto che fa sì che ogni core fisico appaia al sistema operativo come due processori logici. Se le risorse di esecuzione non sono usate da un'operazione in corso, lo scheduler del processore può eseguire qualcos'altro per aumentare l'efficienza o impedire lo stallo da previsioni branch errate, perdite di cache o altre dipendenze da dati.

Dal punto di vista hardware, tutto ciò di cui avete bisogno, oltre alla CPU adatta, per supportare l'Hyper-Threading è una piattaforma con supporto BIOS e un sistema operativo compatibile, ovvero da Windows NT in poi.

In passato abbiamo visto l'Hyper-Threading fornire prestazioni aggiuntive, ma anche aumentare i consumi (anche se secondo Intel è un'aggiunta da poco nell'incremento della superficie del die). Le applicazioni che sfruttano pesantemente i thread e i carichi di lavoro solitamente ottengono un vantaggio maggiore di efficienza di molti core e più thread rispetto al software medio che meno ottimizzato per più thread.

Leggi altri articoli