Macchine a Stati finiti

Похожие документы
Flip-flop, registri, la macchina a stati finiti

L unità di controllo di CPU multi-ciclo

Macchine a stati finiti. Sommario. Sommario. M. Favalli. 5th June 2007

Macchine a stati finiti. Sommario. Sommario. M. Favalli. Le macchine a stati si utilizzano per modellare di sistemi fisici caratterizzabili mediante:

Macchine a stati finiti G. MARSELLA UNIVERSITÀ DEL SALENTO

Reti sequenziali sincrone

FSM: Macchine a Stati Finiti

Esercizio sugli automi di Moore

1 Carattere 1 2 Carattere 2 4 Carattere 4 X Carattere diverso da 1, 2, 4. Porta chiusa Porta aperta

Calcolatori Elettronici A a.a. 2008/2009. RETI SEQUENZIALI: ESERCIZI Massimiliano Giacomin

Sintesi di Reti Sequenziali Sincrone

Macchine sequenziali

Circuiti sequenziali: macchine a stati finiti

INTRODUZIONE ALLE MACCHINE A STATI

Sintesi di Reti Sequenziali Sincrone

Macchine combinatorie: encoder/decoder e multiplexer/demultiplexer

x y z F x y z F F = x z + y z + yz + xyz G = wyz + vw z + vwy + vwz + v w y z Sommario

Automi. Sono così esempi di automi una lavatrice, un distributore automatico di bibite, un interruttore, una calcolatrice tascabile,...

Macchine sequenziali sincrone. Macchine sincrone

Laboratorio di Architettura degli Elaboratori A.A. 2015/16 Circuiti Logici

Calcolatori Elettronici B a.a. 2006/2007

Esercitazione di Calcolatori Elettronici Ing. Battista Biggio. Corso di Laurea in Ingegneria Elettronica. Esercitazione 1 (Capitolo 2) Reti Logiche

Chapter 1. Circuiti sequenziali: macchine a stati

Hazard sul controllo. Sommario

Lezione 2 Circuiti logici. Mauro Piccolo piccolo@di.unito.it

Flip-flop Macchine sequenziali

CALCOLATORI ELETTRONICI A cura di Luca Orrù. Lezione n.6. Unità di controllo microprogrammata

Reti di calcolatori ed indirizzi IP

Circuiti sequenziali e elementi di memoria

CORSO DI CALCOLATORI ELETTRONICI I CdL Ingegneria Biomedica (A-I)

Macchine combinatorie

Laurea Specialistica in Informatica

Reti sequenziali. Esempio di rete sequenziale: distributore automatico.

Traccia di soluzione dell esercizio del 25/1/2005

LABORATORIO DI ARCHITETTURA DEI CALCOLATORI lezione n 2.

C. P. U. MEMORIA CENTRALE

Flip-flop, registri, la macchina a stati finiti

CALCOLATORI ELETTRONICI A cura di Luca Orrù. Lezione n.7. Il moltiplicatore binario e il ciclo di base di una CPU

Cap. 3 Reti combinatorie: analisi e sintesi operatori logici e porte logiche

Algebra Booleana 1 ALGEBRA BOOLEANA: VARIABILI E FUNZIONI LOGICHE

Verifica di Sistemi. 2. Il latch SR a porte NOR non accetta la condizione: a. S=0, R=0 b. S=1, R=1 c. S=0, R=1 d. S=1, R=0

I PROBLEMI ALGEBRICI

CPU. Maurizio Palesi

CONTATORI ASINCRONI. Fig. 1

AUTOMI A STATI FINITI. G. Ciaschetti

Elementi di Architettura e Sistemi Operativi. problema punti massimi i tuoi punti problema 1 6 problema 2 7 problema 3 7 problema 4 10 totale 30

Esercizio su MT. Svolgimento

Controllo con macchina a stati finiti

Algoritmi e strutture dati. Codici di Huffman

