Hyper Threading Technology

Slides:



Advertisements
Presentazioni simili
CONCLUSIONE - Nucleo (o Kernel) Interagisce direttamente con lhardware Interagisce direttamente con lhardware Si occupa dellesecuzione.
Advertisements

Gestione della memoria centrale
Classe III A A.s – 2011 Sistemi di Elaborazione e Trasmissione dell’Informazione 4 ore settimanali (2 laboratorio) Docenti Prof. Alberto Ferrari.
Il Sistema Operativo.
Elaboratore e Sistemi Operativo
Gestione della Memoria
Gestione del processore
Architettura di un sistema informatico Hardware
Time Sharing Il termine “Time Sharing” proviene dall'inglese e significa letteralmente “partizione di tempo”. Questa è una tecnica sviluppatasi negli.
Introduzione al calcolo parallelo SISTEMI INFORMATIVI AZIENDALI Pierpaolo Guerra Anno accademico 2009/2010.
Il Software: Obiettivi Programmare direttamente la macchina hardware è molto difficile: lutente dovrebbe conoscere lorganizzazione fisica del computer.
2 Sistema composto da un numero elevato di componenti, in cui ogni componente svolge una sua funzione elaborazione dati memorizzazione dati trasferimento.
1 Corso di Informatica (Programmazione) Lezione 4 (24 ottobre 2008) Architettura del calcolatore: la macchina di Von Neumann.
Processi e Thread.
I Thread.
Il Linguaggio Macchina
Software di base Il sistema operativo è un insieme di programmi che opera sul livello macchina e offre funzionalità di alto livello Es.organizzazione dei.
CAPITOLO 2 INTRODUZIONE AL LINGUAGGIO JAVA E ALL'AMBIENTE HOTJAVA.
3. Architettura Vengono descritte le principali componenti hardware di un calcolatore.
2) Sistemi operativi Lab. Calc. AA2004/05 - cap.2.
Sistemi Operativi GESTIONE DEI PROCESSI.
Introduzione Cosa è un Sistema Operativo ?
Sistemi Operativi GESTIONE DELLA MEMORIA CENTRALE.
Estensioni allarchitettura di Von Neumann Vito Perrone Corso di Informatica A per Gestionali.
Fondamenti di Informatica1 Software di base Tra il linguaggio macchina (basso livello) e i linguaggi evoluti (alto livello) esiste uno strato di software.
Architettura degli elaboratori
CPU (central process unit)
INTRODUZIONE l sistema operativo è il primo software che lutente utilizza quando accende il computer; 1)Viene caricato nella memoria RAM con loperazione.
Modulo 1 - Hardware u.d. 3 (syllabus – 1.3.5)
I blocchi fondamentali dell’elaborazione Componenti e funzionamento del calcolatore I blocchi fondamentali dell’elaborazione.
Architettura degli elaboratori
Architetture dei Calcolatori (Lettere j-z ) Il Processore
Architettura del calcolatore
GESTIONE INTERRUPT CPU INTEL 8086
ARCHITETTURA DI UN ELABORATORE
1 Lucidi delle esercitazioni di Sistemi di Elaborazione in Rete Università degli Studi della Calabria Corso di Laurea in Ingegneria Gestionale A.A. 2003/2004.
Threads.
STRUTTURA DI UN COMPUTER
Sistema Operativo (Software di base)
Prima di iniziare… Durata attività: due lezioni frontali + una lezione laboratorio + compiti per casa Prerequisiti: elementi base architettura dei calcolatori.
Autori:  Gazzola Alex  Cassol Simone  Kawkab Wassim Data: 14/04/2014 Classe: 3° INF.
I processi.
Bus Interface Unit L1 I-CacheL1 D-Cache Fetch/Decode unit Dispatch/Execute unit Retire unit Instruction Pool System Bus L2 Cache 256 KB integrata 4 cicli.
1 Gestione della Memoria. 2 Idealmente la memoria dovrebbe essere –grande –veloce –non volatile Gerarchia di memorie –Disco: capiente, lento, non volatile.
Calcolatori Elettronici Il Processore
SCHEDA INFORMATIVA DI UNITÀ. Introduzione Esigenze di memoria per un sistema di calcolo –Dati –Istruzioni Obiettivi –Raggiungere i migliori compromessi.
Informatica Lezione 5 Scienze e tecniche psicologiche dello sviluppo e dell'educazione (laurea triennale) Anno accademico:
Tipo Documento: unità didattica 3 Modulo 7 Compilatore: Supervisore: Data emissione: Release: Indice: A.Scheda informativa B.Introduzione C.Corpo D.Riepilogo.
Corso di Laurea in Informatica Architettura degli elaboratori a.a La macchina programmata Instruction Set Architecture (2) Istruzioni I-type Indirizzamento.
1 Sommario degli argomenti  Sistemi operativi: DOS, Unix/Linux,Windows  Word processors: Word  Fogli elettronici: Excel  Reti: TCP/IP, Internet, ftp,
Architettura di un calcolatore e linguaggio macchina.
Sistema operativo Il Sistema Operativo gestisce le risorse hw e sw del sistema di elaborazione Facilita l'interazione tra utente e sistema Esistono diversi.
Gestione della Memoria
L’esecuzione dei programmi
Informatica Generale Marzia Buscemi
Sistemi operativi di rete Ing. A. Stile – Ing. L. Marchesano – 1/18.
1 Processi e Thread Processi Thread Meccanismi di comunicazione fra processi (IPC) Problemi classici di IPC Scheduling Processi e thread in Unix Processi.
Corso di Laurea in Biotecnologie corso di Informatica Paolo Mereghetti DISCo – Dipartimento di Informatica, Sistemistica e Comunicazione.
1 1. Introduzione alla gestione della memoria 2. Swapping 3. Memoria virtuale 4. Implementazione 5. Algoritmi di sostituzione Gestione della Memoria.
Hardware Struttura fisica (architettura) del calcolatore formata da parti meccaniche, elettriche, elettroniche.
INTRODUZIONE AI SISTEMI OPERATIVI. Introduzione Il software può essere diviso un due grandi classi: Il software può essere diviso un due grandi classi:
Presentazione di sistemi Ambrosio Federica Anna Esposito 3C inf.
Click to add text L’ Unità di Elaborazione. Struttura : Unità di controllo: coordina attività CPU ALU: unità aritmetico-logica, esegue operazioni tra.
I Microprocessori Unità 3 del libro Internet Working Sistemi e reti.
Uso Didattico dell'Informatica Storica 07 STORIA DEI MICROPROCESSORI E INTRODUZIONE ALLA VIRTUALIZZAZIONE prof. Cuoghi Giampaolo ITIS “A.Volta” Sassuolo.
 Ogni processo che deve essere eseguito da un sistema di elaborazione, deve essere caricato e risiedere almeno parzialmente nella memoria centrale 
