Macchine a Stati finiti Prof. Alberto Borghese Dipartimento di Scienze dell nformazione borghese@dsi.unimi.it Università degli Studi di Milano Riferimento al Patterson: Sezione B. /29 Sommario Macchine a stati finiti Esempio: sintesi di un controllore per venditore di bibite. Esempio: sintesi di un controllore di un semaforo. 2/29
La CPU come macchina sequenziale M FF Fase di fetch WB M Decodifica Calcolo M Decod Lettura / scrittura Write back R/W M M Exec 3/29 STG di una macchina venditrice di bibite Voglio costruire una macchinetta che eroga caffè quando l utente ha inserito 3c. Accetta o 2c e non dà resto. N = No Caffè C = Caffè. c / N =2c c / N 2c / N =2c =2c 3c / C =2c 4c / C 4/29 2
Macchina a Stati Finiti (di Moore) La Macchina di Moore è definita, in teoria degli automi, dalla sestupla: <,,, f(.), g(.), o > : insieme degli stati (in numero finito). : insieme di ingresso: tutti i simboli che si possono presentare in ingresso. : insieme di uscita: tutti i simboli che si possono generare in uscita. f(.): funzione stato prossimo: = f(,). Definisce l evoluzione della macchina nel tempo. L evoluzione è deterministica. g(.): funzione di uscita: = g() nelle macchine di Moore. Stato iniziale:. Per il buon funzionamento della macchina è previsto uno stato iniziale, al quale la macchina può essere portata mediante un comando di reset. 5/29 i o i i M Macchina a stati finiti binaria x x x K x K y o y y N Macchina di Huffman M ingressi K variabili di stato N uscite Stato 6/29 3
Descrizione di una macchina di Moore STG: State Transition Graph (Diagramma degli stati o Grafo delle transizioni). Ad ogni nodo è associato uno stato. Un arco orientato da uno stato x i ad uno stato x j, contrassegnato da un simbolo (di ingresso) α, rappresenta una transizione (passaggio di stato) che si verifica quando la macchina, essendo nello stato x i, riceve come ingresso il simbolo α. STT: State Transition Table (Tabella degli Stati). Per ogni coppia, (Stato presente ngresso), si definisce l Uscita e lo Stato Prossimo. La forma è tabellare e ricorda le tabelle della verità da cui è derivata. 7/29 Sommario Macchine a stati finiti Esempio: sintesi di un controllore per venditore di bibite. Esempio: sintesi di un controllore di un semaforo. 8/29 4
STG di una macchina venditrice di bibite (Semplificata) Voglio costruire una macchinetta che eroga caffè quando l utente ha inserito 3c. Accetta solamente monete da c. = {c, c} = {Nulla, Caffè} = Monete accumulate = {, c, 2c, 3c} = f(,) = g() o = c c / N c / N 2c / N 3c / C 9/29 STT della vendor machine c c c c c Nulla c c 2c Nulla 2c 2c 3c Nulla 3c c c Caffè l controllore controlla ogni.5s l ingresso e ogni.5s aggiorna lo stato e l uscita. c / N c / N 2c / N 3c / C /29 5
Codifica della STT della vendor machine c () c () c () c () c () Nulla () c () c () 2c () Nulla () 2c () 2c () 3c () Nulla () 3c () c () c () Caffè () = [c, c] = {, } = [Nulla, Caffè] = {, } = [, c, 2c, 3c] = {,,, } = f(,) da sintetizzare = g() da sintetizzare c / N c / N 2c / N 3c / C /29 Macchina a Stati Finiti (di Moore) La Macchina di Moore è definita, in teoria degli automi, dalla sestupla: <,,, f(.), g(.), o > : insieme degli stati (in numero finito). : insieme di ingresso: tutti i simboli che si possono presentare in ingresso. n caso di codifica binaria, se abbiamo n linee in ingresso (variabili binarie), avremo 2 n possibili simboli da leggere in ingresso (configurazioni). : insieme di uscita: tutti i simboli che si possono generare in uscita. n caso di codifica binaria, se abbiamo m linee in uscita (variabili binarie), avremo 2 m possibili simboli in uscita (configurazioni). f(.): funzione stato prossimo: = f(,). Definisce l evoluzione della macchina nel tempo. L evoluzione è deterministica. La funzione è una funzione logica. g(.): funzione di uscita: = g() nelle macchine di Moore. E una funzione logica. Stato iniziale:. Per il buon funzionamento della macchina è previsto uno stato iniziale, al quale la macchina può essere portata mediante un comando di reset. 2/29 6
Sintesi della funzione di uscita della FSM della Vendor Machine c () c () è su 2 cifre => 2 bit e c () c () c () Nulla () c () c () 2c () Nulla () 2c () 2c () 3c () Nulla () 3c () c () c () Caffè () x = {, } = {, } = {,,, } = g() = x = F(,) =? 3/29 x Sintesi della funzione stato prossimo della FSM della Vendor Machine è su 2 cifre => 2 bit x e x x x = [, ] = [, ] = [,,, ] = F(,) => x = (x + x )_ + x_ x_ = _ (x _ + ) + x x = x + x = g() = x 2 bit di stato prossimo vengono sintetizzati sepratamente. Sono entrambi funzione dei 2 bit di stato all istante attuale e del bit di A.A. ingresso 27-28 4/29 7
nput Sintesi del circuito della FSM della Vendor Machine _ x = (x + ) + x x x x x = x + x x Q D T = {, } = {, } = {,,, } Q _ D T = F(,) => x = (x_ + _ ) + x x = x + x = g() = x 5/29 Una vendor machine più completa. Monete diverse dai c. Scelta di bevande diverse. Bevande diversi con costi diversi. Periodo di refrattarietà nella quale non si possono inserire monete (periodo di preparazione del caffè).... 6/29 8
Sommario Macchine a stati finiti. Esempio: sintesi di un controllore per venditore di bibite. Esempio: sintesi di un controllore di un semaforo. 7/29 Latch di tipo SC come macchina a stati finiti Q* = f(q,s,c) Variabile di Stato (interna) Variabili di ngresso (esterne) Q SC = SC = SC = SC = No change (Q* = Q) Clear Reset Set Q è l uscita del latch: stato presente. Q* è il valore dell uscita al tempo successivo: stato prossimo. L uscita del latch coincide con il suo stato (interno). NB non ha senso implementare il latch come macchina di Huffman. 8/29 9
Controllore di un semaforo 2 strade: nord-sud, NS, ed est-ovest, EO, che devono essere controllate da un semaforo. l sistema di controllo dà via libera alternativamente alla direttrice NS o EO. l sistema di controllo pilota un semaforo il quale accenderà alternativamente il verde solla direttrice NS o sulla direttrice EO (quando il semaforo non è verde, per semplicità supponiamo che sia rosso). l semaforo può commutare ogni 3 secondi (clock con frequenza =?). Supponiamo che esista una video-camera in grado di leggere, per ogni direttrice, se esiste almeno un auto in attesa, oppure un auto che si accinga ad attraversare (le due condizioni sono trattate allo stesso modo). l semaforo deve cambiare colore (da rosso a verde quando esiste un auto in attesa sulla sua direttrice. Se ci sono due auto in attesa sulle due direttrici, viene posto a verde il semaforo rosso e a rosso il semaforo verde (viene dato via libera all altra direttrice). Supponiamo che all accensione venga dato via libera alla direttrice NS. 9/29 Stato, nput, Output del semaforo ngresso: {Nulla, Auto NS, Auto EO, Auto Both } Uscita: {Luce NS, Luce EO } Stato:? f(,) =? G() =? 2/29
ngresso: {Nulla, Auto NS, Auto EO, Auto Both } STG del semaforo, Auto NS Uscita: {Luce EO, Luce NS } Stato: {, } / Luce NS f(,) =? G() =? Auto EO, Auto Both Auto NS, Auto Both, Auto EO / Luce EO 2/29 STT del semaforo nput Nulla Auto NS Auto EO Auto Both Uscita Luce NS, Auto NS Luce EO / Luce NS Auto EO, Auto Both Auto NS, Auto Both, Auto EO / Luce EO 22/29
STT del semaforo binaria nput Nulla = Auto NS = Auto EO = Auto Both = Uscita = = = = = Luce NS = = = = = = Luce EO = ngresso: {Nulla, Auto NS, Auto EO, Auto Both } = {,,, } Uscita: {Luce EO, Luce NS } = {, } Stato: {, } = {, } f(,) =? G() =? 23/29 Sintesi della MSF del semaforo nput 2 =f(,) = g() Q D T 24/29 2
nput 2 Sintesi della MSF del semaforo =f(,) = g() Q D T = i i + i i + i i + i i = i + i _ = Uscita ngresso: {,,, } Uscita: {, } Stato: {, } f(,) =? G() =? 25/29 nput 2 Sintesi del circuito della MSF del semaforo =f(,) = g() Q D T = i i + i i + i i + i i = i + i _ = i i 26/29 3
passi della progettazione di una MSF l committente fornisce le specifiche di funzionamento. Definizione delle variabili di nput, Stato e Output. Definizione degli insiemi di simboli che possono essere assunti dalle variabili di nput e di Output. Costruzione dello STG => Definizione dell insieme di simboli che possono essere assunti dallo stato. Costruzione della STT => Definizione implicita delle funzioni stato prossimo ed uscita. Codifica della STT => Definizione del numero di bit per nput, Stato e Output. STT Codificata => Circuiti combinatori che sintetizzano le funzioni f(,) e g(). 27/29 Esercizi Costruire una macchina a stati finiti (di Moore), in grado di individuare all interno di una parola di e le seguenti configurazioni: e. Le configurazioni si possono concatenare (e.g. da uscita vera, al secondo e terzo ). Stato iniziale. Costruire una macchina a stati finiti (di Moore), con due ingressi, x e x 2, che fornisce quando negli ultimi 3 istanti si è verificata la seguente configurazione: t = -2 t = - t = x x 2 x Stato iniziale x = x 2 =. Costruire un venditore di bibite che distribuisce una bibita quando si raggiungono i 35 cents inseriti. Non dà resto. 28/29 4
Sommario Macchine a stati finiti. Esempio: sintesi di un controllore per venditore di bibite. Esempio: sintesi di un controllore di un semaforo. 29/29 5