Una CPU multi-ciclo. Sommario

Documenti analoghi
Una CPU multi-ciclo. Sommario

Una CPU multi-ciclo. Sommario

Architettura degli elaboratori - II Le architetture multi-ciclo

CPU a ciclo multiplo

CPU a ciclo multiplo

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

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

Architettura degli elaboratori CPU a ciclo singolo

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

Progetto CPU a singolo ciclo

L unità di controllo di CPU multi-ciclo

Progetto CPU a singolo ciclo

L'architettura del processore MIPS

L unità di controllo di CPU a singolo ciclo

La CPU a singolo ciclo

Architettura degli elaboratori CPU a ciclo singolo

Stall on load e Hazard sul controllo

Richiami sull architettura del processore MIPS a 32 bit

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

CPU a ciclo multiplo: l unità di controllo

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

CPU pipeline hazards

Richiami sull architettura del processore MIPS a 32 bit

La pipeline. Sommario

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

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

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

Il processore: unità di elaborazione

Esercitazione del 05/05/ Soluzioni

Linguaggio macchina e register file

Esercitazione del 04/05/2006 Soluzioni

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

Architettura del processore MIPS

Stall on load. Sommario

Hazard sul controllo. Sommario

Elementi base per la realizzazione dell unità di calcolo

Esercitazione del 30/04/ Soluzioni

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

Progetto CPU (ciclo singolo) Salvatore Orlando

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

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

Gestione delle eccezioni (CPU multiciclo) La CPU pipeline

Processore: Datapath & Control. Progetto CPU (ciclo singolo) Rivediamo i formati delle istruzioni. ISA di un MIPS-lite

CPU multiciclo eccezioni CPU pipeline

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

Il Processore: l Unità di Controllo Principale Barbara Masucci

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

Calcolatori Elettronici

Esercitazione del 30/04/ Soluzioni

Architettura degli Elaboratori

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

Il processore: unità di controllo

Le memorie Cache. Sommario

Le etichette nei programmi. Istruzioni di branch: beq. Istruzioni di branch: bne. Istruzioni di jump: j

Architettura degli Elaboratori B. Introduzione al corso. Componenti di un calcolatore convenzionale. (ciclo singolo) Progetto CPU. Contenuti del corso

Architettura degli Elaboratori B Introduzione al corso

CALCOLATORI ELETTRONICI 30 agosto 2010

Architettura degli elaboratori - II Introduzione

Fetch Decode Execute Program Counter controllare esegue prossima

CALCOLATORI ELETTRONICI 29 giugno 2015

Calcolatori Elettronici B a.a. 2004/2005

Calcolo durata ciclo. Prestazioni Singolo Ciclo. Prestazioni singolo ciclo. Durata Ciclo Variabile

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

Lezione 17 Il Set di Istruzioni (3)

Calcolatori Elettronici

Hazard sul controllo. Sommario

CALCOLATORI ELETTRONICI 27 giugno 2017

Esercitazione del 10/05/ Soluzioni

CALCOLATORI ELETTRONICI 9 settembre 2011

Un quadro della situazione. Lezione 15 Il Set di Istruzioni (3) Dove siamo nel corso. Organizzazione della lezione. Cosa abbiamo fatto

Un quadro della situazione. Cosa abbiamo fatto. Lezione 30 Valutazione delle Prestazioni. Dove stiamo andando.. Perché:

Architettura degli Elaboratori

Le memorie Cache a mappatura diretta

Architettura degli elaboratori - II Introduzione

ALU + Bistabili. Sommario

L architettura del calcolatore (Seconda parte)

ALU + Bistabili. Prof. Alberto Borghese Dipartimento di Informatica Università degli Studi di Milano

Istruzioni di trasferimento dati

Il linguaggio Assembly. Architettura degli Elaboratori e delle Reti Turno I

Calcolatori Elettronici B a.a. 2007/2008

Calcolatori Elettronici B a.a. 2006/2007

Un processore sequenziale

Hazard e forwarding. Sommario

Lezione 20. della CPU MIPS. Prof. Federico Pedersini Dipartimento di Informatica Università degli Studi di Milano

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

ISA e linguaggio macchina

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

Linguaggio Assembly e linguaggio macchina

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

Università degli Studi di Cassino

CALCOLATORI ELETTRONICI 15 luglio 2014

Università degli Studi di Cassino

Linguaggio Assembly e linguaggio macchina