© 2016 Giorgio Porcu - Aggiornamennto 18/03/2016 I STITUTO T ECNICO SECONDO BIENNIO T ECNOLOGIE E P ROGETTAZIONE Il Sistema Operativo Concorrenza e Grafi.
© 2016 Giorgio Porcu - Aggiornamennto 31/01/2016 I STITUTO T ECNICO SECONDO BIENNIO T ECNOLOGIE E P ROGETTAZIONE Il Sistema Operativo Thread G IORGIO P.
Hardware Struttura fisica (architettura) del calcolatore formata da parti meccaniche, elettriche, elettroniche.
Il Sistema Operativo Processi e Risorse
Transcript della presentazione:

Hyper Threading Technology Muddolon Laura

introduzione Database sempre più complessi, videogiochi caratterizzati da animazioni realistiche, motori di ricerca capaci di connettere migliaia di siti internet, e streaming media eseguiti in tempo reale, esigono un gran quantitativo di risorse hardware. Intel, per far fronte a richieste hardware così esose, ha sviluppato e proposto una nuova tecnologia: l' Hyper Threading.

Cos’ è L’Hyper Threading technology? Pur continuando ad utilizzare l’ attuale architettura Netburst ,tipica dei processori Pentium 4 a 32 bit, l’ Hyper Threading Technology abilita in un solo processore fisico l’esecuzione di due flussi di codice (detti THREADS)in simultanea esttamente nella stessa modalità di esecuzione di un sistema dual processor (due CPU fisiche): In questo modo due applicazoni in esecuzione simultanea vengono gestite in REALE MULTITASKING

