Aumentare il parallelismo a livello di istruzione (2)



Documenti analoghi
Aumentare il parallelismo a livello di istruzione (2)

CPU pipeline 4: le CPU moderne

CPU pipeline 4: le CPU moderne

Calcolatori Elettronici

Aumentare il parallelismo a livello di istruzione (1)

L unità di elaborazione pipeline L unità Pipelining

Architettura hardware

Valutazione delle Prestazioni. Valutazione delle Prestazioni. Architetture dei Calcolatori (Lettere. Tempo di risposta e throughput

CPU. Maurizio Palesi

Hazard sul controllo. Sommario

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca.

Quinto Homework. Indicare il tempo necessario all'esecuzione del programma in caso di avvio e ritiro fuori ordine.

Metodi Software per ottenere ILP

Tecniche di parallelismo, processori RISC

Calcolatori Elettronici A a.a. 2008/2009

I Thread. I Thread. I due processi dovrebbero lavorare sullo stesso testo

CALCOLATORI ELETTRONICI 29 giugno 2010

CALCOLATORI ELETTRONICI 29 giugno 2011

La macchina di Von Neumann. Archite(ura di un calcolatore. L unità di elaborazione (CPU) Sequenza di le(ura. Il bus di sistema

La memoria centrale (RAM)

Lezione 7 Sommatori e Moltiplicatori

In realtà, non un solo microprocessore, ma un intera famiglia, dalle CPU più semplici con una sola pipeline a CPU molto complesse per applicazioni ad

Prestazioni CPU Corso di Calcolatori Elettronici A 2007/2008 Sito Web: Prof. G. Quarella prof@quarella.

Valutazione delle Prestazioni

L unità di controllo. Il processore: unità di controllo. Le macchine a stati finiti. Struttura della macchina a stati finiti

Gestione della memoria. Paginazione Segmentazione Segmentazione con paginazione

Architettura (10/9/2003) Pag. 1/6. Cognome e Nome (in stampatello):

Architettura dei calcolatori e sistemi operativi. Assemblatore e Collegatore (Linker) Capitolo 2 P&H Appendice 2 P&H

Il processore. Il processore. Il processore. Il processore. Architettura dell elaboratore

CALCOLATORI ELETTRONICI 31 marzo 2015

Migliorare le prestazioni di processori e memorie

Calcolatori Elettronici. La Pipeline Criticità sui dati Criticità sul controllo Cenni sull unità di controllo

Architettura dei calcolatori I parte Introduzione, CPU

C. P. U. MEMORIA CENTRALE

Architettura del calcolatore

Schedulazione dinamica. Elettronica dei Calcolatori 1

Sistemi Operativi Kernel

La memoria - generalità

CALCOLATORI ELETTRONICI A cura di Luca Orrù. Lezione n.7. Il moltiplicatore binario e il ciclo di base di una CPU

Lezione n.19 Processori RISC e CISC

Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione.

Architettura di tipo registro-registro (load/store)

DMA Accesso Diretto alla Memoria

Ciclo di Istruzione. Ciclo di Istruzione. Controllo. Ciclo di Istruzione (diagramma di flusso) Lezione 5 e 6

CLASSE III A I.T.I. (ABACUS) SISTEMI DI ELABORAZIONE E TRASMISSIONE DEI DATI VERIFICA DI RECUPERO

DIMENSIONI E PRESTAZIONI

La macchina programmata Instruction Set Architecture (1)

Sistemi Operativi. Scheduling della CPU SCHEDULING DELLA CPU. Concetti di Base Criteri di Scheduling Algoritmi di Scheduling

Sistemi Operativi SCHEDULING DELLA CPU. Sistemi Operativi. D. Talia - UNICAL 5.1

Più processori uguale più velocità?

Laboratorio di Informatica

Strutture di Memoria 1

Università degli studi di Roma Tor Vergata Ingegneria Medica Informatica I Programma del Corso

Gestione della Memoria

Esercitazione sulle CPU pipeline

Calcolo numerico e programmazione Architettura dei calcolatori

Struttura del calcolatore

INCREMENTO DELLE PRESTAZIONI DI UN PROCESSORE

Esame di INFORMATICA

Architettura di un calcolatore: introduzione

CALCOLATORI ELETTRONICI 15 aprile 2014

Informatica - A.A. 2010/11

Calcolatori Elettronici. La memoria gerarchica La memoria virtuale

Testi di Esercizi e Quesiti 1

Esempio: aggiungere j

FONDAMENTI di INFORMATICA L. Mezzalira

Tecniche per il progetto di sistemi elettronici tolleranti ai guasti

I componenti di un Sistema di elaborazione. CPU (central process unit)

1.4a: Hardware (Processore)

LabVIEW offre un ambiente di programmazione grafica

Criteri di Scheduling Algoritmi di Scheduling Multiple-Processor Scheduling Asymmetric/Symmetric multiprocessing Processori Multicore

Introduzione alle architetture parallele

MODELLO DLX IN UNISIM

Sistemi Operativi SCHEDULING DELLA CPU

Corso di Informatica Applicata. Lezione 3. Università degli studi di Cassino

Approccio stratificato

Il calcolatore oggi : UN SISTEMA DI ELABORAZIONE

Strutturazione logica dei dati: i file

Database. Si ringrazia Marco Bertini per le slides

Automazione Industriale (scheduling+mms) scheduling+mms.

Gerarchie di memoria Divide et impera. Gerarchie di memoria La congettura 90/10. Gerarchie di memoria Schema concettuale

AXO Architettura dei Calcolatori e Sistema Operativo. processo di assemblaggio

Sistemi Operativi. Interfaccia del File System FILE SYSTEM : INTERFACCIA. Concetto di File. Metodi di Accesso. Struttura delle Directory

STRUTTURE DEI SISTEMI DI CALCOLO

Architettura di un calcolatore

Fondamenti di Informatica PROBLEMI E ALGORITMI. Fondamenti di Informatica - D. Talia - UNICAL 1

Sistemi Operativi IMPLEMENTAZIONE DEL FILE SYSTEM. Implementazione del File System. Struttura del File System. Implementazione

Comunicazione tra Computer. Protocolli. Astrazione di Sottosistema di Comunicazione. Modello di un Sottosistema di Comunicazione

ALLEGATO. del. regolamento delegato della Commissione

La schedulazione. E.Mumolo

DI D AGRA R MM M I M A BLOCC C H C I TEORI R A E D D E SERC R I C ZI 1 1

Introduzione. Classificazione di Flynn... 2 Macchine a pipeline... 3 Macchine vettoriali e Array Processor... 4 Macchine MIMD... 6

Funzioni in C. Violetta Lonati

Sistemi Operativi GESTIONE DELLA MEMORIA SECONDARIA. D. Talia - UNICAL. Sistemi Operativi 11.1

Sistemi Operativi. Memoria Secondaria GESTIONE DELLA MEMORIA SECONDARIA. Struttura del disco. Scheduling del disco. Gestione del disco

PLC Programmable Logic Controller

CALCOLATORI ELETTRONICI A cura di Luca Orrù. Lezione n.6. Unità di controllo microprogrammata

INFORMATICA 1 L. Mezzalira

L architettura del calcolatore (Prima parte)

SISTEMI OPERATIVI. Prof. Enrico Terrone A. S: 2008/09

Transcript:

Processori multiple-issue issue Aumentare il parallelismo a livello di istruzione (2) Architetture Avanzate dei Calcolatori Valeria Cardellini Nei processori multiple-issue vengono lanciate più istruzioni in parallelo per ciclo di clock L hardware determina il massimo numero di istruzioni (tipicamente da 2 a 6) Due tipi di processori multiple-issue: dinamici e statici Processori multiple-issue dinamici (superscalari) Il numero di istruzioni lanciate per ciclo di clock (dimensione della finestra di issue) è variabile Scheduling dinamico (eseguito dall hardware) o statico (eseguito dal compilatore) I processori superscalari con scheduling dinamico eseguono le istruzioni fuori ordine Esempi: IBM Power4, Intel Pentium 3,4 I processori superscalari con scheduling statico eseguono le istruzioni in ordine Esempi: SUN UltraSPARC AAC - Valeria Cardellini, A.A. 2007/08 1 Processori multiple-issue issue statici Il numero di istruzioni lanciate insieme in un ciclo di clock è tipicamente fisso Il compilatore identifica le istruzioni eseguibili in parallelo Istruzioni assemblate in pacchetti (pacchetto di issue), che sono poi decodificati ed eseguiti dal processore Il compilatore gestisce le criticità Motivazione: Nei processori multiple-issue dinamici il controllo occupa il 30-50% di tempo del processore Affidando al compilatore l ottimizzazione della sequenza di istruzioni: Si riduce la complessità del processore Si libera spazio sul chip Processori multiple-issue issue statici (2) Processori VLIW (Very Long Instruction Word) Istruzione lunga in cui si impacchettano più istruzioni elementari Istruzioni lunghe eseguite in ordine strettamente sequenziale Esempi: Philips Trimedia (processore embedded per media processing, 5 operazioni per ciclo di clock) Transmeta Crusoe (istruzione lunga di 128 bit, max 4 istruzioni per ciclo di clock) Approccio VLIW puro: rigidità eccessiva EPIC Processori EPIC (Explicitly Parallel Instruction Computer) Intel Itanium, Itanium 2 AAC - Valeria Cardellini, A.A. 2007/08 2 AAC - Valeria Cardellini, A.A. 2007/08 3

VLIW: concetti base Il pacchetto di issue rappresenta un istruzione lunga (ad es. 128 bit) Nell istruzione lunga (detta bundle) si impacchettano più operazioni (dette sillabe), con i relativi operandi, che saranno eseguite in parallelo da altrettante unità funzionali Ad ogni operazione viene associato un percorso nell unità di elaborazione, da cui viene eseguita l operazione Esempio di bundle con 4 sillabe: sillaba Operazione 1 Operazione 2 Operazione 3 Operazione 4 VLIW: schema di funzionamento Ipotesi: istruzione lunga composta da 4 operazioni Il compilatore identifica 4 operazioni mutuamente indipendenti, che possono essere impacchettate nello stesso bundle ed eseguite simultaneamente Criticità sui dati e strutturali: risolte dal compilatore selezionando opportunamente diversi slot temporali per svolgere le operazioni Predizione dei salta di tipo statico (usando anche informazioni di tipo statistico) ad opera del compilatore Al più una operazione che modifica il flusso di controllo per bundle Predizione errata: viene interrotta l esecuzione delle operazioni coinvolte bundle AAC - Valeria Cardellini, A.A. 2007/08 4 AAC - Valeria Cardellini, A.A. 2007/08 5 VLIW: pro e contro Vantaggio: architettura più semplice rispetto a quella di un processore superscalare Più veloce (ciclo di clock più breve) Riduzione dell area del chip Minori costi e minor consumo di potenza Svantaggi: complessità del compilatore e riduzione della portabilità Il compilatore deve conoscere non solo l architettura del processore, ma anche parametri tecnologici Si riduce la portabilità del codice oggetto, anche tra successive generazioni della stessa famiglia (manca la compatibilità binaria) Soluzione possibile per il problema della compatibilità binaria: emulazione Traduzione del codice oggetto da parte dell architettura obiettivo Es.: Code Morphing nel Transmeta Crusoe Esempio: MIPS con two-issue Il pacchetto di issue è composto da 2 istruzioni (dimensione complessiva pari a 64 bit) Nel pacchetto: un istruzione è di tipo ALU su interi o un branch, l altra istruzione è una load o store Istruzione ALU o branch Load o store ALU o branch Load o store ALU o branch Load o store ALU o branch Load o store Stadi della pipeline AAC - Valeria Cardellini, A.A. 2007/08 6 AAC - Valeria Cardellini, A.A. 2007/08 7

Esempio: MIPS con two-issue (2) Processori VLIW e criticità Caricamento di due istruzioni dalla memoria Quattro letture e due scritture per il banco dei registri Calcolo indirizzo per trasferimento dati AAC - Valeria Cardellini, A.A. 2007/08 9 AAC - Valeria Cardellini, A.A. 2007/08 8 Criticità sui dati di tipo RAW Il compilatore inserisce staticamente istruzioni o altre istruzioni Criticità sui dati di tipo WAR e WAW Generalmente risolte dal compilatore selezionando opportunamente gli slot temporali per le operazioni Criticità strutturali Risolte dal compilatore selezionando opportunamente gli slot temporali per le operazioni Operazioni nello stesso bundle devono utilizzare risorse distinte Criticità sul controllo Predizione statica dei salti ad opera del compilatore Risolte dall hardware annullando l esecuzione di salti predetti erroneamente Esempio di scheduling per VLIW Sia dato il seguente codice scalare Potenziale WAR su $t0 Potenziale WAW su $t0 In rosso criticità RAW Indicare il possibile scheduling sulla pipeline MIPS di tipo statica two-issue Assunzione: predizione dei salti AAC - Valeria Cardellini, A.A. 2007/08 10 Esempio di scheduling per VLIW (2) Assumendo che la prima operazione dell istruzione lunga è relativa ad un istruzione ALU o branch, mentre la seconda è per istruzioni di accesso in memoria: Istruzione ALU o branch Si ha CPI ideale =1/2 = 0.5 CPI two-issue = 4/5 = 0.8 CPI scalare = 7/5 = 1.4 Istruzione load o store sw $t0, 4($s1) Ciclo di clock Necessari due stalli per criticità RAW (tra lw e add, tra addi e bne) AAC - Valeria Cardellini, A.A. 2007/08 11 1 2 3 4

Inserimento di istruzioni Se il parallelismo non è elevato, le istruzioni lunghe contengono un numero elevato di sillabe Problema: esplosione della memoria Per superare il problema dell esplosione della memoria: in memoria i bundle sono impacchettati Contengono solo le sillabe significativa (nessuna ) Codici separatori indicano quali sillabe appartengono ad un bundle e quali al bundle successivo AAC - Valeria Cardellini, A.A. 2007/08 12 Scheduling del codice Obiettivo: riordinare le istruzioni del codice oggetto in modo tale che siano eseguite nell ordine ottimo e semanticamente corretto Eseguire le operazioni critiche in modo efficiente Aumentare il numero di istruzioni significative (no ) lanciate simultaneamente Con lo scopo di minimizzare il tempo di esecuzione del programma Tecniche di scheduling locale Lavorano su una sequenza di istruzioni appartenenti ad un singolo blocco di base Il blocco di base non contiene salti e destinazioni di salti Esempi: loop unrolling, software pipelining Tecniche di scheduling globale Lavorano su una sequenza di istruzioni appartenenti a multipli blocchi di base Esempi (non trattati): trace scheduling, superblock scheduling AAC - Valeria Cardellini, A.A. 2007/08 13 Srotolamento del ciclo Lo srotolamento del ciclo (loop unrolling) modifica la struttura del ciclo Il corpo del ciclo è replicato più volte (per un numero di volte pari al fattore di srotolamento), modificando il codice di terminazione del ciclo Il compilatore deve verificare se le iterazioni del ciclo sono tra loro indipendenti Vantaggi Aumenta il grado di ILP Riduce l overhead del ciclo Numero di incrementi del contatore e di salti Aumenta la lunghezza di un blocco di base Più istruzioni disponibili per lo scheduling diminuisce il numero di stalli da inserire Svantaggi Aumenta il numero di registri necessari Aumenta la lunghezza del codice AAC - Valeria Cardellini, A.A. 2007/08 14 Srotolamento del ciclo: esempio for (i=1000; i>0; i=i-1) x[i] = x[i] + s; Le iterazioni del ciclo sono indipendenti Consideriamo il codice con una singola iterazione x è un vettore di interi, s è un intero $s2 contiene s, $t0 è inizializzato con l indirizzo più alto degli elementi del vettore AAC - Valeria Cardellini, A.A. 2007/08 15

Srotolamento del ciclo: esempio (2) Senza riordinamento (scheduling), il ciclo è eseguito dal processore MIPS con pipeline così: Prestazioni: 8 cicli di clock per iterazione Confronto nello stadio Srotolamento del ciclo: esempio (3) Riordinamento (scheduling) sulla singola iterazione sw $t0, 4($s1) Prestazioni: 5 cicli di clock per iterazione - 3 cicli di clock per operazioni su vettore (lw, add, sw) - 2 cicli di clock per overhead del loop (addi, bne) AAC - Valeria Cardellini, A.A. 2007/08 16 AAC - Valeria Cardellini, A.A. 2007/08 17 Srotolamento del ciclo: esempio (4) Srotolando il ciclo per 4 volte Fattore di srotolamento = 4 for (i=1000; i>0: i=i-4) { x[i] = x[i] + s; x[i-1] = x[i-1] + s; x[i-2] = x[i-2] + s; x[i-3] = x[i-3] + s; } Fusione della parte di controllo del ciclo it. i lw $t0, -4($s1) it. i-1 sw $t0, -4($s1) lw $t0, -8($s1) it. i-2 sw $t0, -8($s1) lw $t0, -12($s1) it. i-3 sw $t0, -12($s1) addi $s1, $s1, -16 AAC - Valeria Cardellini, A.A. 2007/08 18 Srotolamento del ciclo: esempio (5) Per evitare dipendenze sui nomi il compilatore ridenomina i registri lw $t1, -4($s1) add $t1, $t1, $s2 sw $t1, -4($s1) lw $t2, -8($s1) add $t2, $t2, $s2 sw $t2, -8($s1) lw $t3, -12($s1) add $t3, $t3, $s2 sw $t3, -12($s1) addi $s1, $s1, -16 AAC - Valeria Cardellini, A.A. 2007/08 19

Srotolamento del ciclo: esempio (6) Riordinamento (scheduling) per evitare criticità sui dati e sul controllo Prestazioni: - 14 cicli di clock per 4 iterazioni - 12/4 = 3 cicli di clock per operazioni su vettore per 1 iterazione - 2 cicli di clock per overhead del loop per 4 iterazioni - CPI = 14/14 = 1 lw $t1, -4($s1) lw $t2, -8($s1) lw $t3, -12($s1) add $t1, $t1, $s2 add $t2, $t2, $s2 add $t3, $t3, $s2 sw $t1, -4($s1) addi $s1, $s1, -16 sw $t2, 8($s1) sw $t3, 4($s1) AAC - Valeria Cardellini, A.A. 2007/08 20 Srotolamento del ciclo: esempio (7) Scheduling su pipeline MIPS di tipo statico two-issue Istruzione ALU o branch addi $s1, $s1, -16 add $t1, $t1, $s2 add $t2, $t2, $s2 add $t3, $t3, $s2 Prestazioni: - 8 cicli per 4 iterazioni - 8/4 = 2 cicli per iterazione - CPI = 8/14 = 0.57 Istruzione load o store lw $t1, 12($s1) lw $t2, 8($s1) lw $t3, 4($s1) sw $t0, 16($s1) sw $t1, 12($s1) sw $t2, 8($s1) sw $t3, 4($s1) Ciclo di clock AAC - Valeria Cardellini, A.A. 2007/08 21 1 2 3 4 5 6 7 8 Software pipelining Assumiamo che un ciclo presenti delle istruzioni indipendenti in diverse iterazioni (evidenziate in rosso) Softwarepipelined iteration Iteration 0 Iteration 1 Iteration 2 Iteration 3 Iteration 4 E possibile riorganizzare il ciclo in un nuovo ciclo tale che ciascuna nuova iterazione esegua istruzioni appartenenti ad iterazioni diverse del ciclo originale AAC - Valeria Cardellini, A.A. 2007/08 22 it. i it. i+1 it. i+2 Software pipelining: esempio sw $t4, 0($s1) sw $t4, 0($s1) sw $t4, 0($s1) sw $t4, 0($s1) sw $t4, 8($s1) AAC - Valeria Cardellini, A.A. 2007/08 23

Software pipelining: esempio (2) Analogia con il pipelining nel processore: prologo Prologo (prima del loop): lw $t0, -4($s1) addi $s1, $s1, -8 L: istruzione lw A: istruzione add S: istruzione sw epilogo Epilogo (dopo il loop): sw $t0, 4($s1) Speculazione del compilatore Tecniche come il loop unrolling ed il software pipelining possono essere usate per aumentare l ILP quando il comportamento dei salti è facilmente predicibile a tempo di compilazione Per evitare che le dipendenze sul controllo limitino l ILP, è possibile estendere l insieme di istruzioni per includere istruzioni predicate o condizionali Esecuzione predicata o condizionale L esecuzione predicata è un insieme di tecniche che convertono le dipendenze di controllo in dipendenze di dati Il compilatore ha un alternativa ai salti condizionati L esecuzione predicata implica una forma di esecuzione condizionale di istruzioni basata su una guardia booleana AAC - Valeria Cardellini, A.A. 2007/08 24 AAC - Valeria Cardellini, A.A. 2007/08 25 Esecuzione predicata L istruzione fa riferimento ad una condizione, che viene valutata come parte dell esecuzione dell istruzione Condizione vera: l istruzione viene eseguita normalmente Condizione falsa: l istruzione continua come se fosse Istruzione predicata: (p) op rd, r1, r2 Esempio: conversione if bnez r4 add r1, r2, r3 p = cmp(r4,0) (p) add r1, r2, r3 VLIW vs EPIC Approccio VLIW (Very Long Instruction Word) Formato fisso dei campi delle operazioni nel bundle Parallelismo implicito tra operazioni nel bundle Approccio EPIC (Explicitly Parallel instruction Computer) Variante dell approccio VLIW Seconda generazione VLIW? Maggiore flessibilità nel formato dell istruzione Il compilatore indica quando un istruzione non può essere eseguita in parallelo con i suoi successori lw r6, 0(r5) (p) lw r6, 0(r5) AAC - Valeria Cardellini, A.A. 2007/08 26 AAC - Valeria Cardellini, A.A. 2007/08 27

La soluzione Itanium Esempi di architetture multiple-issue issue Obiettivo: spostare la complessità fuori dalla logica del processore e portarla dentro il compilatore L Itanium (Itanium I e II) è il primo processore Intel a 64 bit (IA-64); basato sull approccio EPIC Incompatibile con IA-32 Soluzione: nei chip Itanium un emulatore hardware che traduce le istruzioni IA-32 in istruzioni VLIW Elevato numero di registri 128 registri interi a 64 bit, 128 registri in virgola mobile a 82 bit, 8 registri speciali per branch, 64 registri di condizione ad 1 bit Pipeline di larghezza 6, con profondità 10 Risorse funzionali 4 unità su interi, 4 unità su interi multimediali (MMX), 2 unità load/store, 3 unità di salto, 4 unità floating point AAC - Valeria Cardellini, A.A. 2007/08 29 La soluzione Itanium (2) Il compilatore ottimizza a livello globale Supporto hw per ottimizzazioni dinamiche a run time, così da garantire massimo throughput Ampio uso di speculazione ed esecuzione predicata Es.: istruzione di load avanzata, con un supporto per controllare la presenza di alias che possono invalidare la load speculativa Gruppo di istruzioni Sequenza di istruzioni consecutive senza dipendenze sui dati nei registri Istruzioni nel gruppo eseguibili in parallelo Se esistono sufficienti risorse funzionali e se sono preservate le dipendenze in memoria Lunghezza arbitraria del gruppo di istruzioni Il compilatore deve indicare il confine tra due gruppi consecutivi (stop) Le istruzioni IA-64 sono raggruppate in bundle di 128 bit Ciascun bundle contiene un campo template (di 5 bit) e 3 istruzioni (da 41 bit ciascuna) Il template specifica le risorse funzionali necessarie all esecuzione delle istruzioni nel bundle AAC - Valeria Cardellini, A.A. 2007/08 31 AAC - Valeria Cardellini, A.A. 2007/08 30 La soluzione Pentium 4 Nella micro-architettura del Pentium 4 (NetBurst) le istruzioni IA-32 vengono tradotte in microistruzioni (simili ad istruzioni RISC), dette micro-operazioni nella terminologia Intel Uso di trace cache (una cache istruzioni) per mantenere memorizzate le micro-operazioni che implementano una data istruzione IA-32 Una volta decodificata l istruzione IA-32, non sarà più necessario ritradurla in micro-operazioni, ma si potranno ottenere le microoperazioni ad essa corrispondenti direttamente dalla trace cache Nel caso in cui di istruzioni IA-32 complesse (che richiedono più di 3 micro-operazioni), viene usata una ROM Le micro-operazioni sono eseguite da una pipeline sofisticata, con scheduling dinamico e speculazione Esecuzione di 3 micro-operazioni per ciclo di clock Soluzioni adottate per massimizzare le prestazioni: Multiple issue dinamico e superpipelining

Micro-architettura del Pentium 4 Pipeline del Pentium 4 Front end Out-of-order control Circa 20 cicli di clock per un istruzioni tipica Il numero di cicli di clock può variare in base allo scheduling dinamico e al tipo di micro-operazione 7 unità funzionali Pipeline molto profonda 20 stadi nei primi core Con il core Prescott (commercializzato dal 2004 fino a fine 2005, frequenza di clock fino a 3,8 GHz) ulteriore aumento del numero di stadi della pipeline (da 20 a 31) AAC - Valeria Cardellini, A.A. 2007/08 32 AAC - Valeria Cardellini, A.A. 2007/08 33 Speculazione nel Pentium 4 Esecuzione fuori ordine speculativa In grado di vedere nella pipeline fino a 126 istruzioni, di cui 48 load e 24 store Predizione dei salti Avviene in due livelli Prima del prefetch e decodifica dell istruzione IA-32 Branch Target Buffer da 4K entry (L1 BTB) Durante l uso della trace cache (Trace BTB) Branch Target Buffer da 512 entry Predizione con tecniche sia statiche che dinamiche La soluzione Pentium M Processore Intel usato nella tecnologia Centrino Perché ha prestazioni confrontabili con quelle del Pentium 4, sebbene operi ad una frequenza di clock inferiore? Per quanto riguarda il pipelining Riduzione del numero di stadi della pipeline Tecniche di predizione dei salti più sofisticate L Intel Core (la micro-architettura multi-core di Intel) estende il Pentium M NetBurst sostituita per problemi di sovrariscaldamento e impossibilità di aumentare ulteriormente la frequenza di clock AAC - Valeria Cardellini, A.A. 2007/08 34 AAC - Valeria Cardellini, A.A. 2007/08 35