La pipeline. Sommario

Documenti analoghi
La pipeline. Sommario

Unità di controllo della pipeline

La pipeline. Sommario

La pipeline. Sommario

L unità di controllo di CPU a singolo ciclo

L unità di controllo di CPU a singolo ciclo

CPU pipeline hazards

L unità di controllo di CPU a singolo ciclo. Sommario

Gestione delle eccezioni (CPU multiciclo) La CPU pipeline

CPU multiciclo eccezioni CPU pipeline

Progetto CPU a singolo ciclo

CPU a ciclo multiplo

L unità di controllo di CPU multi-ciclo

CPU a ciclo multiplo

L'architettura del processore MIPS

CPU a singolo ciclo. Lezione 18. Sommario. Architettura degli Elaboratori e delle Reti. Proff. A. Borghese, F. Pedersini

Calcolatori Elettronici

CPU a singolo ciclo. Lezione 18. Sommario. Architettura degli Elaboratori e delle Reti

L unità di controllo di CPU multi-ciclo. Sommario

Progetto CPU a singolo ciclo

Pipeline criticità e forwarding

Stall on load e Hazard sul controllo

Architettura degli Elaboratori Lez. 8 CPU MIPS a 1 colpo di clock. Prof. Andrea Sterbini

Architettura dei calcolatori e sistemi operativi. Il processore pipeline Capitolo 4 P&H

Richiami sull architettura del processore MIPS a 32 bit

Pipelining: Unità di Elaborazione e di Controllo Barbara Masucci

CPU a singolo ciclo: l unità di controllo, esecuzione istruzioni tipo J

Una CPU multi-ciclo. Sommario

Architettura degli elaboratori - II Le architetture multi-ciclo

Richiami sull architettura del processore MIPS a 32 bit

Stall on load e Hazard sul controllo

CPU a ciclo multiplo: l unità di controllo

Architettura della CPU multi-ciclo

Esercitazione del 30/04/ Soluzioni

Architettura degli elaboratori CPU a ciclo singolo

Stall on load e Hazard sul controllo. Sommario

CPU a singolo ciclo: l unità di controllo, istruzioni tipo J

Il Processore: l Unità di Controllo Principale Barbara Masucci

Stall on load. Sommario

Problemi del ciclo singolo

Una CPU multi-ciclo. Sommario

Esercitazione del 10/05/ Soluzioni

Architettura degli elaboratori CPU a ciclo singolo

Calcolatori Elettronici B a.a. 2007/2008

CALCOLATORI ELETTRONICI 14 giugno 2010

Una CPU multi-ciclo. Sommario

Il processore: unità di elaborazione

CALCOLATORI ELETTRONICI 30 agosto 2010

La CPU a singolo ciclo

CALCOLATORI ELETTRONICI 9 settembre 2011

La CPU a singolo ciclo

Sommario. Gestione delle criticità sui dati nella pipeline. CPU con pipeline. Criticità nei dati. Hazard nei dati: soluzione tramite compilatore

CALCOLATORI ELETTRONICI 29 giugno 2015

Il pipelining: tecniche di base

Progettazione dell unità di elaborazioni dati e prestazioni. Il processore: unità di elaborazione. I passi per progettare un processore

CALCOLATORI ELETTRONICI 20 gennaio 2012

Calcolatori Elettronici B a.a. 2005/2006

CALCOLATORI ELETTRONICI 27 marzo 2018

Il pipelining: tecniche di base

Processore. Memoria I/O. Control (Parte di controllo) Datapath (Parte operativa)

Come si definisce il concetto di performance? Tempo di esecuzione di un programma. numero di task/transazioni eseguiti per unità di tempo

Linguaggio macchina e register file

La CPU pipeline. Principio intuitivo della pipe-line. Architettura degli Elaboratori e delle Reti. A. Borghese, F. Pedersini

Architettura dei calcolatori e sistemi operativi. Il processore Capitolo 4 P&H

CALCOLATORI ELETTRONICI 27 giugno 2017

Hazard e forwarding. Sommario

Hazard sul controllo. Sommario

Hazard sul controllo. Sommario

Processore. Memoria I/O. Control (Parte di controllo) Datapath (Parte operativa)

Classificazione dipendenze

Un quadro della situazione. Lezione 15 Il Set di Istruzioni (2) Le operazioni e gli operandi. Dove siamo nel corso. Cosa abbiamo fatto

Realizzazione a cicli di clock multipli

