Flip-flop, registri, la macchina a stati finiti



Documenti analoghi
Flip-flop, registri, la macchina a stati finiti

Circuiti sequenziali: macchine a stati finiti

Macchine a Stati finiti

Circuiti sequenziali e elementi di memoria

Flip-flop Macchine sequenziali

Sintesi di circuiti sequenziali

Architetture sincrone e asincrone Sintesi di circuiti sequenziali

Macchine sequenziali

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

Sintesi di Reti Sequenziali Sincrone

Reti sequenziali. Esempio di rete sequenziale: distributore automatico.

Circuiti sincroni circuiti sequenziali:bistabili e latch

Reti sequenziali sincrone

Circuiti sincroni Circuiti sequenziali: i bistabili

L unità di controllo di CPU multi-ciclo

Calcolatori Elettronici B a.a. 2006/2007

Macchine sequenziali sincrone. Macchine sincrone

I bistabili ed il register file

Esercizio sugli automi di Moore

Sintesi di Reti Sequenziali Sincrone

Macchine a Stati finiti

CONTATORI ASINCRONI. Fig. 1

Circuiti sequenziali e latch

Macchine a Stati finiti

Architettura dei Calcolatori Reti Sequenziali Sincrone

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

Lezione 7 Sommatori e Moltiplicatori

FSM: Macchine a Stati Finiti

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

I CONTATORI SINCRONI

I flip-flop ed il register file. Sommario

Corso di Laurea in Informatica Architetture degli Elaboratori

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

Registri. «a2» Copyright Daniele Giacomini --

Macchine a Stati finiti. Sommario

Chapter 1. Circuiti sequenziali: macchine a stati

L architettura di riferimento

Macchine a Stati finiti

Laurea Specialistica in Informatica

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

Latch pseudo-statico. Caratteristiche:

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

Le Macchine di Turing

CPU. Maurizio Palesi

Macchine combinatorie

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

Livello logico digitale

AUTOMI A STATI FINITI. G. Ciaschetti

Calcolatori Elettronici

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

Matematica Computazionale Lezione 4: Algebra di Commutazione e Reti Logiche

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

Esercizio su MT. Svolgimento

Reti sequenziali. Nord

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

Calcolatori Elettronici. La Pipeline Criticità sui dati Criticità sul controllo Cenni sull unità di controllo

Calcolatori Elettronici A a.a. 2008/2009

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

Testi di Esercizi e Quesiti 1

Macchine a stati finiti sincrone

LATCH E FLIP-FLOP. Fig. 1 D-latch trasparente per ck=1

C. P. U. MEMORIA CENTRALE

Architettura di un calcolatore

Macchine sequenziali

Strutturazione logica dei dati: i file

Esercizi Logica Digitale,Circuiti e Bus

L unità di elaborazione pipeline L unità Pipelining

Verificare il funzionamento delle memorie RAM Saper effettuare misure di collaudo. Dip switch Pulsante n.a. Octal tri-state buffer IC2 = MM 2114

Hazard sul controllo. Sommario

Macchine combinatorie: encoder/decoder e multiplexer/demultiplexer

Cenni alle reti logiche. Luigi Palopoli

Capitolo 6: Modelli di calcolo per linguaggi imperativi e funzionali

Struttura del calcolatore

Università degli Studi di Cassino

LABORATORIO DI SISTEMI

Introduzione ai microcontrollori

Lezione 2 OPERAZIONI ARITMETICHE E LOGICHE ARCHITETTURA DI UN ELABORATORE. Lez2 Informatica Sc. Giuridiche Op. aritmetiche/logiche arch.

Architettura dei Calcolatori Parte Operativa e Parte Controllo

ZIMO. Decoder per accessori MX81. Manuale istruzioni del. nella variante MX81/N per il formato dei dati NMRA-DCC

Macchine Sequenziali

Sintesi di Reti sequenziali Sincrone

Esercitazione RSS FONDAMENTI DI INFORMATICA B. Università degli studi di Parma Dipartimento di Ingegneria dell informazione DIDATTICA A DISTANZA

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

Sintesi di Reti Sequenziali Sincrone

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

Esame di INFORMATICA

LABORATORIO DI ARCHITETTURA DEI CALCOLATORI lezione n 9


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

Protocolli di Comunicazione Elettronica dei Sistemi Digitali L-A Università di Bologna, Cesena

Il processore. Il processore. Il processore. Il processore. Architettura dell elaboratore

Circuiti sequenziali e latch

