CPU pipeline 4: le CPU moderne



Похожие документы
CPU pipeline 4: le CPU moderne

Calcolatori Elettronici

CPU. Maurizio Palesi

Hazard sul controllo. Sommario

Corso di Calcolatori Elettronici I A.A Il processore Lezione 18

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

Aumentare il parallelismo a livello di istruzione (2)

Tecniche di parallelismo, processori RISC

L architettura di riferimento

Struttura del calcolatore

C. P. U. MEMORIA CENTRALE

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

Architettura del calcolatore

Architettura di un calcolatore: introduzione

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

Schedulazione dinamica. Elettronica dei Calcolatori 1

CALCOLATORI ELETTRONICI 29 giugno 2010

L unità di controllo di CPU multi-ciclo

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

Laboratorio di Informatica

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

Lezione n.19 Processori RISC e CISC

Calcolatori Elettronici

CALCOLATORI ELETTRONICI 29 giugno 2011

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

Aumentare il parallelismo a livello di istruzione (1)

Il Sistema Operativo. C. Marrocco. Università degli Studi di Cassino

Architettura dei calcolatori I parte Introduzione, CPU

Architettura hardware

Esame di INFORMATICA

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

Testi di Esercizi e Quesiti 1

Fondamenti di informatica: un po di storia

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

Architetture CISC e RISC

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

SISTEMI DI ELABORAZIONE DELLE INFORMAZIONI

Corso di Sistemi Operativi Ingegneria Elettronica e Informatica prof. Rocco Aversa. Raccolta prove scritte. Prova scritta

Architettura dei computer

Introduzione alle tecnologie informatiche. Strumenti mentali per il futuro

Architettura di tipo registro-registro (load/store)

Università degli Studi di Cassino e del Lazio Meridionale

Parte II.2 Elaboratore

INFORMATICA CORSO DI INFORMATICA DI BASE ANNO ACCADEMICO 2015/2016 DOCENTE: SARRANTONIO ARTURO

CALCOLATORI ELETTRONICI 31 marzo 2015

(1) - - (4) R4 = R7 * R7 (4) (2) (3) 5 - (4) rinviata perché in WAW con (3) 6 (3) e (4) ritirabili ma attendono il completamento di (2) (2) (3) (4)

CALCOLATORI ELETTRONICI

CALCOLATORI ELETTRONICI 15 aprile 2014

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

Scheduling della CPU. Sistemi multiprocessori e real time Metodi di valutazione Esempi: Solaris 2 Windows 2000 Linux

MODELLO DLX IN UNISIM

ARCHITETTURA DELL ELABORATORE

La memoria centrale (RAM)

Il Processore: i registri

Lezione 3: Architettura del calcolatore

FONDAMENTI di INFORMATICA L. Mezzalira

La macchina programmata Instruction Set Architecture (1)

ARCHITETTURE MICROPROGRAMMATE. 1. Necessità di un architettura microprogrammata 1. Cos è un architettura microprogrammata? 4

Pronto Esecuzione Attesa Terminazione

Sistema operativo: Gestione della memoria

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

Esercitazione sulle CPU pipeline

Architettura degli elaboratori (A)

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

Architetture CISC e RISC. Misura della potenza di calcolo. Cos'è la potenza di calcolo. Prestazioni della CPU. Fondamenti di Informatica

PROVA INTRACORSO TRACCIA A Pagina 1 di 6

La Macchina Virtuale

Il software di base comprende l insieme dei programmi predisposti per un uso efficace ed efficiente del computer.

Calcolatori Elettronici

Lezione 7 Sommatori e Moltiplicatori

Sistemi Operativi GESTIONE DELLA MEMORIA CENTRALE. D. Talia - UNICAL. Sistemi Operativi 6.1

Corso di Sistemi di Elaborazione delle informazioni

Unità Periferiche. Rete Di Controllo

La microarchitettura. Didattica della strumentazione digitale e sistemi a microprocessore anno accademico pagina 1

Sistemi Operativi II Corso di Laurea in Ingegneria Informatica

Sistemi superscalari. Contenuto della lezione. Unità multifunzionali parallele Architetture superscalari Esecuzione fuori ordine

Hardware di un Computer

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

MODELLO CLIENT/SERVER. Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena

Calcolatori Elettronici Parte VI: Microarchitetture, Cache e Pipeline