Ma partiamo dalla differenza tra processi thread e programmi: I programmi sono costituiti da processi; I processi sono indipendenti tra loro e e posseggono dei registri e delle variabili proprie; I “threads” sono “processi leggeri che hanno la caratteristica di condividere le stesse variabili globali per l’ esecuzione di una ben determinata mansione;

E inolte... Un processo può essere composto da un solo thread o da più threads; Più threads in un processo possono essere utilizzati per condividere lo stesso job e cooperano per un qualche tipo di attività , mentre processi diversi sono fondamentalmente scorrelati.

Thread I thread sono sono processi con con uno stato molto ridotto (quindi “leggeri”)che condividono lo spazio di indirizzamento e tutto ciò che vi è associato, come i descrittori dei file, le variabili di ambiente e i timer. Ogni thread ha però il suo program counter, i suoi registri e la sua stack.Quando un thread si blocca gli altri thread dello stesso processo sono comunque in grado di continuare l’ esecuzione.

la seguente figura illustra la differenza tra thread processo e programma

Vediemo cosa succede all’ interno della CPU: CICLO FETCH-DECODE-EXECUTE Passo 1. Carica un'istruzione dalla memoria, e assegnala al registro delle istruzioni (IR). Passo 2. Cambia il registro speciale "program counter" con l'indirizzo della prossima istruzione. Passo 3. Determina il tipo di istruzione appena caricata nel registro delle istruzioni (IR). Passo 4. L'istruzione utilizza una parola in memoria? In tal caso determina il suo indirizzo. Passo 5. Se necessario, carica la parola residente in memoria in un registro della cpu. Passo 6. Esegui l'istruzione. Passo 7. Torna all'inizio, al 1 passo, ed esegui la prossima istruzione. Generalmente un microprocessore calcola un’ istruzione alla volta, attuando una procedura a passi chiamata ciclo FETCH-DECODE-EXECUTE

Più cicli di istruzioni compongono un processo, e quest'ultimo non può essere eseguito nello stesso istante di un altro processo. E' fondamentale capire che l'esecuzione di un processo è unica, e non può avvenire contemporaneamente con un altro processo; Ciò significa, che la cpu in un singolo istante esegue un processo, ma in un arco di tempo maggiore passa da un processo all'altro dando all'utente l'impressione di calcolare più processi contemporaneamente. Tale condizione si chiama "pseudo-parallelismo" e si riferisce al modo in cui la cpu alterna l'elaborazione di più processi.

Ma nel caso io avessi a disposizione due o più cpu in grado di calcolare contemporaneamente più cicli di istruzioni, cosa succederebbe? In teoria, potrei raddoppiare la velocità di esecuzione dei programmi, poichè il sistema sarebbe in grado di calcolare due o più processi nello stesso arco di tempo. Quindi, nello stesso istante potrei eseguire il "PROCESSO 1", il "PROCESSO 2" e il "PROCESSO 3". In questo caso saremmo in presenza di un sistema multiprocessore.

Il modelo Hypep Threading La tecnologia Hyper-Threading fu realizzata per la prima volta sulle CPU Intel Xeon MP (Foster MP), ed allora era nota con il nome di Jackson Technology. Essa consiste nell'ottenere due processori logici da una CPU fisica singola; Ciò significa, che le due CPU virtuali ottenute dalla divisione delle risorse di un processore singolo, potranno elaborare un maggior quantitativo di istruzioni in parallelo, aumentando notevolmente le prestazioni del sistema hardware.

Quando viene utilizzata la funzionalità Hyper threading siamo in presenza di una forma di tecnologia SMT (Simultaneous Multi Threading), e di processori logici, a differenza dei sistemi SMP (Symmetric Multi Processing) caratterizzati da due cpu reali. Naturalmente, non si può dimenticare che per poter sfruttare i due processori "virtuali" bisogna utilizzare un sistema operativo capace di supportarli.

Windows 98SE, Windows Millenium Edition, e Windows 2000 Professional non sono stati progettati per poter utilizzare la tecnologia Hyper-Threading, mentre Windows XP (nelle versioni Professional e Home) la supportarno completamente (A tal proprosito vedi tabella B). A quest'ultimi sistemi operativi aggiungiamo Linux, BeOS, Unix e altri ancora.

