Calcolatori Elettronici B a.a. 2008/2009

Documenti analoghi
Calcolatori Elettronici

Controllo di un processore a singolo ciclo

Calcolatori Elettronici

Calcolatori Elettronici A a.a. 2008/2009

CALCOLATORI ELETTRONICI B 23 giugno 2008

Calcolatori Elettronici B a.a. 2004/2005

Calcolatori Elettronici

Il processore: unità di elaborazione e unità di controllo (3)

Lezione 28 Il processore: unità di controllo (1)

Problemi dell implementazione singolo ciclo

Cosa abbiamo fatto. Dove stiamo andando.. Perché: per poter capire cosa deve offrire al programmatore il processore come istruzioni

Corso di. Realizzazione del Data path Data path a ciclo singolo. Anno Accademico 2006/2007 Francesco Tortorella

Calcolatori Elettronici

Astrazione dell implementazione. Il processore: unità di elaborazione e unità di controllo (2) Il controllo della ALU.

Calcolatori Elettronici B a.a. 2005/2006

Architetture dei Calcolatori (Lettere. Organizzazione di un Calcolatore. Processore. Il Processore. Livello 1: Macchina Firmware Microarchitettura

Architetture dei Calcolatori (Lettere. Organizzazione di un Calcolatore. Processore. Il Processore. Livello 1: Macchina Firmware Microarchitettura

Organizzazione pipeline della CPU

CALCOLATORI ELETTRONICI 30 agosto 2010

CALCOLATORI ELETTRONICI 14 giugno 2010

Calcolatori Elettronici B a.a. 2004/2005

Un quadro della situazione. Cosa abbiamo fatto. Lezione 29 La Pipeline. Dove stiamo andando.. Perché: Università degli Studi di Salerno

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

L'architettura del processore MIPS

CALCOLATORI ELETTRONICI 27 giugno 2017

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

CALCOLATORI ELETTRONICI 20 gennaio 2012

CALCOLATORI ELETTRONICI 9 settembre 2011

Richiami sull architettura del processore MIPS a 32 bit

CALCOLATORI ELETTRONICI 9 gennaio 2013

CALCOLATORI ELETTRONICI 15 giugno 2015

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

L unità di controllo di CPU a singolo ciclo

Richiami sull architettura del processore MIPS a 32 bit

L unità di controllo di CPU a singolo ciclo

CALCOLATORI ELETTRONICI 27 marzo 2018

Calcolatori Elettronici

CALCOLATORI ELETTRONICI 29 giugno 2015

Calcolatori Elettronici B a.a. 2006/2007

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

Calcolatori Elettronici

Calcolatori Elettronici B a.a. 2005/2006

Architettura degli elaboratori CPU a ciclo singolo

Calcolatori Elettronici

Il processore: unità di elaborazione

Calcolatori Elettronici B a.a. 2007/2008

Calcolatori Elettronici B a.a. 2007/2008

Calcolatori Elettronici B a.a. 2006/2007

Progetto CPU a singolo ciclo

CALCOLATORI ELETTRONICI A 25 gennaio 2011

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

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

Calcolatori Elettronici B a.a. 2006/2007

CPU a ciclo multiplo

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

Corso di Architettura (Prof. Scarano) 09/06/2002

Calcolatori Elettronici B a.a. 2005/2006

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

Una CPU multi-ciclo. Sommario

CPU (2) 2 CPU (2) 3 CPU (2) 4

CPU pipeline hazards

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

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

Architettura degli elaboratori - II Le architetture multi-ciclo

Unità di controllo della pipeline

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

Calcolatori Elettronici A a.a. 2008/2009

CPU a ciclo multiplo

Linguaggio macchina e register file

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

Architettura degli elaboratori CPU a ciclo singolo

Calcolatori Elettronici A a.a. 2008/2009

L unità di controllo di CPU multi-ciclo

Architettura della CPU multi-ciclo

Esercitazione del 05/05/ Soluzioni

Progetto CPU (ciclo singolo)

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

Elementi base per la realizzazione dell unità di calcolo

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

La CPU a singolo ciclo

CALCOLATORI ELETTRONICI 15 luglio 2014

Università degli Studi di Cassino

Un quadro della situazione. Lezione 28 Il Processore: unità di controllo (2) Dove siamo nel corso. Organizzazione della lezione. Cosa abbiamo fatto

Progetto CPU (ciclo singolo) Salvatore Orlando

La CPU a singolo ciclo

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

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

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

Gestione degli hazard

Il Processore: l Unità di Controllo Principale Barbara Masucci

Implementazione semplificata

Progetto CPU a singolo ciclo

Architettura degli Elaboratori

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

Rappresentazione dell informazione

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

Transcript:

Calcolatori Elettronici B a.a. 28/29 RICHIAI DI CALCOLATORI A assimiliano Giacomin

Livello architettrale Livello logico Livello circitale Livello del layot IL LIVELLO HARDWARE istrzioni macchina ISA Reti logiche: registri, ALU, UX Porte logiche: NOT, AND, Transistor Organizzazione di componenti per implementare ISA odelli logici: si parla di variabili, valori binari! odelli elettronici: si parla di tensioni, correnti, ecc. odelli fisici: si parla di dimensioni fisiche, materiali, ecc. 2

De tipi di nità fnzionali Elementi di tipo combinatorio: - valori di scita dipendono solo da valori in ingresso - Es. Porte logiche, PLA Elementi di memoria: - capaci di memorizzare n valore - Es. flip-flop, registri, memoria RA De tipi di reti RETI COBINATORIE - Contengono solamente elementi di tipo combinatorio RETI SEQUENZIALI Valori di scita dipendono solo da valori di ingresso - Contengono elementi di memoria Valori di scita dipendono dalla storia del sistema (seqenza di ttti gli ingressi) sintetizzata nel valore di stato contento negli elementi di memoria. 3

RETI COBINATORIE Assmiamo n ingressi m scite Specifica Si possono specificare mediante de approcci alternativi: tabelle di verità (n ingressi 2 n righe, per ciascna si specificano ttte le m scite) Es. A B C (OR esclsivo) eqazioni logiche (algebra booleana) Es. AB+AB 4

Realizzazione: Porte logiche, PLA, RO, PLD (Programmable logic device) Tempo di propagazione Elettronica digitale: realizzazione degli elementi sopraindicati (es. Famiglie logiche TTL, COS) noi non ce ne occpiamo direttamente Determina parametri tecnologici che inflenzano le prestazioni F F() Dal momento in ci l ingresso è valido al momento in ci l scita è valida trascorre n certo intervallo temporale: F() T combinatorio Al ma dopo T combinatorio siamo sicri che l scita è valida e stabile 5

Elementi di memoria RETI SEQUENZIALI Flip-flop di tipo D D C FLIP-FLOP TIPO D Q Q Sensibile ai fronti: l ingresso è memorizzato sl fronte (di salita) del clock - Vincoli sll ingresso: tempo di setp e tempo di hold Ritardo sll scita: tempo di propagazione D C Q T setp T hold T prop Ttti i tempi riferiti al fronte del clock In generale T hold < T prop 6

TEPORIZZAZIONE Sistemi sincroni: segnale di clock comne determina aggiornamento elementi di stato B D CK A F(A) CK ST Q F D ST2 Q CLOCK ST(IN) B C D ST(OUT) A B C ST2(IN) F(A) F(B) F(C) ST2(OUT) F(A) F(B) Al fronte di clock, n elemento di stato memorizza il valore di ingresso Nel periodo di clock, n novo valore di ingresso viene propagato dalla parte combinatoria e sarà disponibile al sccessivo fronte 7

F(A) D CK Q A F CLOCK D F(A) F 2 (A) F 3 (A) Q A F(A) F 2 (A) 8

Temporizzazione e vincoli temporali D CK CK ST Q F D ST2 Q T prop T combinatorio T 2 setp Dopo T prop + T combinatorio, ingresso a ST2 è stabile: anticipo di almeno T 2 setp T clock T prop + T combinatorio + T2 setp Vincolo per rispetto di T 2 hold : ingresso ST2 permane per almeno T2 hold dopo il fronte T prop + T combinatorio T2 hold [verificato atomaticamente perché T hold < T prop ] 9

ESTENDENDO QUESTE CONSIDERAZIONI AD UNA RETE COPLESSA Occorre considerare il caso peggiore; in particolare il cammino critico vincola la lnghezza del periodo di clock e qindi limita la freqenza ottenibile! T clock T prop + T cammino critico + T setp Nel caso peggiore!

Specifica di na rete seqenziale: macchine a stati finiti (FS) Occorre definire: L insieme degli ingressi (dominio I) e delle scite (dominio U) L insieme degli stati S Dinamica (come si passa da no stato all altro): fnzione f: S*I S Come si generano le scite fnzione η η: S U odello di oore η: S*I U odello di ealy S :U S 2 : U 2 I 2 I 2 I I I 2 I S 3 :U 3 S 4 :U 4 [odello di oore] I,I 2

Implementazione di na rete seqenziale Solo mod. ealy Logica combinatoria: Fnzione di scita η Uscite Ingressi Logica combinatoria: Fnzione di stato ftro f clock Registro di stato 2

Livello architettrale Livello logico Livello circitale Livello del layot IL LIVELLO HARDWARE istrzioni macchina ISA Reti logiche: registri, ALU, UX Porte logiche: NOT, AND, Transistor Organizzazione di componenti per implementare ISA odelli logici: si parla di variabili, valori binari! odelli elettronici: si parla di tensioni, correnti, ecc. odelli fisici: si parla di dimensioni fisiche, materiali, ecc. 3

Nella progettazione della CPU, faremo riferimento alle segenti istrzioni: Istrzioni aritmetiche: add, sb, and, or, slt add rd, rs, rt // rd rs + rt slt rd, rs, rt // rd = se rs < rt, altrimenti Istrzioni di accesso a memoria: lw rt, offset(rs) // rt [rs+offset] sw rt, offset(rs) // [rs+offset] rt Istrzioni di salto condizionato: beq rs, rt, offset // se rs=rt salta a offset istrzioni rispetto a PC (aggiornato a istrzione corrente + 4 bytes!) in bytes: PC + (offset ) Salto incondizionato: j offset // salta all indirizzo in istrzioni ottento da: 4 bit di PC offset [3 bit] indirizzo in byte è la concatenazione di 4 bit di PC offset [32 bit] 4

Codifica delle istrzioni viste: 3 26 25 22 6 5 Op rs rt rd Shift_amont fnct Aritmetiche: Tipo-R ADD: op 6 5 SUB: AND: OR: SLT: 3 6 5 Op rs rt offset = : lw = : sw beq 26 25 22 = + PC + (offset ) lw, sw, beq: Tipo-I 3 26 25 Op offset J: Tipo-J PC offset 5

Glossario Visale: indica le risorse individate in base ad na prima analisi Segnali di controllo dati IR P C Registro Istrzioni Istrzione [3-26] Istrzione [25-2] Istrzione [2-6] A L U zero ris AlCom Istrzione [5-] [Se è necessario memorizzare istrzione corrente] fnct UC ALU AlOp Registri: capaci di memorizzare n insieme di bit (si possono ottenere mediante array di Flip-flop di tipo D) 6

Register File: register nmber register nmber 2 Register file register data data data 2 Lettra: asincrona rispetto al clock, senza segnale di controllo read Scrittra: attiva sl fronte del clock e solo qando write è affermato Implementato con registri, mltipleer (per read port) e decodificatore (per write port) emorie (per memorizzare qantità maggiori di dati) em Indirizzo Dato scritto Dato letto Lettra asincrona risp. clock, scrittra attiva sl fronte del clock NB: forma semplificata (cfr. SRA, DRA, ecc.) em NB: il clock è presente ma non viene indicato per rendere le figre più chiare. 7

Schema del processore (e memoria) Drante l eseczione di n programma applicativo Pa, i circiti interpretano le istrzioni del programma in lingaggio macchina costitito dal < Pa (tradotto) i servizi OS> Unità di controllo SEGNALI DI CONTROLLO P C emoria Registro Istrzioni Condizioni: segnali da Datapath a U.C. indirizzo Programma Pa Istrzione [3-26] UNITA DI ELABORAZIONE (DATAPATH) Os Servizi 8

Controllo di n processore a singolo ciclo: l idea di base Unità di controllo combinatoria controlli condizioni UNITA DI ELABORAZIONE (DATAPATH) P C emoria indirizzo Programma Pa Os Servizi 9

Idea di base Ad ogni ciclo di clock, la memoria istrzioni fornisce l istrzione corrente L nità di controllo è na rete combinatoria che: - riceve in inpt l istrzione corrente - prodce in otpt segnali di controllo all nità di elaborazione: controllo mltipleer, read e write ad elementi di memoria, controllo ALU I segnali di controllo determinano, a seconda del tipo di istrzione: - il percorso sorgente-destinazione dei dati mediante: indirizzi e nmeri registri + segnali di controllo ai mltipleer - le operazioni aritmetiche e logiche effettivamente svolte mediante: segnali di controllo alle ALU - se n elemento di memoria deve scrivere e/o leggere n dato mediante: segnali di tipo read/write Avremo qindi la determinazione di n percorso del tipo: CK Sorgente F Dest. CK dove: - sorgente e destinazione possono coincidere - valore sorgente disponibile nel corso del ciclo, destinazione scritta alla fine 2

Il IPS Instrction [25 ] Shift Jmp address [3 ] left 2 26 28 4 Add PC+4 [3 28] Instrction [3 26] Control RegDst Jmp Branch em emtoreg ALUOp em ALUSrc Reg Shift left 2 Add ALU reslt PC address Instrction memory Instrction [3 ] Instrction [25 2] Instrction [2 6] Instrction [5 ] register register 2 Registers register data data data 2 Zero ALU ALU reslt Address data Data memory data Instrction [5 ] 6 Sign 32 etend ALU control Instrction [5 ] 2

Nota si segnali di controllo: - i segnali di controllo sono determinati in modo combinatorio soltanto slla base del campo Opcode - non è in generale possibile prevedere l ordine di arrivo dei segnali di controllo: le operazioni non sono esegite in seqenza, controllo combinatorio (è necessario che T clock sia sfficientemente lngo) 22

Esempio: istrzione di tipo-r Instrction [25 ] Shift Jmp address [3 ] left 2 26 28 4 Add PC+4 [3 28] Instrction [3 26] Control RegDst Jmp Branch em emtoreg ALUOp em ALUSrc Reg Shift left 2 Add ALU reslt PC address Instrction memory Instrction [3 ] Instrction [25 2] Instrction [2 6] Instrction [5 ] register register 2 Registers register data data data 2 Zero ALU ALU reslt Address data Data memory data Instrction [5 ] 6 Sign 32 etend ALU control Instrction [5 ] 23

Esempio: istrzione di load Instrction [25 ] Shift Jmp address [3 ] left 2 26 28 4 Add PC+4 [3 28] Instrction [3 26] Control RegDst Jmp Branch em emtoreg ALUOp em ALUSrc Reg Shift left 2 Add ALU reslt PC address Instrction memory Instrction [3 ] Instrction [25 2] Instrction [2 6] Instrction [5 ] Instrction [5 ] register register 2 Registers register data data data 2 6 Sign 32 etend ALU control Zero ALU ALU reslt Address data Data memory read data Instrction [5 ] 24

Esempio: istrzione beq Instrction [25 ] Shift Jmp address [3 ] left 2 26 28 4 Add PC+4 [3 28] Instrction [3 26] Control RegDst Jmp Branch em emtoreg ALUOp em ALUSrc Reg Shift left 2 Add ALU reslt PC address Instrction memory Instrction [3 ] Instrction [25 2] Instrction [2 6] Instrction [5 ] register register 2 Registers register data data data 2 Zero ALU ALU reslt Address data Data memory data Instrction [5 ] 6 Sign 32 etend ALU control Instrction [5 ] 25

Esempi di processori che sano controllo a singolo ciclo: NESSUNO! Perché? Periodo di clock: abbastanza lngo per garantire la stabilità dei segnali attraverso il percorso più lngo tempo di esecz. costante per diverse istrz. Istrzioni più lente limitano le istrzioni più veloci! Es. lw emoria Istrz. Reg. File A L U emoria Dati Reg. File Es. Tipo-R emoria Istrz. Reg. File A L U Reg. File 26

Limitazione aggravata da - istrzioni che tilizzano decine di nità fnzionali in serie, ad esempio comprendenti calcoli in virgola mobile! CPI =, ma T clock alto, ovvero freqenza di clock molto bassa! Nel complesso, il tempo di eseczione di na istrzione è sempre pari al caso peggiore, ovvero a qello dell istrzione più complessa e lnga Altro svantaggio: dplicazione dell HW costi elevati! Nell esempio del IPS, come visto: - occorrono de memorie diverse [dati e istrzioni] [NB: qesto va comnqe bene perché negli attali calcolatori si sa memoria cache + pipeline] - occorrono tre ALU, na per istrzioni aritmetiche confronto operandi in beq calcolo indirizzo lw e sw, na per calcolare PC+4 ed na per calcolare indirizzo di salto beq [la cosa si complica considerando modalità di indirizzamento complesse, ad esempio qelle con atoincremento, o istrzioni che effettano operazioni in virgola mobile] 27

CONTROLLO ULTICICLO: L IDEA DI BASE T istrzione costante e pari a T medio di eseczione per istrzione Istrzione lnga Istrzione potenzialmente breve Sddividere le istrzioni in fasi : n ciclo di clock per na fase! T eseczione T 2 eseczione NB: T 2 eseczione (il caso peggiore) pò in generale essere maggiore del precedente! Tttavia, le istrzioni più lnghe sono anche meno freqenti: principio rendere più veloce l evento più freqente comporta n gadagno! 28

Ciascna fase deve essere sfficientemente breve (T clock breve) Bilanciare la sddivisione in fasi, evitare di mettere in serie più nità fnzionali lente. Faremo in modo di non mettere in serie più di na delle operazioni: - accesso in memoria (istrzioni o dati) - accesso al register file (de lettre e na scrittra) - operazioni della ALU (NB: accesso/scrittra in n registro singolo considerato non oneroso) Ciascna di qeste nità [memoria, register file, ALU] necessita di registri temporanei per memorizzarne il risltato. - registri temporanei: salvano dati prodotti in n ciclo di clock e tilizzati dalla stessa istrzione in n ciclo di clock sccessivo - registri visibili al prog: dati tilizzati da istrzioni sccessive 29

Il IPS (Vedi Lezione CalcA CPU mlticiclo, lcidi 7 2, per la specifica progressiva) PC Address data emory emdata Instrction [3-26] Instrction [25 2] Instrction [2 6] Instrction [5 ] Instrction register Instrction [5 ] emory data register PCCond PC IorD em em emtoreg Otpts Control ALUOp ALUSrcB ALUSrcA Reg IR Instrction [25 ] Op [5 ] Instrction [5 ] PCSorce RegDst 6 register register 2 Registers register data Sign etend data data 2 32 Shift left 2 A B 4 2 3 26 28 Shift left 2 ALU control PC [3-28] Zero ALU ALU reslt Jmp address [3-] ALUOt 2 Instrction [5 ] NB: l nità di controllo si pò specificare e realizzare in vari modi 3

2 emory address comptation ALUSrcA = ALUSrcB = ALUOp = Start Instrction fetch em ALUSrcA = IorD = IR ALUSrcB = ALUOp = PC PCSorce = 6 (Op = 'LW') or (Op = 'SW') Eection ALUSrcA = ALUSrcB = ALUOp= 8 (Op = R-type) Branch completion ALUSrcA = ALUSrcB = ALUOp = PCCond PCSorce = Instrction decode/ register fetch (Op = 'BEQ') 9 ALUSrcA = ALUSrcB = ALUOp = (Op = 'J') Jmp completion PC PCSorce = 3 (Op = 'LW') emory access (Op = 'SW') 5 emory access 7 R-type completion em IorD = em IorD = RegDst = Reg emtoreg = 4 -back step RegDst = Reg emtoreg = 3

Controllo di n processore-mlticiclo: Riepilogo specifica e realizzazione Initial representation Finite state diagram icroprogram Seqencing control Eplicit net state fnction icroprogram conter + dispatch ROS Logic representation Logic eqations Trth tables Implementation techniqe Programmable logic array only memory 32

Calcolo CPI e Prestazioni nei sistemi a singolo ciclo e mlticiclo ) Calcolo prestazioni nei sistemi a singolo ciclo CPI = T clock = ma{t a + T k } ovvero la serie più lenta di operazioni atomiche [cammino critico] T eseczione = #istrzioni * CPI * T clock = #istrzioni * T clock 2) Calcolo CPI e prestazioni nei sistemi mlti-ciclo Dato n certo carico di lavoro con freqenze relative delle istrzioni f,, f n CPI = f *CPI + f 2 *CPI 2 + + f n *CPI n T clock = ma{t,,t m } [operazioni atomiche esegite in n ciclo di clock] T eseczione = #istrzioni * CPI * T clock 3) Confronto di prestazioni tra sistemi diversi [s n carico/prog. determinato] T eseczione T 2 eseczione = CPI *T clock CPI 2 *T 2 clock 33