Architettura del calcolatore (Seconda parte)

Linguaggio macchina: utilizzo di costanti, metodi di indirizzamento

Realizzazione a cicli di clock multipli

Transcript:

Una CPU multi-ciclo Prof. lberto orghese Dipartimento di Scienze dell Informazione borghese@dsi.unimi.it Università degli Studi di Milano iferimento sul Patterson: Sezioni 5.5 e 5.6 1/30 http:\\homes.dsi.unimi.it\ borghese Sommario I problemi della UC a singolo ciclo di clock Principi ispiratori di una CPU multi-ciclo. Le fasi di fetch e decodifica. Esecuzione multi-ciclo delle istruzioni Esecuzione multi-ciclo delle istruzioni lw/sw. Esecuzione delle istruzioni di salto. nalisi i della CPU multi-ciclo. il 2/30 http:\\homes.dsi.unimi.it\ borghese 1

Ciclo di esecuzione di un istruzione Prelievo istruzione (fase di fetch) Decodifica Calcolo Memoria rite ack 3/30 http:\\homes.dsi.unimi.it\ borghese CPU +UC a Ciclo singolo Clk I T > Tempo necessario per eseguire il cammino critico 4/30 http:\\homes.dsi.unimi.it\ borghese 2

Problemi Duplicazione della Memoria e triplicazione della LU. Tuttavia le unità funzionali sono utilizzate in fasi diverse del ciclo di esecuzione di un istruzione (e.g. Memoria istruzioni in fase di fetch, Memoria dati in fase di Lettura/scrittura). Durata uguale per istruzioni che richiedono tempi molto diversi. Il clock deve essere impostato secondo il cammino critico. 5/30 http:\\homes.dsi.unimi.it\ borghese Esecuzione in un singolo ciclo di clock ssumiamo: memoria (2ns), LU e sommatori (2ns), lettura/scrittura registri (1ns), decodifica (2ns), nessun ritardo, tempi trascurabili per gli altri elementi della CPU, componenti indipendenti possono lavorare in parallelo. Istruzione Memoria istruzioni Lettura registri Decodifica Operazione Memoria rite LU dati back Totale Tipo 2 2 2 0 1 7ns lw 2 2 2 2 1 9ns sw 2 2 2 2 0 8ns 1 3ns beq 2 2 2 0 0 6ns j 2 2 0 0 0 4ns La durata del ciclo di clock deve essere pari al percorso più lungo (cammino critico). Percorso più lungo dovuto ad istruzione di caricamento (lw) 6/30 http:\\homes.dsi.unimi.it\ borghese 3

Valutazione della prestazione della CPU a singolo ciclo Dipende dal programma. lw sw beq j fp fp Durata (add) (mul) Clock (max) Durata media Durata 9ns 8ns 6ns 4ns 7ns 12ns 20ns Caso I 24% 12% 18% 2% 44% 9ns 7.36ns Caso II 31% 21% 5% 2% 27% 7% 7% 20ns 8.98ns In ogni caso, un implementazione a clock singolo porta ad uno spreco di tempo notevole. 7/30 http:\\homes.dsi.unimi.it\ borghese Come gestire istruzioni di durata diversa? Quando è efficiente l implementazione a singolo ciclo? Clock di durata variabile è una soluzione? Non viene risolto il problema della duplicazione delle unità funzionali. 8/30 http:\\homes.dsi.unimi.it\ borghese 4

Sommario I problemi della UC a singolo ciclo di clock Principi ispiratori di una CPU multi-ciclo. Le fasi di fetch e decodifica. Esecuzione multi-ciclo delle istruzioni Esecuzione multi-ciclo delle istruzioni lw/sw. Esecuzione multi-ciclo delle istruzioni di salto. nalisi i della CPU multi-ciclo. il 9/30 http:\\homes.dsi.unimi.it\ borghese Caratteristiche CPU multi-ciclo Spezza l istruzione in più passi, dove ciascun passo impiega lo stesso tempo. Il clock non sincronizza più l intera istruzione ma solamente il singolo passo. Le istruzioni possono essere eseguite in un numero diverso di cicli di clock. Consente di riutilizzare le unità funzionali (in cicli di clock diversi). ichiede l aggiunta di H addizionali (registri di memoria temporanea). Questi devono memorizzare lo stato delle unità funzionali, cioè l informazione che può servire ai passi successivi e che rischia di essere sovrascritta dal riuso dell unità funzionale. L unità di controllo diventa una FSM. 10/30 http:\\homes.dsi.unimi.it\ borghese 5