Microarchitettura dei processori per Pc

Flip-flop, registri, la macchina a stati finiti

Lezione 1: L architettura LC-3 Laboratorio di Elementi di Architettura e Sistemi Operativi 10 Marzo 2014

Dispensa di Informatica I.1

ARCHITETTURA DI UN PERSONAL COMPUTER

Calcolo numerico e programmazione Architettura dei calcolatori

Транскрипт:

Architettura degli Elaboratori e delle Reti Lezione 25 CPU pipeline 4: le CPU moderne Proff. A. Borghese, F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano L 25 1/16 Pipeline più spinte! Superpipelining: pipelines più lunghe " Es: Digital DEC Alpha: 5-7 stadi! Architettura Superscalare (statico/dinamico): più di una istruzione viene iniziata nello stesso ciclo di pipeline " Scheduling statico: parallelismo definito a priori dal programmatore / compilatore (IA-64) " Scheduling dinamico: l hardware cerca di individuare le istruzioni pronte per essere eseguite (MIPS, Pentium 4)! è possibile l esecuzione in ordine diverso da quello dato.! è possibile avere un unica istruzione per più dati (architettura SIMD: Single Instruction Multiple Data)! solitamente combinato con architettura superscalare " Intel Pentium IV: Tempi di esecuzione della ALU sono la metà del periodo di clock fino a 126 istruzioni contemporanee L 25 2/16

Superpipeline! Pipeline più lunghe: teoricamente guadagno in velocità proporzionale al n. di stadi! Problemi: " Criticità sui dati: stalli più frequenti. " Criticità sul controllo: numero maggiore di stadi di cui annullare l esecuzione. " Maggior numero di registri # maggiori dimensioni chip # il clock non si riduce con il numero degli stadi L 25 3/16 Schedulazione statica: IA-64! Scheduling statico: parallelismo definito a priori dall utente (programmatore / compilatore)! IA-64: Instruction-level parallelism (ILP) implementato esplicitamente " EPIC: Explicitly Parallel Instruction Computer! Le istruzioni sono raggruppate in bundles eseguiti in parallelo " 128 registri accedibili a finestre (in parallelo) " Istruzione: 128 bit = 5 bit: template field + 3 x 41 bit: 3 istruzioni in parallelo! Predication: trasformazione di branch in predicati: If (p) then (statement 1) else (statement 2) " (p) # statement 1 # statements 1 e 2 possono (~p) # statement 2 # essere parallelizzati! L 25 4/16

Pipeline con schedulazione dinamica! Esistono cammini paralleli per le diverse fasi dell istruzione (Exec/Mem)! Durante lo stallo eseguo istruzioni successive # supero gli stalli L 25 5/16 Schedulazione dinamica: Schedulazione Dinamica:! Fetch: Prelievo ed invio alla coda istruzioni! Decodifica: Conversione in microistruzioni " Valutazione criticità (branch)! Esecuzione: Le istruzioni vengono alla stazione di prenotazione corrispondente all unità funzionale richiesta (smistamento) " Un riferimento all istruzione viene inserito nel buffer di riordino. " Esecuzione vera e propria (calcolo) " Eventuali criticità portano a far attendere alcune istruzioni! Commit Unit: Riordino istruzioni in modo che terminino in modo sequenziale " Può fornire in uscita più itruzioni in un ciclo di clock. " Commit Unit tiene traccia di tutte le istruzioni pendenti. L 25 6/16

Pipeline Superscalari: MIPS MIPS R2000: pipeline classica R3000: " Register File a doppia banda:! 4 porte di lettura,! 2 porte di scrittura, " 2 ALU (general purpose e base+offset) R8000: pipeline superscalare " Duplicate le unità funzionali per eseguire più istruzioni in parallelo. " Ottengo più di 1 istruzione per ciclo di clock: N > 1 instrution/cc L 25 7/16 Pipeline: processori INTEL! Esecuzione speculativa (Intel 80x86 dal Pentium) " scheduling dinamico " predizione dei salti! Dal Pentium 4: " architettura super-scalare " super-pipeline L 25 8/16

