Come cambia l'architettura Netburst con l'utilizzo della tecnologia Hyper-Threading?

Con l'utilizzo della tecnologia Hyper-Threading alcune unità dell' in order front end vengono condivise dai due processori logici, è il caso della Trace Cache, del Microcode ROM, del BTB, e del IA-32 Instruction Decoder; Altre unità vengono duplicate, come l'IA-32 Instruction TLB, e il BTB. Nella fase "out-of-order Execution logic" le unità Allocator e Rename logic sono duplicate, vi sono due RAT (Register Alias Table), una per ognuno dei processori logici. Dopo l'allocazione (unità Allocator), e l'operazione di reindirizzamento (unità Rename logic) fisico, i processi vengono posti nelle Uop Queues partizionate opportunamente per ognuno dei due processori logici. Lo scheduler è condiviso tra i processori logici, ed è l'unità che invia alla unità di calcolo (fase di esecuzione) le micro operazioni quando tutti i dati richiesti sono disponibili, e soprattutto quando le unità di esecuzione sono libere. Durante la fase di esecuzione le unità di calcolo vere e proprie sono condivise dalle due CPU virtuali. Infine, nell'ultima fase retirement le risorse disponibili sono condivise dai processori logici. Il concetto di base dell'Hyper Threading è l'elaborazione indipendente di due processi all'interno delle pipeline, ottimizzando l'utilizzo delle risorse, e aumentando le prestazioni complessive del sistema.

In tal modo, l'architettura Netburst, con l'implementazione dell'Hyper Threading, riesce a massimizzare l'impiego delle risorse disponibili, e non dovrebbe essere difficile capire perchè, in alcuni casi (in contesti ben precisi) , si registri un incremento delle prestazioni.

Quindi, dopo un esame dettagliato di quali unità sono condivise, partizionate e duplicate, la tecnologia Hyper-Threading non è più un mistero!; Ma se ciò non fosse, di seguito parleremo di tale tecnologia in un altra chiave di lettura. Per una semplificazione dell'utilizzo dell'architettura Netburst del Pentium IV, e della tecnologia Hyper-Threading pensiamo all'esempio seguente:

Prendiamo in considerazione un industria, ed equipariamola al nostro microprocessore Pentium IV. Nell'organizzazione della produzione tradizionale (un processore fisico singolo) compaiono molte linee di assemblaggio (equiparabili alle nostre unità di esecuzione), ed un "supervisore" (lo stato architetturale) che dirige, e ordina i processi all'interno della catena di produzione.

Il nostro supervisore lavora su diverse linee di assemblaggio in parallelo, ma se una di quest'ultime attende un risultato (o un elemento importante per l'intera catena), il sistema si rallenta finchè non arriva il dato richiesto. In questo caso, possiamo pensare ad un processore che per l'elaborazione attende i dati dall'hard disk.

Con l'Hyper-Threading ogni industria (processore singolo) ha due supervisori (processori logici) che condividono le stesse linee di assemblaggio. Quando uno di essi stà aspettando un elemento importante, l'altro processore può continuare l'elaborazione dei processi aumentando così l'efficienza dell'intero sistema.

Menu Sezione/Pagina Precedente/Pagina Successiva/Torna alla Homepage


Sito:megaoverclock.supereva.it