Transitori del primo ordine

Esame di INFORMATICA

Lezione n.9. Introduzione al linguaggio macchina

LABORATORIO DI SISTEMI

A intervalli regolari ogni router manda la sua tabella a tutti i vicini, e riceve quelle dei vicini.

Algebra Di Boole. Definiamo ora che esiste un segnale avente valore opposto di quello assunto dalla variabile X.

L architettura di riferimento

Laboratorio di Architettura degli Elaboratori - A.A. 2012/13

Introduzione ai microcontrollori

Elementi di Telelocalizzazione

Appunti di Sistemi Elettronici

Tipologie di macchine di Turing

Automazione Industriale (scheduling+mms) scheduling+mms.

Calcolatori: Algebra Booleana e Reti Logiche

PLC Sistemi a Logica Programmabile Il linguaggio Ladder-Parte

Macchine a stati finiti sincrone

LE FUNZIONI A DUE VARIABILI

Comparatori. Comparatori di uguaglianza

Prof.ssa Paola Vicard

RAPPRESENTAZIONE GRAFICA DEGLI ALGORITMI

Calcolo delle probabilità

Reti sequenziali e strutturazione firmware

Le Mappe di Karnaugh.

Von Neumann. John Von Neumann ( )

Ciclo di Istruzione. Ciclo di Istruzione. Controllo. Ciclo di Istruzione (diagramma di flusso) Lezione 5 e 6

Alcune nozioni di base di Logica Matematica

Registri. «a2» Copyright Daniele Giacomini --

Descrizione VHDL di componenti combinatori

Lezione 1: L architettura LC-3 Laboratorio di Elementi di Architettura e Sistemi Operativi 10 Marzo 2014

Prof. Capuzzimati Mario - ITIS Magistri Cumacini - Como LOGICA DI CONTROLLO

Logica e codifica binaria dell informazione

Le Macchine di Turing

Funzionalità di un Algoritmo

Algoritmi e diagrammi di flusso

TECNICHE DI SIMULAZIONE

Sia data la rete di fig. 1 costituita da tre resistori,,, e da due generatori indipendenti ideali di corrente ed. Fig. 1

PROBABILITÀ - SCHEDA N. 2 LE VARIABILI ALEATORIE

ALGEBRA DELLE PROPOSIZIONI

3 CENNI DI TEORIA DELLA COMPLESSITA COMPUTAZIONALE. E. Amaldi Fondamenti di R.O. Politecnico di Milano 1

SISTEMI INFORMATIVI AVANZATI -2010/ Introduzione

Scheduling della CPU. Sistemi multiprocessori e real time Metodi di valutazione Esempi: Solaris 2 Windows 2000 Linux

Caso d Uso: AcquistoAbbonamentoStudentiSettimanaleGiornaliero Breve descrizione. Procedura per la registrazione al servizio CicloPi.

Algebra di Boole. Le operazioni, nell algebra booleana sono basate su questi tre operatori: AND ( ), OR ( + ),NOT ( )

Транскрипт:

Macchine a Stati finiti Prof. Alberto Borghese Dipartimento di Scienze dell nformazione borghese@di.unimi.it Università degli Studi di Milano Riferimento al Patterson: Sezione B.0 /3 Sommario Macchine a stati finiti Esempio: sintesi di un controllore per venditore di bibite. Esempio: sintesi di un controllore di un semaforo. 2/3

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/3 STG di una macchina venditrice di bibite Voglio costruire una macchinetta che eroga caffè quando l utente ha inserito 30c. Accetta 0 o 20c e non dà resto. N = No Caffè C = Caffè. 0c / N =20c 0c / N 20c / N =20c =20c 30c / C =20c 40c / C 4/3 2

Macchina a Stati Finiti (di Moore) La Macchina di Moore è definita, in teoria degli automi, dalla sestupla: <,,, f(.), g(.), ini > : 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: ini. Per il buon funzionamento della macchina è previsto uno stato iniziale, al quale la macchina può essere portata mediante un comando di reset. 5/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. 6/3 3