Un quadro della situazione. Lezione 14 Il Set di Istruzioni (2) Dove siamo nel corso. I principi di progetto visti finora. Cosa abbiamo fatto

ESERCIZIO 1 Riferimento: PROCESSORE PIPELINE e CAMPI REGISTRI INTER-STADIO

Esercitazione del 30/04/ Soluzioni

Architettura degli Elaboratori e Laboratorio. Matteo Manzali Università degli Studi di Ferrara Anno Accademico

Il set istruzioni di MIPS Modalità di indirizzamento. Proff. A. Borghese, F. Pedersini

Architettura dei calcolatori e sistemi operativi. Pipelining e Hazard Capitolo 4 P&H

Sia per la II prova intercorso che per le prove di esame è necessaria la PRENOTAZIONE

Calcolatori Elettronici B a.a. 2004/2005

Calcolatori Elettronici

Implementazione semplificata

Fasi (MIPS) Dove NPC è un registro temporaneo PC (program counter) è il registro IP (instruction pointer)

ESERCIZIO 1 Riferimento: PROCESSORE PIPELINE e CAMPI REGISTRI INTER-STADIO

Architettura degli Elaboratori

Cicli di clock e istruzioni

CALCOLATORI ELETTRONICI 9 gennaio 2013

Calcolatori Elettronici

Lezione 29 Il processore: unità di controllo (2)

CALCOLATORI ELETTRONICI 15 luglio 2014

CALCOLATORI ELETTRONICI 15 giugno 2015

Progetto CPU (ciclo singolo)

Progetto CPU (ciclo singolo) Salvatore Orlando

Il set istruzioni di MIPS Modalità di indirizzamento. Proff. A. Borghese, F. Pedersini

Esercitazione sulle CPU pipeline

Architettura degli Elaboratori Lez. 10 Esercizi su CPU MIPS a 1 ciclo di clock. Prof. Andrea Sterbini

Esercitazione del 05/05/ Soluzioni

Transcript:

La pipeline Prof. Alberto Borghese Dipartimento di Scienze dell Informazione alberto.borghese@unimi.it Università degli Studi di Milano Riferimento al Patterson edizione 5: 4.5 e 4.6 1/31 http:\\borghese.di.unimi.it\ Introduzione sulla pipeline Sommario Gli stadi della pipeline Rappresentazione del flusso di esecuzione in una pipeline 2/31 http:\\borghese.di.unimi.it\ 1

The control and data path ALUs 3/31 http:\\borghese.di.unimi.it\ Osservazioni Il ciclo di esecuzione di un istruzione si compie in un unico ciclo di clock. Ogni unità funzionale può essere utilizzata 1 sola volta. Duplicazione Memoria: Memoria dati e memoria istruzioni. Triplicazione ALU: 3 ALU: 2 sommatori + 1 general purpose. Il periodo del clock è determinato dal cammino critico dell istruzione più lunga: lw. Utilizzare un clock per ogni fase di esecuzione porterebbe ad un tempo di esecuzione variabile per le diverse istruzioni: beq = 3 cicli di clock, aritmetche e sw, 4 cicli di clock, lw 5 cicli di clock. Si può fare di meglio => pipeline. 4/31 http:\\borghese.di.unimi.it\ 2

Intuizione della pipeline Anna, Bruno, Carla e Dario devono fare il bucato. Devono lavare, asciugare, piegare e mettere via ciascuno un carico di biancheria (4 stadi per la lavorazione del bucato) La lavatrice richiede 30 minuti. L asciugatrice richiede 30 minuti. Stirare richiede 30 minuti. Piegare e mettere via richiede 30 minuti. 5/31 http:\\borghese.di.unimi.it\ La lavanderia sequenziale Anna Bruno Carla Dario In totale vengono richieste 8 ore. 6/31 http:\\borghese.di.unimi.it\ 3

Lavanderia con pipeline Anna Bruno Carla Dario In totale vengono richieste 3.5 ore. 7/31 http:\\borghese.di.unimi.it\ Osservazioni sulla pipeline Il tempo di ciascuna operazione elementare non viene ridotto. Gli stadi della pipe-line lavorano in contemporanea perché utilizzano unità funzionali differente. Le unità funzionali lavorano sequenzialmente (in passi successivi) su istruzioni successive. Tutto il materiale che serve per il passo successivo viene prelevato dal passo precedente. Viene aumentato il throughput. 8/31 http:\\borghese.di.unimi.it\ 4