Clocking. Architetture dei Calcolatori (Lettere. Elementi di Memoria. Periodo del Ciclo di Clock. scritti

Università degli Studi di Cassino e del Lazio Meridionale Corso di Calcolatori Elettronici Elementi di memoria e Registri

Il Processore: i registri

Sistemi Operativi. Interfaccia del File System FILE SYSTEM : INTERFACCIA. Concetto di File. Metodi di Accesso. Struttura delle Directory

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

Transcript:

Architettura degli Elaboratori e delle Reti Lezione 9 Flip-flop, registri, la macchina a stati finiti Proff. A. Borghese, F. Pedersini Dipartimento di Scienze dell nformazione Università degli Studi di Milano L 9 /39 Sommario! Bistabili DT edge- sensitive: Flip-Flop! Registri e Register-File! Circuiti sequenziali (macchine a stati finiti) L 9 2/39

Sincronizzazione! cancelli devono disaccoppiare i diversi sottosistemi logici " raccogliere i segnali, senza farli passare, e rilanciarli ad un determinato istante " Cancello doppio: ingresso e uscita " Mai aperti contemporaneamente L 9 3/39 Latch: Bistabili level-sensitive! latch sono dispositivi trasparenti: " Per tutto il tempo in cui il clock è attivo (alto), il valore di D viene riportato in uscita: Q = D : uscita collegata all ingresso! A noi interessa memorizzare l informazione in un determinato istante "#$! % % if = then Q*=D else Q*=Q L 9 4/39

Problemi con i latch sincroni! Registro a scorrimento (shift register) " Un unico ingresso e un unica uscita U " n presenza di segnale attivo (clock alto), il contenuto deve essere spostato verso destra di una posizione! Realizzazione mediante bistabili LATCH: " Funziona? = D 2 Q 2 = D Q = D Q = U Q Q Q L 9 5/39 Shift register con i latch = D 2 Q 2 = D Q = D Q = U Q Q Q "#$ & % ' % ( % ) * +,!t!t!t L 9 6/39

Bistabili edge sensitive : i Flip-Flop! Dispositivi attivi sul fronte del clock (edge sensitive): " il loro stato (uscita) può commutare solo in corrispondenza del fronte di salita o di discesa del clock. Bistabile tipo DT Configurazione Master-Slave D D master Q master = D slave Q slave Q Q master Q Flip-Flop tipo DT L 9 7/39 Flip-flop: struttura master slave! -#&.: L ingresso D viene memorizzato nel latch MASTER " L uscita è bloccata! -#/.: l uscita stabile del latch MASTER viene propagato al latch SLAVE " L ingresso è bloccato, l uscita è stabile. Q m = D s Q D m D Q m = D s Q D m L 9 8/39

Funzionamento: FLP = Q m = D s Q D m D D m Flip Q m = D s Q Q m Q m D D t L 9 9/39 Funzionamento: FLOP = Q m = D s Q D m D D m Q m = D s Flop Q Q Q Q m Q m t L 9 /39

Funzionamento dei Flip-Flop! Fronte di SALTA FLP " Attivato lo stadio MASTER " Memorizzato il dato sull ingresso: D! STATO " Uscita invariata Cancello ingresso aperto, cancello uscita chiuso! Fronte di DSCESA FLOP " Attivato stadio SLAVE " Presenta il dato memorizzato in uscita: STATO! Q " ngresso isolato Cancello ingresso chiuso, cancello uscita aperto L 9 /39 Struttura di un circuito sequenziale Logica & D Q combinatoria D Q Out flip-flop flip-flop T T "#$ Cancello! Circuito combinatorio! Cancello! Sincronizzazione: la logica combinatoria deve terminare la propria commutazione in tempo utile L 9 2/39

Temporizzazione circuito sequenziale n D Q flip-flop T Logica combinatoria D Q flip-flop T Out! l clock arriva contemporaneamente a tutti i dispositivi sincronizzati! Dimensionamento del periodo di clock: " la commutazione del clock deve avvenire dopo che la logica combinatoria ha terminato tutte le commutazioni " l tempo necessario alla logica combinatoria per commutare dipende dal cammino critico L 9 3/39 Temporizzazione: problemi n D Q flip-flop T Logica combinatoria D Q flip-flop T Out! Tempo di set-up: è il tempo minimo per cui deve rimanere stabile l input D prima del fronte di clock.! Tempo di hold: è il tempo minimo per cui deve rimanere stabile l input D dopo il fronte di clock (solitamente trascurabile). Tempo di set-up Tempo di hold +! +"#$ t t setup t hold L 9 4/39

Dimensionamento del periodo di Clock n D Q flip-flop T Logica combinatoria D Q flip-flop T Out! Tempo di propagazione: è il tempo necessario per propagare il segnale dall uscita slave alla logica combinatoria: t p " maggiore del tempo di hold: t h! Tempo di skew: ritardo massimo del clock t w Tempo di set-up +! Tempo di propagazione: t p > t h +"#$ t t setup t hold T clock > k * (t p + t c + t s + t w ) L 9 5/39 Sommario! bistabili DT edge-sensitive: Flip-Flop! registri ed il register file! Circuiti sequenziali (macchine a stati finiti) L 9 6/39

Registri! Registro a N bit # N Flip-flop DT SCRTTURA: " L impulso di memorizza i dati sugli ingressi D LETTURA: " dati memorizzati sono presenti sulle uscite Q L 9 7/39 Register file (CPU MPS)! Register File: famiglia di CPU MPS : " 32 registri da 32 bit " linea di ingresso " 2 linee di uscita #Reg read 5 #Reg read 2 5 Contenuto #Reg write W Contenuto Write 5 32 Register File MPS: 32 registri da 32 bit 32 32 Contenuto 2 L 9 8/39

Register File! Banco di registri: 2 k registri da n bit ciascuno " Utilizzabile come memoria per i dati! SELEZONE: fornendo in ingresso il numero del registro (#reg)! LETTURA: non modifica il contenuto del registro selezionato! SCRTTURA: nserisce <ContenutoWrite> nel registro selezionato " Comando: segnale W #Reg read k #Reg read 2 k Contenuto #Reg write W Contenuto Write n k Register File: 2 k registri da n bit n n Contenuto 2 L 9 9/39 Register File MPS: Porta di LETTURA! 2 MUX di selezione registro " 2 registri possono essere letti contemporaneamente 5 32 5 L 9 2/39

Register file MPS: Porta di SCRTTURA! ngresso : (Selezione) AND W " Se no ad ogni scriverei nei registri! ngresso D: " Dato (32 bit) W #Reg Write 5 Dato 32 L 9 2/39 Sommario! bistabili DT edge-sensitive: Flip-Flop! registri ed il register file! Circuiti sequenziali (macchine a stati finiti) L 9 22/39

Macchine sequenziali! Macchina combinatoria: U = f ( ) " senza memoria, uscita dipende solo dagli ingressi! Macchina sequenziale: X* = f ( X, ) U = g( X ) " 2 funzioni: uscita e stato prossimo " esiste la memoria: lo STATO U U X combinatoria sequenziale L 9 23/39 Macchine sequenziali! Elemento necessario di ogni macchina sequenziale è la retroazione " Uscita riportata in ingresso " Bistabile: (macchina sequenziale elem.): 2 porte NOR +retroazione macchina sequenziale rete combinatoria retroazione 2 % %! Macchina sequenziale sincrona " mpiega bistabili sincroni " Es: Flip-Flop tipo DT "#$ &,! % 3 L 9 24/39

La macchina sequenziale di Huffman i o i i M! x* x y o y y N &7 89::; x K x* K,:<;49 4546 4546+=86::;> 6 L 9 25/39 Macchina a Stati Finiti - di Moore! Una Macchina a Stati Finiti (MSF) è definita dalla quintupla: < X,, Y, f( ), g( ) > X: insieme degli stati (in numero finito). : alfabeto di ingresso: l insieme dei simboli che si possono presentare in ingresso. Con n ingressi, avremo 2 n possibili configurazioni. Y: alfabeto di uscita: l insieme dei simboli che si possono generare in uscita. Con m uscite, avremo 2 m possibili configurazioni f( ): funzione stato prossimo: X* = f( X, ) Definisce l evoluzione della macchina nel tempo, in modo deterministico g( ): funzione di uscita: Y= g( X ) (macchina di Moore) Y= g( X, ) (macchina di Mealy) " Per il buon funzionamento della macchina è previsto uno stato iniziale, al quale la macchina può essere portata mediante un comando di reset. L 9 26/39

Macchina di Moore: STT! STT: State Transition Table (Tabella delle transizioni di stato) " Per ogni coppia: <stato attuale, ingresso> definisco uscita y e stato prossimo x* (x i?+x, i j?+) # y(x i ) ; x*( x i, i j )! Esempio: M stati (log 2 M bit di stato), N ingressi (log 2 M bit d ingresso): i i 2 i N Y x x*(x, i ) x*(x, i 2 ) x*(x, i N ) y(x ) x 2 x*(x 2, i ) x*(x 2, i 2 ) x*(x 2, i N ) y(x 2 ) x M x*(x M, i ) x*(x M, i 2 ) x*(x M, i N ) y(x M ) L 9 27/39 Macchina di Moore: STG! STG: State Transition Graph (Diagramma degli Stati o Grafo delle transizioni) " Ad ogni nodo è associato uno stato: x i? X " Ed un valore 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 verifica quando la macchina, essendo nello stato x i, riceve come ingresso i K i K? x? X x J? X x y = g(x ) J = f(x,i K ) y J = g(x J ) L 9 28/39

Controllore di un semaforo SEMAFORO:! ncrocio tra 2 strade: nord-sud (NS) ed est-ovest (EO) controllate da un semaforo (per semplicità consideriamo solamente rosso e verde)! l semaforo può commutare ogni 3 secondi " Macchina sincrona, clock con frequenza =?! 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 attraversare (condizioni 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 auto in attesa sulle entrambe le direttrici il semaforo deve cambiare colore (al termine del tempo di commutazione) L 9 29/39 SEMAFORO: Stato, ngresso, Uscita STATO " Semaforo NS VERDE, semaforo EO ROSSO " Semaforo NS ROSSO, semaforo EO VERDE! bit di STATO ( flip-flop) NGRESS " Auto NS presente / non presente AutoNS=/ " Auto EO presente / non presente AutoEO = /! 2 bit di NGRESSO! 4 configurazioni d ingresso USCTE: = STATO " LuceEO verde (LuceNS rossa) " LuceNS verde (LuceEO rossa)! 2 configurazioni d uscita! bit di USCTA auto NS sì / no auto EO sì / no L 9 3/39

Funzionamento: stato prossimo! Per ogni valore dello stato dobbiamo prevederne l evoluzione in funzione degli ingressi X(t+) = X* = f( X(t), )! Stato: X(t) = X = {VerdeNS, VerdeEO}! X(t+) = X* = VerdeNS " Se X(t)= VerdeNS AND non ci sono auto sulla direttrice EO " Se X(t)= VerdeEO AND ci sono auto sulla direttrice NS! X(t+) = X* = VerdeEO " Se X(t)= VerdeEO AND non ci sono auto sulla direttrice NS " Se X(t)= VerdeNS AND ci sono auto sulla direttrice EO L 9 3/39 Funzionamento: uscita! Per ogni stato, definire l uscita della macchina! Uscita " STATO " VerdeNS! Verde sulla direttrice NS, rosso sulla direttrice EO " VerdeEO! Verde sulla direttrice EO, rosso sulla direttrice NS! Luce Verde NS = VerdeNS! Luce Verde EO = VerdeEO L 9 32/39

Sintesi funzioni: stato prossimo e uscita! Stato prossimo: X* = f(x, ) Per ogni variabile di stato, calcolare l evoluzione in funzione degli ingressi: " Se X = VerdeNS e AutoEO= " Se X = VerdeEO e AutoNS= " Se X = VerdeEO e AutoNS= " Se X = VerdeNS e AutoEO= VerdeNS = VerdeNS ~autoeo + VerdeEO autons VerdeEO = VerdeEO ~autons + VerdeNS autoeo! Uscita: Y = g(x) Per ogni stato, definire l uscita della macchina: " X = VerdeNS Y = Luce Verde NS " X = VerdeEO Y = Luce Verde EO $ X* = VerdeNS $ X* = VerdeEO L 9 33/39 STG del semaforo! Funzione stato prossimo: VerdeNS* = VerdeNS ~autoeo + VerdeEO autons VerdeEO* = VerdeEO ~autons + VerdeNS autoeo! Funzione uscita: Y = X AutoNS = AutoEO = AutoEO = VerdeEO VerdeNS LuceVerde EO AutoNS = LuceVerde NS L 9 34/39

STT del semaforo X ~autoeo ~autons ~autoeo autons autoeo ~autons autoeo autons Uscita VerdeNS VerdeNS VerdeNS VerdeEO VerdeEO Luce VerdeNS VerdeEO VerdeEO VerdeNS VerdeEO VerdeNS Luce VerdeEO Funzione stato prossimo: X* = f(x, ) Funzione uscita: Y = g(x) L 9 35/39 STT del semaforo: CODFCA binaria! Stato: " (VerdeNS/RossoEO, RossoNS/VerdeEO)! (, )! ngresso: " 2 Variabili: AutoNS, AutoEO! = presente, = assente " 4 Configurazioni: (,,, )! Uscita: " (Luce_VerdeNS, Luce_VerdeEO)! (, ) X Uscita Y L 9 36/39

Sintesi della MSF del semaforo! Struttura: macchina di MOORE " 2 stati (,)! flip-flop " 2 linee di ingresso " linea d uscita! SNTES: rete combinatoria " stato prossimo: f(x,) " uscita: g(x) i i 2 reti combinatorie: X* = f (X,) Y = g (X ) X X* % 3! clk Y L 9 37/39 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 + X + X + X = Y = = X X + X X Y L 9 38/39

MSF del semaforo: sintesi del circuito X* = X + X + X + X = Y = = X X + X i i 2 reti combinatorie: X* = f (X,) Y = g (X ) Y i rete combinatoria Y X X* %! 3 clk X* i X T = 3 sec L 9 39/39