Ciclo di esecuzione di un istruzione Prelievo istruzione (fase di fetch) Decodifica Calcolo Memoria rite ack Le istruzioni richiederanno da 3 a 5 cicli di clock 11/30 http:\\homes.dsi.unimi.it\ borghese Valutazione della prestazione della CPU multi-ciclo Dipende dal programma. lw sw beq j fp (add) fp (mul) Durata Clock (max singolo ciclo) Durata media Durata 10ns 8ns 6ns 4ns 8ns 12ns 20ns Caso I 24% 12% 18% 2% 44% 9ns 8.0ns Caso II 31% 21% 5% 2% 27% 7% 7% 20ns 9.56ns questo confronto va aggiunto che la CPU multi-ciclo consente ancora dei risparmi ulteriori nel tempo di esecuzione. 12/30 http:\\homes.dsi.unimi.it\ borghese 6

Circuito della fase di fetch multi-ciclo 8004 t PC 8000 t PCrite N: Occorre un segnale esplicito per scrivere in un registro (oltre al segnale di clock). Non occorre per la lettura. Memead I rd shamt funct it 5 bit 5 bit 6 bit add t add t+1 op rs rt 6 bit 5 bit 5 bi Irite LUop = Somma 8000 add $s1, $s2, $s3 8004 lw $s1, 20($s2) 8008 13/30 http:\\homes.dsi.unimi.it\ borghese I shamt funct 5 bit 6 bit Decodifica e lettura dei registri 1) Leggo l istruzione e genero i segnali di controllo opportuni. 2) Leggo il contenuto dei registri. = Clk rs rt rd 5 bit 5 bit 5 bit #eg read 1 #eg read 2 #eg write Contenuto rite Insieme di registri da bit [$s1] [$s2] = Clk op 6 bit Unità Controllo Segnali di controllo = f(codop) 8000 add $s1, $s2, $s3 8004 lw $s1, 20($s2)... 14/30 http:\\homes.dsi.unimi.it\ borghese 7

Sommario I problemi della UC a singolo ciclo di clock Principi ispiratori di una CPU multi-ciclo. Le fasi di fetch e decodifica. Esecuzione multi-ciclo delle istruzioni Esecuzione multi-ciclo delle istruzioni lw/sw. Esecuzione multi-ciclo delle istruzioni di salto. nalisi i della CPU multi-ciclo. il 15/30 http:\\homes.dsi.unimi.it\ borghese Fase di calcolo (tipo ) 3 LUop #eg read 1 #eg read 2 #eg write Insieme di registri da bit [$s1] [$s2] [$s1] +[$s2] LUOut Contenuto rite 8000 add $s1, $s2, $s3 8004 lw $s1, 20($s2)... 16/30 http:\\homes.dsi.unimi.it\ borghese 8

I Fase di rite back (tipo ) rt rd sham mt funct it 6 bit 5 bit 5 bit 5 bi #eg read 1 #eg read 2 <$s3> #eg write Contenuto rite Insieme di registri da bit [$s1] [$s2] 8000 add $s1, $s2, $s3 8004 lw $s1, 20($s2)... 3 LUop op rs 6 bit 5 bit Zero [$s1] +[$s2] isultato LUOut Overflow isultato 17/30 http:\\homes.dsi.unimi.it\ borghese Sommario I problemi della UC a singolo ciclo di clock Principi ispiratori di una CPU multi-ciclo. Le fasi di fetch e decodifica. Esecuzione multi-ciclo delle istruzioni Esecuzione multi-ciclo delle istruzioni lw/sw. Esecuzione multi-ciclo dei salti ed analisi della CPU multi-ciclo. 18/30 http:\\homes.dsi.unimi.it\ borghese 9

Offset 16 bit Fase di calcolo (tipo I: lw) 16 Estensione segno rs rt 5 bit 5 bit #eg read 1 #eg read 2 #eg write Contenuto rite [$s1] Insieme di registri da bit 20 Null 3 LUop = Somma [$s1] + 20 LUOut I op I 6 bit 8004 lw $s1, 20($s2) 19/30 http:\\homes.dsi.unimi.it\ borghese Lettura della memoria + write-back Indirizzo = isultato LU Dato LUOut <[$s2] + 20> Memoria Dati MD 8004 lw $s1, 20($s2) LUOut = M #eg read 1 #eg read 2 #eg write Insieme di registri da bit Contenuto rite 20/30 http:\\homes.dsi.unimi.it\ borghese 10