Windows Xp Home edition. 1 2 Versioni di Windows. Limite CPU fisiche. Limite CPU logiche. Windows Xp Home edition. 1 2 Windows Xp Professional 4 Windows 2003 Standard Server 8 Windows 2003 Enterprise Server 16 Windows 2003 Datacenter Server 32

Putroppo, non basta la compatibilità del sistema operativo con i due o più processori virtuali, ma bisogna che il software utilizzi tale capacità. Quindi, un Word o un Excel sfrutteranno un'unica CPU, e in un sistema dual-processor le prestazioni non aumenteranno di molto.

Ma, il processo di rilevazione della tecnologia Hyper-Threading, come avviene? Durante la fase di "boot" del sistema hardware, il BIOS, determina il numero di processori logici disponibili in quel momento, e registra solo il primo dei due (nel caso il sistema fosse composto da due CPU fisiche, quindi quattro processori logici) nella tabella MPS (Multi-processors Specifications) per garantire la compatibilità con i sistemi "legacy" (x esempio Windows NT). Quest'ultimi rilevano la tabella MPS, e non riconoscono il secondo processore logico, e la tecnologia Hyper-Threading. Successivamente, il Bios registra nella tabella ACPI (Advanced Configuration Power Interface) le informazioni riguardanti i processori logici presenti, e i sistemi che la utilizzano possono usufruire della tecnologia Hyper-Threading (x esempio Windows Xp professional).

COME FUNZIONA L'HYPER THREADING? Il funzionamento dell'Hyper Threading si basa su un principio abbastanza semplice: che, in ogni istante solo una parte delle risorse (unità di esecuzione) di una CPU fisica è utilizzata per l'esecuzione di un programma (o di un thread del programma). Con la nuova tecnologia di Intel le risorse latenti (unità in idle state) vengono coinvolte in un altro processo di un altra applicazione, il tutto in parallelo.

In pratica possiamo visualizzarne così il funzionamento : (Colore bianco = unità non operative; Colore rosso = primo processo; Colore giallo = secondo processo)

Guardando la figura precedente si può capire che durante l'esecuzione di un processo (processore singolo senza l'implementazione della tecnologia Hyper-Threading), solo il 35% delle unità di esecuzione sono utilizzate dalla CPU (unità rappresentate nella figura con il colore rosso). Nel caso in cui, il processore utilizzi la tecnologia Hyper-Threading, le unità di esecuzione "libere" sono occupate da un secondo processo (rappresentato con il colore giallo), con un ottimizzazione di circa il +30%.

Cosa accade se il nostro sistema è composto da più processori fisici? Analizziamo il caso di un architettura superscalare dual-processor proposto dalla figura qui accanto, e il caso mostrato dalla figuraseguente, di un architettura analoga, ma con in più la presenza della tecnologia Hyper-Threading. Come potete osservare nella prima figura, il processore 1 si occupa dell'esecuzione di un thread (di colore rosso), mentre il processore 2 stà eseguendo un altro thread (di colore giallo). In questa situazione la quantità massima di risorse disponibili per l'esecuzione dei processi è uguale a 6 per ogni ciclo di clock ( 3 per ogni processore). Purtroppo, i due processori fisici non raggiungeranno mai, o solo in pochi casi, il picco massimo di risorse in esecuzione.

Questa figura dimostra come una CPU fisica possa elaborare contemporaneamente due processi (rosso, e giallo) con l'adozione della tecnologia Hyper-Threading, mentre l'altra CPU esegue parallelamente altri due processi (verde, e blu).

Si può notare che vi è una differenza sostanziale nell'occupazione dell'unità di esecuzione disponibili (tra modalità H.T e non H.T.), e che il sistema raggiunge più volte il picco massimo di occupazione delle risorse disponibili. Tutto ciò è possibile grazie all'adozione di due CPU logiche per ogni CPU fisica: praticamente ogni CPU fisica viene divisa in due unità virtuali. Nell'esempio descritto dalla figura, una cpu logica si occupa di elaborare il primo processo, la seconda cpu logica esegue il secondo processo. Contemporaneamente, la seconda CPU fisica viene divisa in due CPU logiche in grado di gestire il terzo e il quarto processo.