Introduzione sulla pipeline Sommario Gli stadi della pipeline Rappresentazione del flusso di esecuzione in una pipeline 9/31 http:\\borghese.di.unimi.it\ Ciclo di esecuzione di un istruzione MIPS Prelievo istruzione (fase di fetch) Decodifica Calcolo Lettura / scrittura Write back Le istruzioni richiedono 5 passi 5 stadi della pipe-line 10/31 http:\\borghese.di.unimi.it\ 5

Schema generale CPU a ciclo singolo Istruzione [31-26] UC R RI ALUs 11/31 http:\\borghese.di.unimi.it\ Passo esecuzione ALU (+4) Mem Instr. Register File R ALU (Pc+Offset) ALU Mem Dati Register File W Fase fetch Yes Yes N0 N0 N0 N0 N0 Decodifica N0 N0 Yes N0 N0 N0 N0 Exe beq N0 N0 N0 Yes Yes (diff) N0 N0 Exe j N0 N0 N0 N0 N0 N0 N0 Exe R N0 N0 N0 N0 Yes N0 N0 Exe sw / lw N0 N0 N0 N0 Yes N0 N0 Mem lw/sw Mem altre N0 N0 N0 N0 N0 Yes R/W N0 N0 N0 N0 N0 N0 N0 WB R N0 N0 N0 N0 N0 N0 Yes WB lw N0 N0 N0 N0 N0 N0 Yes WB sw/beq N0 N0 N0 N0 N0 N0 N0 N0 12/31 http:\\borghese.di.unimi.it\ 6

I 5 stadi della pipeline Tra due cicli sono posti dei registri denominati registri di pipe-line. IF/ID ID/EX EX/MEM MEM/WB Nomi degli stadi di pipeline: IF: Prelievo istruzione (Instruction fetch) ID: Decodifica istruzione (+lettura register file) EX: Esecuzione MEM: Accesso a memoria (lettura/scrittura) WB: Scrittura del register file NB Uno stadio inizia il suo lavoro quando il clock va basso e trasferisce in quello stadio l elaborazione effettuata dallo stadio precedente 13/31 http:\\borghese.di.unimi.it\ CPU con pipeline Registri di pipeline 14/31 http:\\borghese.di.unimi.it\ 7

Il ruolo dei registri Ciascuno stadio produce un risultato. La parte di risultato che serve agli stadi successivi deve essere memorizzata in un registro. Il registro mantiene l informazione anche se lo stadio precedente riutilizza l unità funzionale. Esempio: l istruzione letta viene salvata nel registro IF/ID (cf. Instruction Register), nella fase IF posso leggere un altra istruzione. Il registro mantiene tutte le informazioni che servono per l esecuzione dello stadio presente fino all esecuzione della fase di WEB. Ad esempio il numero del registro di scrittura viene selezionato nella fase EX e viene portato avanti fino alla fase di WB. 15/31 http:\\borghese.di.unimi.it\ La UC della CPU con pipeline Definizione dei segnali di controllo per ogni stadio, per ogni istruzione. Definizione dell UC in grado di generare correttamente questi segnali. 16/31 http:\\borghese.di.unimi.it\ 8

Segnali di controllo su 1 bit Nome segnale Effetto quando è negato Effetto quando è affermato RegDst Il numero del registro destinazione proviene dal campo rt (R2, bit 20-16) Il numero del registro destinazione proviene dal campo rd (bit 15-11) RegWrite Nessuno Nel registro specificato all ingresso registro scritto del Register File, viene scritto il valore presente all ingresso Dato Scritto ALUSrc Branch Il secondo operando della ALU proviene dalla seconda uscita in lettura del Register File Il valore del PC viene sostituito dall uscita del sommatore che calcola PC+4 (condizionato all uscita di ALU) Il secondo operando della ALU è la versione estesa (con segno) del campo offset Il valore del PC viene sostituito dall uscita del sommatore che calcola la destinazione del salto (condizionato all uscita di ALU) MemRead Nessuno Il contenuto della cella di memoria dati indirizzata dal MAR è posto nel MDR MemWrite Nessuno Il contenuto in ingresso al MDR, viene memorizzato nella cella il cui indirizzo è caricato nel MAR MemtoReg Il valore inviato all ingresso Dato al Register File proviene dalla ALU Il valore inviato all ingresso Dato al Register File proviene dalla memoria Scrittura PC e scrittura dei registri di pipeline ad ogni fronte di clock (ad ogni stadio). 17/31 http:\\borghese.di.unimi.it\ Osservazioni Il contenuto di rt ed il numero di scrittura nel Register File (rd) vengono portati attraverso i vari stadi. Nella fese di fetch e di decodifica non esistono segnali di controllo particolari. I segnali di controllo particolari (legati alle diverse istruzioni) si possono così raggruppare: Exec Memory WB Istruzione Reg Dst ALUs1 ALUs0 ALU Src Branch Mem Read Mem Write Reg Write Mem2 Reg Format-R 1 1 0 0 0 0 0 1 0 lw 0 0 0 1 0 1 0 1 1 sw X 0 0 1 0 0 1 0 X beq X 0 1 0 1 0 0 0 X 18/31 http:\\borghese.di.unimi.it\ 9

