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