Così, un processore fisico diventa due CPU logiche (due stati architetturali), in grado di condividere alcune risorse fisiche di una cpu fisica (cache, registri ecc), e in grado di elaborare le istruzioni in parallelo. La condivisione delle risorse può essere di tipo dinamico, o di tipo statico: nel primo caso, la ripartizione può avvenire in base alla necessità, mentre nel secondo caso, si assiste ad una netta divisione delle risorse.

LE MODALITA' DI ESECUZIONE DELLA CPU HYPER- THREADING per ottimizzare l'utilizzo delle risorse, il processore H.T. (Hyper-Threading) dispone di ben quattro modalità di esecuzione: 1) Modalità ST0. In questa modalità solo il processore logico ST0 è attivo, e utilizza completamente le risorse disponibili. L'altra CPU logica è disabilitata dall'istruzione HALT.

2) Modalità ST1. In questa modalità solo il processore logico ST1 è attivo, e utilizza completamente le risorse disponibili. L'altra CPU logica è disabilitata dall'istruzione HALT.

3) Modalità MT. Quando un applicazione richiede l'esecuzione alla seconda CPU logica (con una richiesta o interrupt), quest'ultima diventa subito operativa, e la CPU fisica cambia la modalità di esecuzione in MT (multi-threading) utilizzando sia la CPU ST0, che quella ST1. 4) Modalità Lower Power (L.P). In questa modalità tutti e due i processori logici vengono posti in "idle" dall'istruzione HALT, e il sistema entra in modalità Lower Power.

NB: la somma delle due CPU logiche ST0 e ST1 costituiscono insieme la vostra CPU fisica.

L'Hyper Threading è simile alla tecnologia complementare SMP (Symmetric Multi Processing), ma le risorse disponibili di una CPU fisica, sono fruibili contemporaneamente dai due processori logici; Così le prestazioni del sistema H.T. non saranno mai uguali a quelle ottenute con un sistema dual o multi-processore, poichè in quest'ultimi casi, ogni CPU ha una quantità di risorse fruibili ben maggiori

L'abilitazione della tecnologia H. T L'abilitazione della tecnologia H.T. in un sistema SMP (due processori ) può aumentare le prestazioni complessive del PC (come evidenziato da alcuni benchmark). Infatti a rigor di logica, la tecnologia Hyper-Threading non ottimizza solo le prestazioni dei sistemi "single-processor", ma può essere utilizzata anche per incrementare le prestazioni dei sistemi multi-processore (SMP).

Tutto questo quanto costa in termini di dimensioni del core? La dimensione del core della CPU aumenta di circa il 5% con l'implementazione della tecnologia Hyper-Threading: per far procedere indipendentemente in parallelo i processi, le pipeline devono essere in grado di gestirli separatamente, e per far ciò all'interno del core della CPU devono essere aggiunti nuovi transistors.

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 logic

Inoltre.... 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.

In definitiva.... 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.

QUALI PIATTAFORME SUPPORTANO LA TECNOLOGIA HYPER-THREADING? Chipset Caratteristiche 850E Supporto memorie RDRAM PC 1066 845GE Scheda video integrata Intel Extreme Graphics, e supporto memorie DDR 333/266 845PE Supporto memorie DDR 333/266 845GV Scheda video integrata Intel Extreme Graphics 845G Supporto memorie DDR 266. 845E Supporto memorie DDR 200/266 E7205 Supporto memorie DDR E7501 Supporto memorie E7505 E7500 Quasi tutti i Chipset Intel disponibili attualmente nel mercato supportano la tecnologia Hyper-Threading di Intel.

via Al momento, l'unico Chipset VIA in grado di supportare la tecnologia Hyper-Threading è il VIA Apollo P4X400 (Northbridge P4X400, Southbridge VT8235) con supporto delle memorie DDR a 400 Mhz.

SIS Anche SIS Technology supporta con i suoi Chipset la nuova tecnologia Hyper-Threading e la seguente tabella vi mostra quali fra quelli attuali. SIS Chipset 655 R658 648 645DX 651 M650 Versione del Chipset B Hyper Threading SI