Fase di calcolo (tipo I: sw) s rt Offset I op r II 16bit bit 5 bit 1 6 bit 5 16 Estensione segno #eg read 1 #eg read 2 #eg write Contenuto rite Insieme di registri da bit [$s2] [$s1] 20 3 LUop = Somma <[$s2] + 20> 8008 sw $s1, 20($s2) LUOut 21/30 http:\\homes.dsi.unimi.it\ borghese Scrittura nella memoria 8008 sw $s1, 20($s2) Indirizzo = isultato LU Dato LUOut <[$s2]+20> Memoria Dati MD LUOut = M #eg read 1 #eg read 2 #eg write Insieme di registri da bit Contenuto rite 22/30 http:\\homes.dsi.unimi.it\ borghese 11

Sommario I problemi della UC a singolo ciclo di clock Principi ispiratori di una CPU multi-ciclo. Le fasi di fetch e decodifica. Esecuzione multi-ciclo delle istruzioni Esecuzione multi-ciclo delle istruzioni lw/sw. Esecuzione multi-ciclo delle istruzioni di salto. nalisi i della CPU multi-ciclo. il 23/30 http:\\homes.dsi.unimi.it\ borghese CPU + UC a ciclo singolo LUs LUop I 24/30 http:\\homes.dsi.unimi.it\ borghese 12

3 Decodifica e lettura dei registri, beq 16 bit Ext bit segno *4 LUout PC+4 Offset 16 bit = Clk PC Memoria Istruzioni II rs rt I op 5 bit 5 bit 6 bit #eg read 1 #eg read 2 #eg write Contenuto rite Unità Controllo Insieme di registri da bit [$s1] [$s2] = Clk 1) Leggo l istruzione e genero i segnali di controllo opportuni. 2) Leggo il contenuto dei registri. 3) Pre-Calcolo l indirizzo di salto Segnali di controllo = f(codop) 25/30 http:\\homes.dsi.unimi.it\ borghese Fase di calcolo (beq) zero 3 LUop #eg read 1 #eg read 2 #eg write Insieme di registri da bit [$s1] [$s2] LUOut Contenuto rite PC+4+Offset*4 [$s1] [$s2] Clk 26/30 http:\\homes.dsi.unimi.it\ borghese 13

CPU multi-ciclo: i salti PC 31-28 Offset 00 PCrite PCriteCond 4 PC+4 PCSource Mux sceglie tramite PCSource tra: Indirizzo ottenuto sommando 4. Indirizzo ottenuto dall LU (beq). Indirizzo ottenuto dal campo offset dell I (jump). [$s1] [$s2] PC+4+offset*4 PCrite, e PC Source sono coordinati PCriteCond e PCSource sono coordinati. 27/30 http:\\homes.dsi.unimi.it\ borghese Sommario I problemi della UC a singolo ciclo di clock Principi ispiratori di una CPU multi-ciclo. Le fasi di fetch e decodifica. Esecuzione multi-ciclo delle istruzioni Esecuzione multi-ciclo delle istruzioni lw/sw. Esecuzione multi-ciclo delle istruzioni di salto. nalisi i della CPU multi-ciclo. il 28/30 http:\\homes.dsi.unimi.it\ borghese 14

Confronto delle 2 CPU Due Memorie. Si possono compattare a patto di creare 2 registri. 1 registro istruzione (I) ed un registro dati (MD). 3 LU. Si può utilizzare una unica LU se viene utilizzata in 3 fasi diverse. Fase 1: + 4. Fase 2 Offset + rs (pre-calcolo l indirizzo di salto). Fase 3. Operazione di tipo. 29/30 http:\\homes.dsi.unimi.it\ borghese Sommario I problemi della UC a singolo ciclo di clock Principi ispiratori di una CPU multi-ciclo. Le fasi di fetch e decodifica. Esecuzione multi-ciclo delle istruzioni Esecuzione multi-ciclo delle istruzioni lw/sw. Esecuzione multi-ciclo delle istruzioni di salto. nalisi i della CPU multi-ciclo. il 30/30 http:\\homes.dsi.unimi.it\ borghese 15