Sommario Macchine a stati finiti Esempio: sintesi di un controllore per venditore di bibite. Esempio: sintesi di un controllore di un semaforo. 7/3 STG di una macchina venditrice di bibite (Semplificata) Voglio costruire una macchinetta che eroga caffè quando l utente ha inserito 30c. Accetta solamente monete da 0c. = {0c, 0c} = {Nulla, Caffè} = Monete accumulate = {0, 0c, 20c, 30c} = f(,) = g() o = 0c 0c / N 0c / N 20c / N 30c / C 8/3 4

STT della vendor machine 0c 0c 0c 0c 0c Nulla 0c 0c 20c Nulla 20c 20c 30c Nulla 30c 0c 0c Caffè l controllore controlla ogni 0.5s l ingresso e ogni 0.5s aggiorna lo stato e l uscita. 0c / N 0c / N 20c / N 30c / C 9/3 Dal linguistico al numerico 0c 0c 0c 0c 0c Nulla 0c 0c 20c Nulla 20c 20c 30c Nulla 30c 0c 0c Caffè Occorre codificare ingresso, stato ed uscita. = Assegnare un codice numerico ad ogni possibile stato, ingresso, uscita. 0c / N 0c / N 20c / N 30c / C 0/3 5

Codifica della STT della vendor machine 0c (0) 0c () 0c (00) 0c (00) 0c (0) Nulla (0) 0c (0) 0c (0) 20c (0) Nulla (0) 20c (0) 20c (0) 30c () Nulla (0) 30c () 0c (00) 0c (0) Caffè () = {0c, 0c} = {0, } = {Nulla, Caffè} = {0, } = {0, 0c, 20c, 30c} = {00, 0, 0, } = f(,) da sintetizzare = g() da sintetizzare 0c / N 0c / N 20c / N 30c / C /3 Macchina a Stati Finiti (di Moore) La Macchina di Moore è definita, in teoria degli automi, dalla sestupla: <,,, f(.), g(.), ini > : 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: ini. Per il buon funzionamento della macchina è previsto uno stato iniziale, al quale la macchina può essere portata mediante un comando di reset. 2/3 6

Sintesi della funzione di uscita della FSM della Vendor Machine 0c (0) 0c () 0c (00) 0c (00) 0c (0) Nulla (0) è su 2 cifre => 2 bit e 0 0c (0) 0c (0) 20c (0) Nulla (0) 20c (0) 20c (0) 30c () Nulla (0) 30c () 0c (00) 0c (0) Caffè () = {0, } = {0, } = {00, 0, 0, } = g() = g(x x 0 ) = F(,) =? 0 x x 0 0 0 0 0 0 0 0 3/3 x x 0 Sintesi della funzione stato prossimo della FSM della Vendor Machine 0 0 0 00 0 0 0 0 0 0 è su 2 cifre => 2 bit: x e x 0 Devo sintetizzare: x t+ = f (x 0 t, x t, ) x 0 t+ = f 0 (x 0 t, x t, ) 0 0 0 00 0 = {0, } = {0, } = {00, 0, 0, } = F(,) => x 0 = (x + x x 0 )_ + x_ x_ 0 = _ (x _ +x 0 ) + x x 0 x = x x 0 + x x 0 = g() = x x 0 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 204-205 4/3 x x 0 x x 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 7

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 5/3 nput Sintesi del circuito della FSM della Vendor Machine _ x x 0 = (x +x 0 ) + x x 0 0 x 0 x x = x x 0 + x x 0 x Q D T = {0, } = {0, } Q D T = {00, 0, 0, } _ = F(,) => x 0 = (x _ + _ x 0 ) + x x 0 x = x x 0 + x x 0 = g() = x x 0 6/3 8