Generazione dei segnali di controllo I segnali di controllo vengono generati nello stadio di decodifica e propagati. Viene separata la fase di generazione dei segnali di controllo dalla fase di utilizzo. 19/31 http:\\borghese.di.unimi.it\ UC per pipeline ALUs 20/31 http:\\borghese.di.unimi.it\ 10

Introduzione sulla pipeline Sommario Gli stadi della pipeline Rappresentazione del flusso di esecuzione in una pipeline 21/31 http:\\borghese.di.unimi.it\ Rappresentazione convenzionale della pipeline 22/31 http:\\borghese.di.unimi.it\ 11

MIPS e pipeline Fase di fetch semplificata: tutte le istruzioni hanno la stessa lunghezza. Numero ridotto di formati, i registri sono sempre nella stessa posizione (si può decodificare il codice operativo e leggere i registri). Non ci sono operazioni sui dati in memoria: se utilizzo la ALU per effettuare dei calcoli, non dovrò accedere alla memoria. Se utilizzo la ALU per calcolare l indirizzo, accederò alla memoria nell istante successivo. Allineamento delle istruzioni al byte. Su architetture CISC la pipeline sarebbe più complicata..., ma vedremo che le gerarchie di memoria aiutano a semplificare il problema. 23/31 http:\\borghese.di.unimi.it\ I vantaggi della pipeline 24/31 http:\\borghese.di.unimi.it\ 12

Visualizzazione grafica di una pipeline 25/31 http:\\borghese.di.unimi.it\ Rappresentazione grafica di una istruzione di add in pipeline Esempio: add $s0, $t0, $t1 I rettangoli grigi a destra indicano lettura, a sinistra indicano scrittura. I componenti bianchi, indicano il loro non utilizzo. Esempio: lw $t0, 20($t1) Esempio: sw $s0, 20($s1) 26/31 http:\\borghese.di.unimi.it\ 13

Miglioramento delle prestazioni Il miglioramento massimo è una riduzione del tempo di un fattore pari al numero di stadi della pipe-line. Nell esempio precedente (2 istruzioni di lw), il tempo richiesto con la pipe-line è di 12ns contro i 20ns senza pipe-line. Il miglioramento teorico, prevedrebbe 4ns. Allora? Throughput!! Miglioramento relativo al lavoro globale (con pipe-line senza stalli, 2ns ad istruzione) 27/31 http:\\borghese.di.unimi.it\ CPU con pipeline ALUs 28/31 http:\\borghese.di.unimi.it\ 14

Esempio di esecuzione Cosa si trova nei diversi cicli di clock nella pipeline durante l esecuzione di queste istruzioni? lw $s0, 20($s1) sub $t0, $t1, $t2 add $t1, $t2, $t3 beq $s1, $s2, 20 sw $t2, 36($t3) or $t6, $s0, $s1 NB Occorre specificare il contenuto della parte master e slave dei registri di pipeline. 29/31 http:\\borghese.di.unimi.it\ Esempio di esecuzione Cosa si trova nella pipeline durante l esecuzione di questo segmento di codice (dati + controllo)? 0x4000 lw $t1, 24($t2) 0x4004 beq $t1, $s2, 20 0x4008 add $s0, $t1, $s2 0x400C sw $t2, 36($t1) 0x4010 sub $t0, $t1, $t2 0x4014 or $s3, $t4, $t5 NB Occorre specificare il contenuto della parte master e slave dei registri di pipeline. I segnali di controllo fluiscono anch essi da sinistra verso destra. Il segnale di scrittura nel register file viene generato nella fase ID ma viene consumato nella fase WB. Il segnale di scrittura nel register file proviene dalla fase di WB. 30/31 http:\\borghese.di.unimi.it\ 15

Introduzione sulla pipeline Sommario Gli stadi della pipeline Rappresentazione del flusso di esecuzione in una pipeline 31/31 http:\\borghese.di.unimi.it\ 16