CPU pipeline 4: le CPU moderne

Documenti analoghi
CPU pipeline 4: le CPU moderne

Calcolatori Elettronici

CPU. Maurizio Palesi

Hazard sul controllo. Sommario

Aumentare il parallelismo a livello di istruzione (2)

Tecniche di parallelismo, processori RISC

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

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

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

C. P. U. MEMORIA CENTRALE

L architettura di riferimento

Architettura di un calcolatore: introduzione

Aumentare il parallelismo a livello di istruzione (1)

Laboratorio di Informatica

Struttura del calcolatore

Esame di INFORMATICA

Architettura hardware

Architettura dei calcolatori I parte Introduzione, CPU

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

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

Architettura del calcolatore

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

CALCOLATORI ELETTRONICI 29 giugno 2011

L unità di controllo di CPU multi-ciclo

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

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

CALCOLATORI ELETTRONICI 29 giugno 2010

Schedulazione dinamica. Elettronica dei Calcolatori 1

Parte II.2 Elaboratore

La memoria centrale (RAM)

Pronto Esecuzione Attesa Terminazione

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

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

Lezione 7 Sommatori e Moltiplicatori

Lezione n.19 Processori RISC e CISC

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

La macchina programmata Instruction Set Architecture (1)

Fondamenti di informatica: un po di storia

Testi di Esercizi e Quesiti 1

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

Corso di Sistemi di Elaborazione delle informazioni

Sistema operativo: Gestione della memoria

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

Calcolatori Elettronici

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

Gestione della memoria. Paginazione Segmentazione Segmentazione con paginazione

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

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

Il Processore: i registri

CALCOLATORI ELETTRONICI

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

Unità Periferiche. Rete Di Controllo

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

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

(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)

Calcolo numerico e programmazione Architettura dei calcolatori

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 UN PERSONAL COMPUTER

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

Esercitazione sulle CPU pipeline

Microarchitettura dei processori per Pc

1. Che cos è la multiprogrammazione? Si può realizzare su un sistema monoprocessore? 2. Quali sono i servizi offerti dai sistemi operativi?

CALCOLATORI ELETTRONICI 31 marzo 2015

PLC Programmable Logic Controller

Architettura dei calcolatori II parte Memorie

Calcolatori Elettronici. La memoria gerarchica La memoria virtuale

SISTEMI DI ELABORAZIONE DELLE INFORMAZIONI

Architettura di tipo registro-registro (load/store)

Sistemi Operativi mod. B. Sistemi Operativi mod. B A B C A B C P P P P P P < P 1, >

Calcolatori Elettronici

MODELLO DLX IN UNISIM

Introduzione alle tecnologie informatiche. Strumenti mentali per il futuro

Flip-flop, registri, la macchina a stati finiti

Informatica di Base - 6 c.f.u.

INCREMENTO DELLE PRESTAZIONI DI UN PROCESSORE

FONDAMENTI di INFORMATICA L. Mezzalira

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

Università degli Studi di Cassino e del Lazio Meridionale

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

L architettura del calcolatore (Prima parte)

CALCOLATORI ELETTRONICI 15 aprile 2014

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

Transcript:

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/17 Sommario Cenni sulle pipeline moderne Concetti generali Architettura MIPS Architetture INTEL L 25 2/17 1

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 3/17 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 4/17 2

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 5/17 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 6/17 3

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 7/17 Pipeline Superscalari: MIPS MIPS: pipeline superscalare Duplicate le unità funzionali (e.g. ALU e ALUfp) per eseguire più istruzioni in parallelo. Ottengo più di 1 istruzione per ciclo di clock: N > 1 instrution/cc MIPS: Register File: 4 porte di lettura, 2 porte di scrittura, 2 ALU (general purpose e base+offset) L 25 8/17 4

Pipeline: processori INTEL Esecuzione speculativa (Intel 80x86 dal Pentium) scheduling dinamico predizione dei salti Dal Pentium 4: architettura super-scalare super-pipeline L 25 9/17 Pipeline PentiumPro / PowerPC 604 L 25 10/17 5

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 Può fornire in uscita più istruzioni in un ciclo di clock. L unità di consegna tiene traccia di tutte le istruzioni pendenti all'interno del buffer di riordino. L 25 11/17 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 12/17 6

LA CPU del Pentium 4 Fig. 14.7 Stallings L 25 13/17 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 14/17 7

Pipeline del Pentium 4: Front end Le istruzioni passano dalla cache primaria al buffer L2 (64 byte). A questo stadio 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 15/17 Pipeline del Pentium 4: Trace cache Riordino locale del codice in modo da evitare 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 16/17 8

Pipeline del Pentium 4: Esecuzione Elemento centrale è il Reorder Buffer o Scheduler 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 17/17 9