Una vendor machine più completa. Monete diverse dai 0c. Scelta di bevande diverse. Bevande diversi con costi diversi. Periodo di refrattarietà nella quale non si possono inserire monete (periodo di preparazione del caffè).... 7/3 Sommario Macchine a stati finiti. Esempio: sintesi di un controllore per venditore di bibite. Esempio: sintesi di un controllore di un semaforo. 8/3 9

Latch di tipo SC come macchina a stati finiti Q* = f(q,s,c) Variabile di Stato (interna) Variabili di ngresso (esterne) Q SC = 00 SC = 0 SC = 0 SC = 0 0 0 0 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. 9/3 Dalla STT alla FSM = {0, } = {0, } = {0, } o = 0 f(,) =? g() =? Q SC = 00 SC = 0 g() = Q L uscita è uguale allo stato, Q. _ f(,) = QSC + SC (Q + Q) SC = 0 SC = 0 0 0 0 0 00, 0 0 / 0 / 0 0 00, 0 20/3 0

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 30 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. 2/3 Stato, nput, Output del semaforo ngresso: {Nulla, Auto NS, Auto EO, Auto Both } Uscita: {Luce NS, Luce EO } Stato:? f(,) =? G() =? 22/3

ngresso: {Nulla, Auto NS, Auto EO, Auto Both } STG del semaforo 0, Auto NS Uscita: {Luce EO, Luce NS } Stato: {OK NS, OK EO } f(,) =? G() =? Auto EO, Auto Both OK NS / Luce NS Auto NS, Auto Both 0, Auto EO OK EO / Luce EO 23/3 STT del semaforo nput Nulla Auto NS Auto EO Auto Both Uscita OK NS OK NS OK NS OK EO OK EO Luce NS 0, Auto NS OK EO OK EO OK NS OK EO OK NS Luce EO OK NS / Luce NS Auto EO, Auto Both Auto NS, Auto Both 0, Auto EO OK EO / Luce EO 24/3 2

STT del semaforo binaria nput Nulla = 00 Auto NS = 0 Auto EO = 0 Auto Both = Uscita OK NS = 0 OK NS = 0 OK NS = 0 OK EO = OK EO = Luce NS = OK EO = OK EO = OK NS = 0 OK EO = OK NS = 0 Luce EO =0 ngresso: {Nulla, Auto NS, Auto EO, Auto Both } = {00, 0, 0, } Uscita: {Luce EO, Luce NS } = {0, } Stato: {OK NS, OK EO } = {0, } f(,) =? G() =? 25/3 Sintesi della MSF del semaforo nput 2 =f(,) = g() Q D T 26/3 3

nput 2 Sintesi della MSF del semaforo =f(,) = g() Q D T = i i 0 + i i 0 + i i 0 + i i 0 = i + i 0 _ = 00 0 0 Uscita 0 0 0 0 0 0 ngresso: {00, 0, 0, } Uscita: {0, } Stato: {0, } f(,) =? G() =? 27/3 nput 2 Sintesi del circuito della MSF del semaforo =f(,) = g() Q D T = i i 0 + i i 0 + i i 0 + i i 0 = i + i 0 _ = i 0 i 28/3 4

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(). 29/3 Esercizi Costruire una macchina a stati finiti (di Moore), in grado di individuare all interno di una parola di 0 e le seguenti configurazioni: 00 e 0. Le configurazioni si possono concatenare (e.g. 000 da uscita vera, al secondo e terzo 0). Stato iniziale 00. 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 = 0 x 0 x 2 x 0 Stato iniziale x = 0 x 2 = 0. Costruire un venditore di bibite che distribuisce una bibita quando si raggiungono i 35 cents inseriti. Non dà resto. 30/3 5

Sommario Macchine a stati finiti. Esempio: sintesi di un controllore per venditore di bibite. Esempio: sintesi di un controllore di un semaforo. 3/3 6