Architettura degli Elaboratori e delle Reti Architetture sincrone e asincrone Sintesi di circuiti sequenziali Federico Pedersini ipartimento di Informatica Uniersità degli Studi di Milano L 8 1 Circuiti combinatori Circuiti combinatori = circuiti senza memoria: Le uscite al tempo t dipendono unicamente dagli ingressi al tempo t out i = f i ( in 1, in 2,!, in M ), i =1!N Ogni uscita out i è una funzione logica degli ingressi in i... in M Indipendenza dal tempo È impossibile modificare la storia del circuito è non c è memoria in 1 in 2 out 1 out 2 in M out N Circuito combinatorio L 8 2
Circuiti sequenziali Circuiti combinatori = circuiti senza memoria Gli output al tempo t dipendono unicamente dagli input al tempo t Out = f ( In ) Per consentire ad un dispositio di mantenere le informazioni, sono necessari circuiti con memoria Circuiti sequenziali = circuiti con memoria (stato) La memoria contiene lo stato (X) del sistema: Out = f ( In, X ) In Out In Out X combinatorio sequenziale L 8 3 Circuiti sequenziali Circuiti sequenziali, o con memoria Sono essenziali perché... In un sistema di elaborazione di informazioni è necessario poter conserare per un certo tempo le informazioni C = A + B;... C = C + 1; conserare per un certo tempo è MEMORIZZARE + A ALU C B L 8 4
ata races Sono essenziali perché... al crescere della complessità dei circuiti combinatori, si erificano fenomeni critici: ata races : transizioni spurie (glitch) su un segnale che dee rimanere costante è C è un limite alla complessità dei circuiti combinatori! Soluzione: data race spezzo il circuito in SEZIONI inserisco tra le sezioni delle BARRIERE al segnale, che APRO solo quando i segnali sono STABILI. L 8 5 Struttura di architetture sincrone In in out circuito combinatorio in out circuito combinatorio in out Out sync sync sync Clock Cancello Circuito combinatorio Cancello Sincronizzazione: la logica combinatoria dee terminare la propria commutazione in tempo utile imensionamento del periodo di clock T: La commutazione del clock dee aenire dopo che la logica combinatoria abbia terminato tutte le commutazioni Il tempo necessario alla logica combinatoria per commutare dipende dal cammino critico L 8 6
Perchè esiste il clock? oe il cancello iene inserito, si sincronizza l attiità di elaborazione Altrimenti i cammini critici renderebbero il funzionamento del circuito sempre più casuale. Cancelli = Barriere di sincronizzazione tra circuiti Memorizzano l ingresso ad un certo istante à dispositii di memorizzazione: registri Lo mantengono stabile in uscita, per un certo periodo à orologio in comune: segnale di clock Orologio in comune à circuiti sincroni Presenza di registri à circuiti sequenziali (con memoria) L 8 7 Circuiti sincroni e asincroni Architettura sincrona: l elaborazione e propagazione dei segnali è scandita da un orologio comune a tutto il circuito (clock) Il Clock regola l attiità dei cancelli Il circuito ha il tempo di stabilizzarsi (transitori critici) fino al successio impulso di Clock Architettura asincrona: l elaborazione e propagazione dei segnali aiene in modo incontrollato, secondo le elocità di reazione dei circuiti Non ci sono cancelli Non deo mai aspettare l impulso di clock massima elocità Progettazione sincrona il controllo dei transitori/cammini critici è limitato alla parte di circuito tra due cancelli (porte di sincronizzazione) Progettazione asincrona eo progettare il circuito in modo che nessun transitorio/cammino critico causi problemi analisi di tutti i transitori critici possibili. Eccezioni: TRANSPUTER (INMOS, UK) Architettura di calcolatore con CPU asincrona Complessità enorme, sia di progettazione che di programmazione progetto abbandonato. L 8 8
Clock clock(t) V H ampiezza (V) clock(t) Oscillatore (quarzo) V L T t (sec) Periodo: T [s] durata di 1 ciclo (secondi) Frequenza: f [Hz]=[s 1 ] numero di cicli al secondo T = 1/f Tempo di salita e discesa trascurabile, rispetto al periodo T. L 8 9 Utilizzo del clock Liello alto (t) Liello basso Fronte di discesa T C Fronte di salita t Architettura sensibile ai lielli: Le ariazioni di stato aengono quando il clock è alto (basso). La parte bassa (alta) del ciclo di clock permette la propagazione tra sottocircuiti, così che i segnali si siano stabilizzati quando il clock cambia liello. Architettura sensibile ai fronti: Le ariazioni di stato aengono in corrispondenza di un fronte di clock (salita o discesa). L 8 10
Circuiti sequenziali Circuiti combinatori = circuiti senza memoria Gli output al tempo t dipendono unicamente dagli input al tempo t Out = f ( In ) Per consentire ad un dispositio di mantenere le informazioni, sono necessari circuiti con memoria Circuiti sequenziali = circuiti con memoria (stato) La memoria contiene lo stato (X) del sistema: Out = f ( In, X ) in out in out X combinatorio sequenziale L 8 11 Latch & Bistabili Elemento cardine dei circuiti sequenziali è lo stato Lo stato riassume il funzionamento negli istanti precedenti e dee essere immagazzinato (memorizzato) Elemento base della memoria è il bistabile dispositio in grado di mantenere indefinitamente un alore in ingresso Il suo alore di uscita coincide con lo stato Tipologie di bistabile Bistabili non temporizzati (asincroni) / temporizzati (sincroni). Bistabili (sincroni) che commutano sul liello (latch) o sul fronte (flip-flop) Memoria: insieme di bistabili (bistabili registri memorie) L 8 12
Latch Set-Clear (SR) asincrono A B Porta NOR A + B Una coppia di porte NOR retroazionate può memorizzare un bit! Latch Set-Clear L 8 13 Funzionamento del Latch SC (SR) Latch Set-Reset (Set-Clear) Funzionamento: Set: C = 0, S 1 1 (~ 0) Reset: S = 0, C 1 0 (~ 1) Comportamenti anomali: S = 1, C: 0 1 =~=0 (anomalia) L 8 14
Tabella delle transizioni Un circuito sequenziale non si può rappresentare mediante una tabella di erità Per i circuiti sequenziali si definisce la tabella delle transizioni Tabella delle transizioni: * = f(, I ) = f(, S,C ) : alore dell uscita attuale: stato corrente *: uscita al tempo successio: stato prossimo *= f(,i) \ I SC = 00 SC = 01 SC = 11 SC = 10 0 0 0 X 1 1 1 0 X 1 * = Clear / Reset SET L 8 15 Tabella delle transizioni Tabella delle transizioni f : SC * = f ( I, ) SC=00 SC=01 SC=11 SC=10 =0 0 0 X 1 =1 1 0 X 1 Considerando lo stato come ingresso ottengo la tabella delle erità di *: * = S +C S C * 0 0 0 0 0 0 1 1 0 1 0 0 0 1 1 0 1 0 0 1 1 0 1 1 1 1 0 X 1 1 1 X L 8 16
Latch SR sincrono Latch Set-Reset (SR) sincrono Struttura: Latch SR + Porte AN tra il clock e gli ingressi. Solo quando il clock è alto i cancelli (porte AN) fanno passare gli input LATCH S R S R L 8 17 Sintesi della funzione logica Tabella delle transizioni: *= f(s,r,t,) T S R * 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 1 0 0 1 0 0 1 0 1 0 1 1 0 1 1 0 1 0 1 1 1 1 1 0 0 0 0 1 0 0 1 0 1 0 1 0 1 1 0 1 1 X 1 1 0 0 1 1 1 0 1 0 1 1 1 0 1 1 1 1 1 X T SR = 00 SR = 01 SR = 11 SR = 10 00 0 0 0 0 01 1 1 1 1 11 1 0 X 1 10 0 0 X 1 * = T +TR +TS = ( ) = T +T R + S clock alto * = ~R + S (bistabile) clock basso * = (status quo) L 8 18
Analisi della funzione logica sintetizzata Latch Set-Reset (SR) sincrono * = T +T ( R + S) S R T =1 * = R + S : Set : S =1, R = 0 * = +1=1 Reset : S = 0, R =1 * = 0 + 0 = 0 T = 0 * = : "status quo" L 8 19 Comportamento del Latch Latch SR un po scomodo: 2 ingressi separati per memorizzare 0 o 1 IEA: piloto S e R con un solo ingresso: = 1 à S=1, R=0 (Set) à =1 = 0 à S=0, R=1 (Reset) à =0 (R) LATCH : (S) Clock ALTO (=1): L uscita insegue l ingresso (con 3Δτ di ritardo) Clock BASSO (=0): L uscita rimane bloccata sull ultimo alore assunto L 8 20
Latch sincrono LATCH sincrono: Memorizza il alore presente all ingresso dati quando il clock è alto, altrimenti (clock=0) si mantiene sul alore memorizzato if = 1 then *= else *= (T) -Latch L 8 21 La struttura del latch _ basso alto L 8 22
Tabella delle transizioni alla tabella delle transizioni calcolo l espressione logica della funzione stato prossimo * = f(t,,): Tabella delle transizioni T * 0 0 0 0 0 0 1 0 0 1 0 1 0 1 1 1 1 0 0 0 1 0 1 1 1 1 0 0 1 1 1 1 Funzione stato prossimo * = f(, T,): * = T + T + T + T = T + T Clock T alto: * = (input) Clock T basso * = (status quo) T =1 * = T = 0 * = = L 8 23 Latch: Bistabili leel-sensitie I latch sono dispositii trasparenti: per tutto il tempo in cui il clock è a liello alto, il alore di iene riportato in uscita Clock = 1 è *= (uscita collegata all ingresso) Possono funzionare come cancelli? NO! Nel momento in cui apro (T=1), i segnali possono attraersare TUTTI gli stadi. Soluzione: cancello doppio uando apro in ingresso, l uscita è chiusa, e iceersa. In -latch -latch T circuito combinatorio -latch -latch T circuito combinatorio -latch -latch T Out Clock L 8 24
Bistabili edge sensitie : i Flip-Flop FLIP-FLOP: bistabile edge sensitie (attio sui fronti del clock): lo stato (uscita) commuta solo in corrispondenza del fronte di salita o di discesa del clock. T FlipFlop T Flip-Flop tipo T configurazione Master-Slae : master master = slae slae Master Slae master Flip-Flop tipo T L 8 25 Flip-flop: struttura master slae FLIP (clock ALTO): aperto lo stadio MASTER, chiuso lo stadio SLAVE Uscita bloccata su un alore precedentemente memorizzato FLOP (clock BASSO): chiuso lo stadio MASTER, aperto lo stadio SLAVE Ingresso chiuso, uscita bloccata sul alore contenuto in MASTER m = s m m = s m L 8 26
Funzionamento: FLIP = 1 m = s m m Flip m = s m m t L 8 27 Funzionamento: FLOP = 0 m = s m m m = s Flop m m t L 8 28
Funzionamento dei Flip-Flop Fronte di SALITA FLIP Attiato lo stadio MASTER Uscita (stadio slae) inariata T FlipFlop T Fronte di ISCESA FLOP Attiato stadio SLAVE Memorizzato il dato sull ingresso: à STATO Presenta il dato memorizzato in uscita: STATO à Ingresso isolato T(t) (t) (t) t L 8 29 Latch: Bistabili leel-sensitie I latch sono dispositii trasparenti: per tutto il tempo in cui il clock è a liello alto, il alore di iene riportato in uscita Clock = 1 è *= (uscita collegata all ingresso) Possono funzionare come cancelli? SÌ! Nel momento in cui apro (T=1), i segnali possono attraersare TUTTI gli stadi. Soluzione: cancello doppio uando apro in ingresso, l uscita è chiusa, e iceersa. In FF circuito combinatorio FF circuito combinatorio FF Out T T T Clock L 8 30
Sincronizzazione mediante flip-flop I cancelli deono disaccoppiare i diersi sottosistemi logici memorizzare i segnali e rilanciarli, tutto ad un determinato istante prima e dopo, uscite non sensibili agli ingressi Cancello doppio: ingresso e uscita, mai aperti contemporaneamente Cancelli: registri costituiti da gruppi di flip-flop L 8 31 Registri Registro: unità di memorizzazione di parole di N bit Struttura: N Flip-flop tipo T Operazioni: LETTURA: I dati memorizzati sono sempre leggibili sulle uscite. SCRITTURA: un fronte di salita (o discesa) su WRITE memorizza i alori presenti sugli ingressi Registro N bit: N linee ingresso 0 1 2 N 1 WRITE Comando scrittura FF 0 FF 1 FF 2... FF N 1 0 1 2 N 1 N linee uscita L 8 32
Architettura degli Elaboratori e delle Reti Circuiti sequenziali: macchine a stati finiti Proff. A. Borghese, F. Pedersini ipartimento di Scienze dell Informazione Uniersità degli Studi di Milano L 8 33 Macchine sequenziali Macchina combinatoria: U = f ( I ) senza memoria, uscita dipende solo dagli ingressi Macchina sequenziale: X* = f ( X, I ) U = g( X ) 2 funzioni: uscita e stato prossimo esiste la memoria: lo STATO in out in out X combinatorio sequenziale L 8 34
Macchine sequenziali Elemento necessario di ogni macchina sequenziale è la retroazione Uscita riportata in ingresso Bistabile: (macchina sequenziale elem.): 2 porte NOR +retroazione Macchina sequenziale sincrona Impiega bistabili sincroni S Es: Flip-Flop tipo T R macchina sequenziale rete combinatoria I T U retroazione L 8 35 Macchina a Stati Finiti - di Moore Una Macchina a Stati Finiti (FSM) è definita dalla quintupla: 3 insiemi e 2 funzioni logiche: < X, I, Y, f(), g() > X:insieme degli stati (in numero finito). I: alfabeto di ingresso: l insieme dei simboli che si possono presentare in ingresso. Con n ingressi, aremo 2 n possibili configurazioni. Y:alfabeto di uscita: l insieme dei simboli che si possono generare in uscita. Con m uscite, aremo 2 m possibili configurazioni f( ): funzione stato prossimo: X* = f( X, I ) efinisce l eoluzione della macchina nel tempo, in modo deterministico g( ): funzione di uscita: Y= g( X ) (macchina di Moore) Y= g( X, I ) (macchina di Mealy) Per il buon funzionamento della macchina è preisto talolta anche uno stato iniziale, nel quale si troa la FSM all accensione o dopo un comando di RESET L 8 36
La macchina sequenziale di Huffman i 1 y 1... i M x 1 x* 1... y N Uscite Ingressi y i =g( x i ) x K x* K x i *=f( x i, i j ) Stato Stato prossimo L 8 37 Macchina di Moore: State Transition Table (STT) STT: State Transition Table (Tabella delle transizioni di stato) Per ogni coppia: <stato attuale, ingresso> definisco stato prossimo x* Per ogni stato attuale, definisco l uscita y i 1 i 2 i N Y x 1 x*(x 1, i 1 ) x*(x 1, i 2 ) x*(x 1, i N ) y(x 1 ) x 2 x*(x 2, i 1 ) x*(x 2, i 2 ) x*(x 2, i N ) y(x 2 ) (x i X, i j I) à y=g(x i ) ; x*=f( x i, i j ) Esempio: macchina di Moore à M stati (log 2 M bit di stato), N ingressi (log 2 M bit d ingresso): x M x*(x M, i 1 ) x*(x M, i 2 ) x*(x M, i N ) y(x M ) L 8 38
Macchina di Moore: State Transition Graph (STG) STG: State Transition Graph (iagramma degli Stati o Grafo delle transizioni) Ad ogni nodo è associato uno stato: x i X... ed un alore della funzione d uscita: y i Y, y i =g(x i ) Un arco orientato da uno stato x i ad uno stato x j, contrassegnato da un simbolo (di ingresso) i K, rappresenta una transizione che si erifica quando la macchina, essendo nello stato x i, ricee come ingresso i K i K I x I X x J X x J = f(x I,i K ) y I = g(x I ) y J = g(x J ) L 8 39 Sintesi circuito sequenziale Sequenza operazioni di sintesi di un circuito sequenziale mediante modello a FSM: x1 i 2 i 5 x2 I = { i 1, i 2,, i M }, Y = { y 1, y 2,, y P } 1. efinizione insiemi ingressi I e uscite Y 2. Costruzione grafo delle transizioni STG è definizione insieme X à f(x,i) e g(x) 3. Traduzione STG è STT i 1 x3 i 1 i 1 i N Y x 1 x*(x 1, i 1 ) x*(x 1, i N ) y(x 1 ) x 2 x*(x 2, i 1 ) x*(x 2, i N ) y(x 2 ) x M x*(x M, i 1 ) x*(x M, i N ) y(x M ) 4. Codifica binaria degli elementi di X, Y, I nella STT è f(x,i) e g(x) dientano funzioni logiche! 5. Sintesi delle funzioni logiche f(x,i) e g(x) è circuito finale con struttura di Huffman x * i = f i ( x 1,, x, i 1,, i R ) y i = g i ( x 1,, x ) L 8 40
Progetto con macchina di Moore Esempio di SINTESI di FSM: controllore di un semaforo SEMAFORO: Incrocio tra 2 strade: nord-sud (NS) ed est-oest (EO) controllate da un semaforo per semplicità consideriamo solamente rosso e erde Il semaforo può commutare ogni 30 secondi Macchina sincrona, clock con frequenza =? auto NS sì / no auto EO sì / no E presente un sensore in grado di leggere, per ogni direttrice, se esiste almeno un auto in attesa, oppure un auto che si accinga ad attraersare (condizioni trattate allo stesso modo). Il semaforo dee cambiare colore, da rosso a erde, quando esiste un auto in attesa sulla sua direttrice. Se ci sono auto in attesa sulle entrambe le direttrici il semaforo dee cambiare colore (al termine del tempo di commutazione) L 8 41 SEMAFORO: Stato, Ingresso, Uscita INGRESSI Auto NS presente / non presente AutoNS=1/0 Auto EO presente / non presente AutoEO = 1/0 2 bit di INGRESSO 4 configurazioni d ingresso: I = {00, 01, 10, 11} USCITE: = STATO: Y = X LuceEO erde (LuceNS rossa) LuceNS erde (LuceEO rossa) 2 configurazioni d uscita 1 bit di USCITA STATO Semaforo NS VERE, semaforo EO ROSSO Semaforo NS ROSSO, semaforo EO VERE X = {VerdeNS, VerdeEO} 1 bit di STATO (1 flip-flop) auto NS sì / no (i NS = 1/0) auto EO sì / no (i EO = 1/0) L 8 42
Funzionamento: uscita Funzione uscita Funzione uscita: Y = g(x) Per ogni stato, definire l uscita della macchina Uscita STATO Y = X VerdeNS Verde sulla direttrice NS, rosso sulla direttrice EO VerdeEO Verde sulla direttrice EO, rosso sulla direttrice NS Luce Verde NS / Rosso EO = VerdeNS Luce Verde EO / Rosso NS = VerdeEO L 8 43 Funzionamento: stato prossimo Funzione stato prossimo Stato prossimo: eoluzione dello stato, in funzione dello stato attuale e degli ingressi attuali X i+1 = X i * = VerdeNS X(t+1) = X* = f( X(t), I ) Se X(t)= VerdeNS AN non ci sono auto sulla direttrice EO Se X(t)= VerdeEO AN ci sono auto sulla direttrice NS VerdeNS ~autoeo + VerdeEO autons X* = VerdeNS X i+1 = X i * = VerdeEO Se X(t)= VerdeEO AN non ci sono auto sulla direttrice NS Se X(t)= VerdeNS AN ci sono auto sulla direttrice EO VerdeEO ~autons + VerdeNS autoeo X* = VerdeEO L 8 44
STG del semaforo Sintesi State Transition Graph (STG): AutoNS = 0 (00,01) AutoEO = 1 (01,11) AutoEO = 0 (00,10) VerdeEO LuceVerde EO AutoNS = 1 (10,11) VerdeNS LuceVerde NS Risultato: Funzione stato prossimo: VerdeNS* = VerdeNS ~autoeo + VerdeEO autons VerdeEO* = VerdeEO ~autons + VerdeNS autoeo Funzione uscita: Y = X L 8 45 STT del semaforo Sintesi State Transition Table (STT): X I(i EO,i NS ) i EO =0 i NS =0 i EO =0 i NS =1 i EO =1 i NS =0 i EO =1 i NS =1 Uscita VerdeNS VerdeNS VerdeNS VerdeEO VerdeEO Luce VerdeNS VerdeEO VerdeEO VerdeNS VerdeEO VerdeNS Luce VerdeEO Funzione stato prossimo: X* = f(x, I) Funzione uscita: Y = g(x) L 8 46
STT del semaforo: COIFICA binaria Codifica binaria della STT: Stato: (VerdeNS/RossoEO, RossoNS/VerdeEO) Ingresso: 2 Variabili: (AutoEO, AutoNS) 1 = presente, 0 = assente 4 Configurazioni: I = (i EO,i NS ) = {00, 01, 10, 11} Uscita: (Luce_VerdeNS, Luce_VerdeEO) Y = {0, 1} VerdeNS/RossoEO è 0 RossoNS/VerdeEO è 1 X = {0, 1} X I(i EO,i NS ) 00 01 10 11 Uscita Y 0 0 0 1 1 0 1 1 0 1 0 1 L 8 47 Sintesi della MSF del semaforo Sintesi del circuito: 2 stati (0,1) 1 flip-flop T 2 linee di ingresso 1 linea d uscita Architettura di Huffman: Rete combinatoria che implementa: stato prossimo: f(x,i) uscita: g(x) I i EO i NS 2 reti combinatorie: X* = f (X,I) Y = g (X ) X X* T Clock Y L 8 48
Sintesi della MSF del semaforo Mediante la STT codificata in binario, posso esprimere X* e Y come somma di prodotti: cerco i mintermini: X* = X i EO i NS + X i EO i NS + X i EO i NS + X i EO i NS = = X i EO + X i NS Y = X X I(i EO,i NS ) 00 01 11 10 Y 0 0 0 1 1 0 1 1 0 0 1 1 L 8 49 MSF del semaforo: sintesi del circuito funzioni logiche rete combinatoria: X* = X i EO i NS + X i EO i NS + X i EO i NS + X i EO i NS = I i EO i NS 2 reti combinatorie: X* = f (X,I) Y = g (X ) Y = X i EO + X i NS Y = X X X* rete combinatoria T Clock i EO Y T = 30 sec i NS X X* clock(t) 30 sec t (sec) L 8 50