Scheduling dinamico: PentiumPro IF ID Exec WB L 25 9/16 Pipeline PentiumPro: funzionamento! Fetch: Prelievo di 16 byte dalla MI ed invio alla coda istruzioni! Decodifica: Conversione in microistruzioni di lunghezza fisssa: 72 bit " In questa fase vengono valutate le branch (su un certo numero di istruzioni) attraverso una Branch Prediction Table di 512 elementi " Recupero operandi ed assegnazione registri replicati (rename buffer)! Esecuzione: Le istruzioni vengono alla stazione di prenotazione corrispondente all unità funzionale richiesta (smistamento) " Un riferimento all istruzione viene inserito nel buffer di riordino. " Esecuzione vera e propria (calcolo)! Riconsegna: Riordino istruzioni in modo che terminino in modo sequenziale " L unità di consegna tiene traccia di tutte le istruzioni pendenti all'interno del buffer di riordino. " Può fornire in uscita più istruzioni in un ciclo di clock. L 25 10/16

Esecuzione dell istruzione! Per considerare un istruzione serve spazio nel Buffer di riordino e nella stazione di prenotazione della pipeline richiesta! La CPU contiene registri duplicati " con più istruzioni in esecuzione, il registro destinazione potrebbe essere occupato # scrivo su un registro ausiliario: rename registers/buffers " In attesa che l unità di consegna dia il permesso di scrivere i registri effettivi! L'istruzione viene eseguita quando: " nella stazione di prenotazione ci sono tutti gli operandi, " l unità funzionale è libera.! L unità di consegna decide quando l istruzione è terminata " Se la predizione di un salto è scorretta, vengono scartate le istruzioni sbagliate dalle stazioni di prenotazione e dai buffer di riordino e liberati i registri interni L 25 11/16 Pipeline del Pentium 4! Fetch delle istruzioni della Memoria (Cache)! Decodifica: Ciascuna istruzione viene tradotta in una o più microistruzioni di lunghezza fissa (RISC)! Il processore esegue le micro-istruzioni in una pipeline superscalare a schedulazione dinamica! Il processore restituisce ai registri il risultato dell esecuzione delle micro-istruzioni relative alla stessa istruzione " rispettando l ordine di esecuzione delle microistruzioni Il Pentium 4 trasforma un ISA CISC in un ISA interno RISC costituito dalle micro-operazioni L 25 12/16

LA CPU del Pentium 4 Front End Trace cache Scheduling Execution Fig. 14.7 Stallings L 25 13/16 Pipeline del Pentium 4: Front end! Le istruzioni passano dalla cache primaria al buffer L2 (64 byte). " Qui vengono gestiti casi di missing ed i trasferimenti da cache! In parallelo i dati vengono caricati da cache al buffer dati L1 " Nel trasferimento da L1 ed L2 agiscono Branch Target Buffer e lookaside buffer che gestiscono le predizioni sulle branch! Inizia la fase Fetch e Decodifica che legge il numero di byte pari alla lunghezza dell istruzione! Il decoder traduce l istruzione in micro-operazioni (da 1 a 4): " Microistruzione: 118 bit, appartenenti ad un ISA RISC. L 25 14/16

Pipeline del Pentium 4: Trace cache Trace cache: organizzazione delle istruzioni in decodifica! Funzioni: " Riordino locale del codice, in modo da minimizzare le criticità! la pipeline ha 20 stadi. " Invio alla fase di esecuzione (Allocate e Renaming). " Istruzioni complesse (> 4 microistruzioni) vengono create in questa fase con una macchina a stati finiti! Implementata con una ROM + memoria L 25 15/16 Pipeline del Pentium 4: Esecuzione! Elemento centrale è il Reorder Buffer o Scheduler " È un buffer circolare può contenere fino a 126 micro-istruzioni " Contiene le micro-istruzioni con il loro stato, la presenza o assenza dei dati, per tutta la durata dell esecuzione. " Alloca i registri (traducendo i registri simbolici dell Assembly in uno dei 128 registri di pipeline). " Avvia alla coda di esecuzione l istruzione (coda per le lw/sw e coda per le altre istruzioni). " Lo scheduling avviene prendendo la prima istruzione che può essere eseguita nella coda. Dagli scheduler si può passare alle ALU in modi diversi.! La fase di esecuzione scrive poi i risultati nei registri o nella cache L1! C è una parte dedicata ai flag che vengono poi inviati alla BTB per predirre correttamente i salti. L 25 16/16