1.2 I modelli di comportamento dei sistemi digitali 12 ottobre 2000 Comportamento combinatorio o sequenziale? 1 Il processo di elaborazione astrazione b) Il modello del blocco e la relazione ingresso/uscita i(t) I (alfabeto di ingresso) P u(t) U (alfabeto di uscita) U(t) = P(t, i(t)) a) L’interazione uomo/macchina Dati MACCHINA Risultati 12 ottobre 2000 2 Esempio di comportamento di un sistema digitale u= i dato 9 25 49 risultato 3 5 7 t L’uscita all’istante t è funzione dell’ingresso in quell’istante L’uscita u(t) non dipende da i() con < t L’uscita non risente della storia passata degli ingressi Il sistema non ha memoria possiamo scrivere: u = P(i) u(t) = P(i(t)) oppure Questo comportamento è detto: combinatorio Questo comportamento può essere descritto da una tabella della verità Le reti logiche che realizzano questo tipo di comportamento si chiamano: reti logiche combinatorie 12 ottobre 2000 3 La macchina combinatoria Un sistema digitale in cui l’uscita dipende solo dal valore contemporaneo dell’ingresso è detto macchina combinatoria. U(t) = f (I(t)) In una macchina combinatoria, Se I è l’insieme delle informazioni in ingresso e U è l’insieme delle informazioni in uscita il comportamento della macchina è descritto mediante la funzione F: I U La funzione F può essere assegnata mediante una tabella che associa a ogni simbolo di ingresso il corrispondente simbolo in uscita 12 ottobre 2000 4 Un altro esempio di macchina combinatoria: il campanello Tabella del comportamento i: Pulsante u = F(i) 12 ottobre 2000 Premuto Rilasciato u: Suoneria Suono Nessun Suono 5 Altro esempio di comportamento V G R u(t) = P(t) t • Il sistema non ha ingressi ma deve tener conto dello scorrere del tempo • Il tempo deve essere discretizzato (cioè suddiviso in intervalli Tn) • Il sistema ha memoria: deve sapere quanti intervalli di tempo sono passati, quindi deve saper contare • Il valore del conteggio riassume la storia passata del sistema • Il riassunto della storia passata (o memoria del sistema) si chiama anche: stato interno presente del sistema • L’uscita u(Tn) dipende dallo stato interno nello stesso intervallo Tn Questo comportamento è detto: sequenziale sincrono • sequenziale significa “con stato interno che influenza l’uscita” • sincrono significa che lo stato interno può cambiare solo in determinati istanti di tempo (quelli che separano Tn da Tn+1) Le reti logiche che realizzano questo tipo di comportamento si chiamano: reti logiche sequenziali sincrone 12 ottobre 2000 6 Approfondiamo l’esempio: u(tn) = P(s( tn)) V T0 t0 G T1 t1 T2 t2 T3 t3 R T4 V T5 t5 T7 T6 t6 t7 T8 t8 T9 t t9 • Il semaforo resta verde per 60 sec, giallo per 20 sec e rosso per 60 sec, poi torna verde; quindi ha un comportamento periodico con periodo 140 sec. • Se dividiamo il tempo in intervalli di durata T = 20 sec, allora il semaforo resta verde in T0, T1, T2 , giallo in T3 e rosso in T4, T5, T6 , poi torna verde • Si ha che u(tn+7) = u(tn): l’uscita è periodica con periodo 7 T • Allora possiamo dire quanto segue: • l’uscita dipende dall’intervallo Ti in cui ci troviamo • l’intervallo in cui ci troviamo identifica lo stato interno presente s • lo stato interno si ripete con periodo 7 T; • se associamo uno “stato interno” a ciascuno dei 7 intervalli T in cui è suddiviso il periodo di funzionamento del semaforo, allora possiamo far corrispondere a ogni stato interno un suo valore dell’uscita: u = P(s) • dunque possiamo dire che in questa macchina sequenziale sincrona l’uscita è una funzione combinatoria dello stato presente 12 ottobre 2000 7 Ecco la tabella che associa l’uscita allo stato interno presente V T0 t0 Stato presente: Stato presente A B C D E F G 12 ottobre 2000 T1 t1 A uscita verde verde verde giallo rosso rosso rosso G T2 t2 B T3 R T4 t3 C T5 t5 D E V t6 F T7 T6 t7 G T8 t8 T9 t t9 A Questa è una corrispondenza tra un insieme finito di simboli di ingresso ( i sette valori dello stato interno) e un insieme finito di simboli di uscita ( i tre colori); se chiamiamo S l’insieme dei sette stati e U l’insieme dei valori possibili dell’uscita, e se chiamiamo F la corrispondenza tra S e U, allora possiamo scrivere: F: S U 8 E’ sufficiente assegnare la funzione F: S U per descrivere il funzionamento del semaforo? V T0 t0 Stato presente A B C D E F G T1 t1 Stato futuro B C D E F G A G T2 t2 T3 t3 R T4 V T5 t5 t6 t7 T8 t8 T9 t t9 No, perché non abbiamo ancora detto come viene aggiornato lo stato presente che rappresenta la memoria del sistema; la stato presente ci dice a che punto siamo del ciclo; dunque deve essere aggiornato ad ogni istante di clock. La tabella di fianco ci dice, per ogni stato qual è il successivo. Se ad ogni istante di clock facciamo passare lo stato presente dal valore della colonna di sinistra al valore della colonna di destra, allora otteniamo il corretto funzionamento del nostro semaforo La tabella descrive la funzione G: S S 12 ottobre 2000 T7 T6 9 Conclusione: il comportamento del semaforo è descritto dalle due funzioni F: S U e G: S S V T0 t0 Stato presente A B C D E F G uscita verde verde verde giallo rosso rosso rosso F: S U 12 ottobre 2000 G T1 t1 T2 t2 Stato presente R T3 T4 t3 V T5 t5 T7 T6 t6 t7 t8 Stato futuro A B C D E F G G: S S B C D E F G A T8 s t T9 t9 F u G s* T F e G sono due blocchi combinatori T è l’intervallo tra due aggiornamenti successivi dello stato interno 10 Le tabelle che descrivono le due funzioni F e G si possono raggruppare in un’unica tabella detta Tabella di Flusso V T0 t0 G T1 t1 T2 t2 Stato presente A B C D E F G 12 ottobre 2000 T3 R T4 t3 T5 t5 Stato futuro B C D E F G A G: S S V T7 T6 t6 t7 T8 t8 T9 t t9 uscita verde verde verde giallo rosso rosso rosso F: S U 11 Il sistema di elaborazione che controlla il semaforo Il comportamento del semaforo è specificato dalle funzioni F: S U e G: S S z1 clock • • • • • rete sequenziale sincrona z2 z3 Il sistema di elaborazione che dobbiamo progettare è un sistema BINARIO; è cioè un sistema in grado di trattare solamente variabili binarie. Quindi è necessario che tutti le informazioni trattate (gli insiemi S e U) siano tradotte in sequenze di zeri e uni. Questa operazione è detta “codifica” dobbiamo dunque codificare gli stati con variabili binarie che chiameremo “variabili di stato interno” dobbiamo codificare i simboli di uscita con “variabili binarie di uscita” 12 ottobre 2000 12 Codifica degli stati e delle uscite V T0 t0 G T1 t1 T2 t2 T3 t3 R T4 V T5 t5 T7 T6 t6 t7 T8 t8 T9 t t9 •Per codificare 7 informazioni sono necessarie 3 variabili binarie •La codifica è arbitraria •Le uscite sono codificate in modo ridondante (basterebbero anche due bit) Codifica Stato A B C D E F G 12 ottobre 2000 y2 y1 y0 000 001 010 011 100 101 110 Uscita Codifica z3 z2 z1 Acceso verde 100 Acceso giallo 010 Acceso rosso 001 13 La tabella delle transizioni •Se si applica alla tabella di flusso la codifica degli stati e delle uscite si ottiene una nuova tabella detta tabella delle transizioni •La tabella delle transizioni esprime in forma binaria le funzioni F e G!! •Le funzioni F e G sono combinatorie Stato presente Stato presente y2 y1 y0 A B C D E F G 000 001 010 011 100 101 110 Stato futuro Uscita 001 010 011 100 101 110 000 100 100 100 010 001 001 001 G: S S z3 z2 z1 F: S U Per poter realizzare le sei funzioni Y2 Y1 Y0 e z3 z2 z1 è necessario studiare l’algebra di comutazione 12 ottobre 2000 Si pone ora il problema di progettare le 6 reti combinatorie che realizzano le sei funzioni binarie Y2 Y1 Y0 e z3 z2 z1 Si noti che le variabili di stato presente si indicano con y minuscola mentre le variabilidi stato futuro (uscite della rete G) si indicano con la Y maiuscola 14 La rete logica sequenziale sincrona che controlla il semaforo uscita u z1 z2 Rete logica combinatoria s(tn+1) = S(tn) y2 y1 y0 stato presente s 12 ottobre 2000 T T T z3 u = F(s) Y2 Y1 Y0 stato futuro S = G(s) 15 Una importante e comoda tecnica di descrizione del comportamento di una macchina sequenziale: il grafo degli stati Disegnamo a titolo di esempio il grafo degli stati del semaforo 12 ottobre 2000 16 Il grafo degli stati del semaforo A,V B,V C,V D,G G,R F,R E,R • Ogni nodo rappresenta uno stato • All’interno di ogni nodo sono indicati i simboli dello stato e dell’uscita • Ogni ramo rappresenta la transizione da stato presente a stato futuro • Dal grafo è possibile ricavare le funzioni F e G, e quindi la T. d. F. • Le transizioni avvengono in corrispondenza degli impulsi di clock 12 ottobre 2000 17 Come cambia il d.d.s. se aggiungiamo al semaforo un ingresso binario che, quando è attivo, fa diventare rosso il semaforo al prossimo impulso di clock? Successivamente, il semaforo dovrà tornare verde al primo impulso di clock in cui questo ingresso non sarà attivo. Soluzione 1 0 0 A,V B,V C,V 1 0 0 1 1 0 G,R H,R 1 1 1 0 0 1 F,R D,G 1 0 E,R Analizzare attentamente, quindi ricavare 12 ottobre 2000la tabella di flusso e la tabella delle transizioni 18 Soluzione 2: Con riferimento alla Soluzione 1, gli stati G e H sono indistinguibili tra loro in quanto hanno la stessa uscita e per ogni configurazione di ingresso hanno lo stesso stato futuro; quindi possono essere sostituiti da un solo stato (soluzione 2) S0,V 0 1 0 0 S1,V S2,V 0 1 1 1 S3,G S6,R 1 0 - S5,R 12 ottobre 2000 0 S4,R 19 Altri esempi di comportamento istruzione risultato istruzione operando CPU operando risultato Il risultato dipende anche dalle istruzioni e dai dati precedenti • • • • • t u(t) = P(t, i(t)) Il sistema ha ingressi esterni oltre allo stato interno Il sistema ha memoria: il risultato dipende anche da istruzioni e dati precedenti L’attività precedente viene riassunta nello stato interno del sistema Il tempo viene discretizzato (cioè suddiviso in intervalli Tn) L’uscita u(Tn) dipende dallo stato interno e dagli ingressi nello stesso intervallo Tn Questo comportamento è analogo a quello del lucido precedente, quindi anche la CPU è una rete logica sequenziale sincrona 12 ottobre 2000 20 Anche i processori si comportano come specificato dal loro dds BUS Fase di fetch Fase di execute CPU o clock Processore Il processore usa il periodo del clock come “unità di misura” del tempo. La durata della fase di execute dipende dall’istruzione che la fase di 12 ottobre 2000 21 fetch ha reperito in memoria. Generalità sulle macchine sequenziali Nei prossimi lucidi verranno generalizzati gli esempi di descrizione e struttura di R.S. visti nei lucidi precedenti 12 ottobre 2000 22 Macchine sequenziali • Le macchine sequenziali sono modelli matematici che descrivono sistemi digitali in cui il valore della grandezza presente in uscita non dipende solamente dal valore contemporaneo dell’ingresso, ma dipende anche dai valori assunti dall’ingresso nel passato; le macchine sequenziali descrivono dunque sistemi dotati di memoria • le macchine sequenziali si suddividono in: – Macchine sequenziali sincrone – Macchine sequenziali asincrone • Nelle macchine sequenziali sincrone il tempo viene suddiviso in intervalli elementari di durata costante T e vengono considerati solamente gli istanti di tempo ti che delimitano detti intervalli. Gli intervalli elementari possono essere contati ed è quindi possibile misurare il tempo. Pertanto nelle macchine sequenziali sincrone il valore dell’uscita può dipendere sia dalla sequenza dei valori in ingresso, sia dalla relativa durata • Nelle macchine sequenziali asincrone non viene fissata una base dei tempi di riferimento; pertanto le macchine S.A. non sono in grado di tener conto della durata dei valori in ingresso; il valore dell’uscita dipende dalla sequenza dei valori in ingresso, ma non può dipendere dalla relativa durata. 12 ottobre 2000 23 Un esempio di sistema digitale con memoria che non ha bisogno di misurare la durata degli intervalli di tempo • Il comportamento di una lampada da tavolo che si accende e si spegne premendo un pulsante è riconducibile al modello delle Macchine Sequenziali Asincrone: lo stato della lampada non dipende dalla posizione del pulsante (premuto o rilasciato), né dalla durata degli intervalli di tempo in cui il pulsante è stato premuto o rilasciato; dipende invece dal numero di volte in cui il pulsante è stato premuto nel passato, dipende cioè solamente dalla sequenza con cui è cambiato lo stato del pulsante (i. e. il valore dell’ingresso) u(t) = P(i(t-)) 0 12 ottobre 2000 • Le variazioni dell’uscita (lampadina) sono dovute a variazioni dell’ingresso (pulsante) • Il valore dell’uscita non dipende dalla durata delle configurazioni di ingresso, quindi non dipende dal valore di t, ma dipende solo dalla sequenza con cui è variato l’ingresso • Nelle M.S.A. la storia passata è rappresentata solo dalla sequenza con cui è variato l’ingresso, e non dalla durata di ogni configurazione di 24 ingresso Esempi di sistemi digitali con memoria in cui è necessario (o opportuno) misurare la durata degli intervalli di tempo u(t) = P(t) colore Le variazioni dell’uscita sono dovute al trascorrere del tempo t istruzione operando u(t) = P(t, i(t-)) 0 istruzione operando CPU risultato Dipende anche dalle istruzioni e dai dati precedenti risultato t • La storia passata è rappresentata dal tempo trascorso, dalla sequenza con cui sono variati gli ingressi e dalla loro durata • Il comportamento di questi sistemi è riconducibile al modello delle Macchine Sequenziali Sincrone • Al fine di misurare la durata degli intervalli di tempo, il tempo viene discretizzato cioè viene suddiviso in intervallini di durata costante T (vedi diapositiva n. 7) • T rappresenta l’unità di misura del tempo 12 ottobre 2000 25 Macchine digitali e reti logiche • Un modello matematico che descrive un sistema capace di elaborare grandezze discrete si chiama anche macchina digitale • E’ possibile realizzare reti logiche che si comportano come una macchina digitale assegnata passando attraverso un procedimento di codifica binaria delle grandezze discrete elaborate dalla macchina data • Si viene così a definire una corrispondenza tra macchina digitale e rete logica 12 ottobre 2000 26 La macchina digitale e la rete logica i(t) I (alfabeto di ingresso) u(t) U (alfabeto di uscita) Macchina digitale • Ingressi e uscite sono simboli appartenenti a un alfabeto assegnato • Si può descrivere la M.D. con il diagramma degli stati e con la tabella di flusso X[0..(n-1)] (var. di ingresso) Z[0..(n-1)] (var. di uscita) Rete logica • Ingressi e uscite sono: vettori di variabili binarie con cui gli alfabeti di cui sopra sono codificati • è necessario codificare anche gli stati interni • l’andamento delle variabili binarie z in funzione delle x e delle eventuali variabili di stato interno è descritto dalla tabella delle transizioni • Si ottiene la rete logica ad essa associata sintetizzando le variabili di uscita e le variabili di stato futuro indicate dalla T.d.T. 12 ottobre 2000 27 Il modello delle M.S.S. la discretizzazione del tempo e le funzioni F,G i(tn) u(t) = P(t, i(t-)) 0 u(tn) F u(tn ) = P (i ,i(t0),i(t1), …., i(tn-1), i(tn)) s(tn+1) u(tn ) = F(s(tn),i(tn)) s(tn+1) = G(s(tn),i(tn)) Ti : intervalli di durata T ti : istanti s(tn) stato interno: il riassunto della “storia passata” T0 t0 T1 t1 12 ottobre 2000 T2 t2 T3 t3 G Tn-1 Tn tn Ritardo T Tn+1 tn+1 s(t0) = i 28 Il modello delle M.S.A. la retroazione diretta dello stato interno (T=0) u(t) = P(t, i(t-)) 0 i(t) u(t) F u(t ) = F(s(t),i(t)) S(t) = G(s(t),i(t)) S(t) stato interno: il riassunto della “storia passata” s(t0) = stato iniziale • s(t): stato interno presente • S(t): stato interno futuro • La variazione di i (ingresso) si ripercuote immediatamente s(t) sullo stato interno • Il modello non riesce a misurare la durata delle configurazioni di ingresso • Il modello riesce a ricordare la sequenza delle configurazioni di ingresso 12 ottobre 2000 G Ritardo T=0 29 Astrazione di un modello per M.S.S. e M.S.A. Le variabili discrete sS, iI, uU e le funzioni F e G La funzione F: S x I U La funzione G: S x I S S I S I U 12 ottobre 2000 S 30 Il modello astratto della macchina sequenziale Sistema matematico i u M = {I, U, S, F, G} F formato da 3 INSIEMI I: i1, i2, …, in alfabeto di ingresso U: u1, u2, …, um alfabeto di uscita S: s1, s2, …, sk insieme degli stati s* da 2 FUNZIONI G F : S I U funzione di uscita s G : S I S funzione di aggiornamento dello stato interno e da una MEMORIA che mantiene il “vecchio stato” s memoria fino a quando non è necessario sostituirlo con il “nuovo stato” s* (il prossimo istante di clock nelle reti SINCRONE) 12 ottobre 2000 31 Macchine sequenziali e automi a stati finiti Il comportamento complessivo di un sistema digitale è descritto dal sistema matematico M = {I,U,S,F,G} formato da 3 INSIEMI • I: alfabeto di ingresso • U: alfabeto di uscita • S: insieme degli stati interni e da 2 FUNZIONI •F: funzione di uscita • G: funzione di aggiornamento dello stato interno L’insieme di 5 elementi M è detto Automa a Stati Finiti • Nelle macchine sequenziali sincrone lo stato interno viene aggiornato in tutti gli istanti ti , e l’uscita viene aggiornata tutte le volte che cambia la configurazione di ingresso o lo stato interno • Nelle macchine sequenziali asincrone uscita stato interno e uscita vengono aggiornati ad ogni cambiamento della configurazione di ingresso o dello stato interno 12 ottobre 2000 32 Descrizione del comportamento con tabella di flusso insieme degli stati ingresso s1 s2 .. .. stato presente sj .. .. sk i1 i2 .. .. .. .. …. …. …. .. .. .. .. …. sp,uq …. .. .. .. .. .. .. .. .. …. ii .. .. …. …. …. .. .. in alfabeto d’ingresso .. .. .. .. …. …. stato futuro, uscita 12 ottobre 2000 33 Descrizione con grafo degli stati Per ogni stato e per ogni valore di ingresso lecito si devono individuare stato futuro e valore dell’uscita S1 Sp i 1 , um Sj ii, uq in, un Sk 12 ottobre 2000 S2 34 Classificazione dei comportamenti e quindi del grafo degli stati delle Macchine Sequenziali i1, u1 1: una variazione di ingresso determina (al più) una variazione di uscita i2, u2 i2, u2 a b i1, u1 2: una variazione di ingresso determina un numero limitato di variazioni di uscita 3: una variazione di ingresso determina continue variazioni di uscita 12 ottobre 2000 a i2, u1 a i2, u3 i2, u2 i2, u2 b b i2, u3 g i2, u3 g 35 Esempio di comportamento 1: una lampada da tavolo u: lampadina U : {spenta, accesa} rilasciato,spenta premuto,accesa premuto, accesa a b premuto, spenta rilasciato, accesa rilasciato, accesa rilasciato, spenta i: pulsante I : {rilasciato,premuto} 12 ottobre 2000 d premuto, spenta g • Questo comportamento può essere convenientemente realizzato con una R.S.A. • E’ comunque possibile realizzare questo comportamento con una R.S.S. 36 La macchina sequenziale asincrona Per ottenere il comportamento 1 (al più una variazione dell’uscita a fronte di una variazione dell’ingresso) è sufficiente progettare la macchina in modo che lo stato d’arrivo non vari in corrispondenza del nuovo ingresso: se s j = G( s i, i) allora s j = G( s j, i) Lo stato viene aggiornato con il ritardo della rete G Una volta aggiornato, lo stato resta stabile e immutato fino all’arrivo della prossima configurazione di ingresso (infatti lo stato futuro resta uguale allo stato presente) Macchine di questo tipo sono dette asincrone perché il loro comportamento dipende dal verificarsi di “eventi” (le variazioni degli ingressi) e non dal trascorrere del tempo. 12 ottobre 2000 37 Esempio di comportamento 2: una lavapiatti stop Immissione acqua Riposo Riscaldamento start Controllo Timer Scarico acqua Getti Detersivo & getti Immissione acqua Scarico acqua I cambiamenti di stato avvengono quando il timer segnala che è scaduto il tempo previsto per la fase del ciclo associato allo stato presente. 12 ottobre 2000 38 Esempio di comportamento n. 3: il semaforo colore • • • • • u(tn) = P(tn) Le variazioni dell’uscita (colore) sono dovute al t trascorrere del tempo Il grafo degli stati del semaforo corrisponde al comportamento 3 indicato nel lucido 32 (il semaforo passa ciclicamente e con continuità per più stati senza che vi siano ingressi che cambiano) Il grafo degli stati del semaforo è stato visto a lezione Questo comportamento può essere realizzato solamente con una rete sequenziale sincrona, cioè con una rete che cambia stato solo in corrispondenza degli istanti ti Se si realizzasse il grafo del semaforo secondo il modello delle R.S.A. (cioè con retroazione diretta dello stato futuro sullo stato presente, lo stato interno e le uscite oscillerebbero e quindi non assumerebbero mai un valore stabile e definito. Saremmo dunque in presenza di un funzionamento erroneo Il d.d.s. del semaforo è un esempio di grafo degli stati di un generatore di forme d’onda periodiche. Se il periodo della forma d’onda è T = k * Tck, allora solitamente si avrà: numero degli stati nel dds = k (tn - tn-1) = Tck 12 ottobre 2000 39 La macchina sequenziale sincrona Nei comportamenti 2 e 3 (definiti nel lucido 15) si hanno variazioni di uscita e stato anche con ingresso costante. Tali variazioni quindi non possono che essere dovute al trascorrere del tempo. La macchina deve allora essere in grado di misurare il trascorrere del tempo. Ciò viene ottenuto inserendo un ritardo costante, Tck, sul ramo di retroazione della funzione G Questo ritardo, solitamente chiamato “periodo di clock”, diventa l’unità di misura del tempo della macchina Macchine di questo tipo sono dette sincrone perché il loro comportamento dipende sia dal trascorrere del tempo sia dal verificarsi di “eventi”. Nelle macchine sincrone con ingressi sincroni la “durata” di un simbolo di uscita è sempre un multiplo di Tck . Per ottenere una durata pari a k Tck occorrono k transizioni di stato 12 ottobre 2000 40 Analisi e sintesi di reti logiche sequenziali 12 ottobre 2000 41 Modello formale di ogni rete che riceve e fornisce segnali binari 1: Schema logico (struttura) x1(t) x2(t) z1(t) z2(t) x3(t) Rete logica zm(t) xn(t) 2: Espressioni (comportamento) 12 ottobre 2000 xi(t), zj(t) B0,1 zj(t) = Fj (t, x1(t) , x2(t), …, xn(t)) per j=1,..,m 42 IL CASO GENERALE di rete logica sequenziale ingresso i x1 x2 xn uscita u z1 z2 Rete logica combinatoria zm u = F(i,s) s(t+Dt) = S(t) yk Yk ritardo y2 y1 stato presente s 12 ottobre 2000 ritardo ritardo Y2 Y1 stato futuro S = G(i,s) 43 Dalla macchina sequenziale sincrona alla rete sequenziale sincrona (1/2) la discretizzazione del tempo e le funzioni F,G e il ritardo sulla retroazione u(tn ) = P (i ,i(t0),i(t1), …., i(tn-1), i(tn)) i(tn) u(tn) F u(tn ) = F(s(tn),i(tn)) s(tn+1) = G(s(tn),i(tn)) T0 t0 T1 t1 T2 t2 T3 t3 Tn-1 Tn tn • Ti : iesimo periodo di clock (periodo = T) • ti : iesimo istante di clock (ti - ti-1 = T) • In corrispondenza degli istanti di clock ti lo stato interno si aggiorna e quindi rimane stabile per tutto il periodo Ti fino a ti+1 12 ottobre 2000 s(tn+1) Tn+1 G tn+1 stato interno: il riassunto della “storia passata” Stato futuro s(tn) Ritardo T s(t0) = i 44 Dalla macchina sequenziale sincrona alla rete sequenziale sincrona (2/2): Una realizzazione della rete sequenziale sincrona i x1 xn y1 Rete combinatoria yk • Il ritardo sulla retroazione viene realizzato con una “rete logica” detta Flip Flop D (FF-D) • Ci vuole un FF-D per ogni variabile di stato Q Q j z1 zm Y1 k Yk D D z i n = F i (x 1,.., x n , y 1 ,.., y k)n per i = 1, .. , m y i n+1 = Y i n = G i (x 1,.., x n , y 1 ,.., y k)n per i = 1, .. , k 12 ottobre 2000 45 Il flip-flop come elemento di ritardo D Q Q n+1 = D n equazione caratteristica del FF “D” Q’ clock C (n-1) . T0 n . T0 (n+1) .T0 ingresso D D n-1 Dn D n+1 uscita Q Q n-1 Qn Q n+1 12 ottobre 2000 46 Vincolo per il corretto funzionamento di una rete sequenziale sincrona Fronte di salita del clock t T 0 R + RC + SU SU: tempo max. di set up dei FF RC: tempo max. di risposta della rete comb. R: tempo max. di risposta dei FF Campionamento dei Di 12 ottobre 2000 47 I problemi di sintesi e di analisi per le reti sequenziali sincrone SINTESI - Dato un comportamento di tipo 1, 2 o 3 (lucido 32), individuare: la più “opportuna” frequenza del clock, il n° minimo di stati la “migliore” realizzazione delle reti di uscita e di aggiornamento dello stato interno ANALISI - Dato uno schema logico con gate e flip-flop sincroni, individuare: il grafo degli stati una descrizione “a parole” del comportamento 12 ottobre 2000 48 Procedimento di sintesi di R.S.S.: dalla DESCRIZIONE A PAROLE alla RETE LOGICA Si può passare da una descrizione a parole del funzionamento di una macchina sequenziale sincrona alla R.S.S. corrispondente eseguendo in sequenza i seguenti passi: 1 - si costruisce il diagramma degli stati 2 - si ricava la tabella di flusso 3 - si individua la tabella di flusso minima (cioè la tabella col numero minimo di stati) 4 - si codificano gli stati con variabili binarie (variabili di stato) 5 - si ricava la tabella delle transizioni 6 - si disegnano le mappe di Karnaugh o le t.d.v. delle variabili di stato e di uscita (funzioni F e G) 7 - si scrivono le espressioni di costo minimo dello stato futuro e delle uscite (sintesi di F e G) 8 - si disegna lo schema logico inserendo un FF-D sul ramo di retroazione di ogni variabile di stato 9 - si individua la massima frequenza di clock compatibile con il corretto funzionamente della rete 10 - si realizza il circuito con FF-D e operatori elementari, oppure con dispositivi programmabili Il passo 3 e la minimizzazione nel passo 7 non sono strettamente necessari; se effettuati portano alla sintesi minima della R.S.S. con FF-D; è sempre possibile, ma ormai in disuso, utilizzare altri tipi di flip flop al posto dei FF-D Sono ormai di uso comune strumenti di sintesi logica automatica che consentono di passare direttamente dal diagramma degli stati al file di configurazione di circuiti logici programmabili (es. FPGA) 12 ottobre 2000 49 Procedimento di analisi di R.S.S.: dalla RETE LOGICA alla DESCRIZIONE A PAROLE • Si può passare dallo schema logico di una R.S.S. (con ritardi sulla retroazione realizzati con FF-D) alla descrizione a parole del suo comportamento eseguendo in sequenza i seguenti passi: 1 - si scrivono le espressioni di G ed F, cioè le espressioni delle variabili di stato stato futuro (ingressi D dei FF) e delle uscite 2 - si esegue l’analisi delle espressioni di G e F (si disegnano cioè le mappe di Karnaugh o le t.d.v. delle variabili di stato futuro e di uscita) 3 - si ricava la tabella delle transizioni (t.d.t) 4 - si assegna un nome simbolico ad ogni configurazione delle variabili di stato interno presente (una configurazione, cioè uno stato per ogni riga della t.d.t.) 5 - si ricava la tabella di flusso (t.d.f.) 6 - si disegna il diagramma degli stati (d.d.s.) 7 - si descrive a parole il funzionamento della macchina sequenziale sincrona a cui corrisponde il d.d.s. disegnato aiutandosi eventualmente con forme d’onda • I passi 4 e 5 sono opzionali • Sono ormai diffusi simulatori logici per Personal Computer che costruiscono l’andamento nel tempo delle variabili di uscita di una R.S.S. in funzione di pattern di ingresso scelti dall’operatore. • Il simulatore può essere utilizzato sia in fase di sintesi di una R.S.S. per verificarne il corretto funzionamneto, sia in analisi per individuare il comportamento di una R.S.S. assegnata 12 ottobre 2000 50 Riepilogo sulla classificazione delle macchine digitali e sul loro comportamento nel tempo Forme d’onda di riferimento 12 ottobre 2000 51 Classificazione delle macchine Macchina Comp. Evento combinatoria 1 nuovo ingresso i asincrona 1 nuovo ingresso i sincrona 2, 3 Uscita Stato u = F(i) non occorre lo stato u = F(s,i) s*=G(s,i) aggiorn. immediato = F(s*,i) s*=G(s*,i) intervallo n-esimo aggiorn. alla fine ° un = F(sn,in) s*n=G(sn,in) sn+1= s*n ° Un “orologio” esterno (clock) suddivide il tempo in intervalli tutti eguali, durante i quali ingresso, uscita e stato sono per ipotesi costanti. L’aggiornamento dello stato avviene nell’istante che delimita due intervalli consecutivi (istante di sincronismo). 12 ottobre 2000 52 La macchina combinatoria tn tn+1 ingresso i j k uscita F(i) F(j) F(k) ritardo p p : intervallo di tempo impiegato per il calcolo di F 12 ottobre 2000 53 La macchina asincrona p : intervallo di tempo impiegato per il calcolo di F e di G tn ingresso j stato presente s i s* uscita F(j,s) stato futuro s = G(j,s) 12 ottobre 2000 tn+1 F(i,s) = F(i,s*) s* = G(i,s) = G(i,s*) ritardo p 54 Un esempio di macchina asincrona: la lampada da tavolo rilasciato,spenta premuto,accesa premuto, spenta a b premuto, spenta rilasciato, accesa rilasciato, accesa rilasciato, spenta d pulsante i I:{rilasciato,premuto} lampadina u U:{spenta, accesa} Questa macchina ha un comportamento di “tipo 1” 12 ottobre 2000 a b g d premuto, accesa rilasciato a , spenta g, accesa g , accesa a , spenta g premuto b , spenta b , accesa d , accesa d , spenta 55 La macchina sincrona T0 : intervallo di tempo in cui la macchina non modifica il suo stato tn tn+1= tn + T0 ingresso i n-1 in i n+1 stato presente s n-1 sn s n+1 uscita F(in,sn) stato futuro G(in,sn) ritardo p p : intervallo di tempo impiegato dal calcolo di F e di G 56 12 ottobre 2000 Una macchina sincrona di tipo 2: la lavapiatti stop Immis. acqua Riposo t1 Riscaldamento start t2 t7 Scarico acqua Controllo start/stop durata fase Timer 12 ottobre 2000 tempo scaduto Detersivo & getti t6 Getti t3 t5 Immis. acqua t4 Scarico acqua I cambiamenti di stato avvengono quando il timer segnala che è scaduto il tempo di attesa richiesto per la fase associata allo stato 57 presente. Una macchina sincrona di tipo 3: il processore BUS Fase di fetch Fase di execute CPU o clock Processore La macchina usa il periodo del clock come “unità di misura” del tempo. La durata della fase di execute dipende dall’istruzione che la fase di 12 ottobre 2000 58 fetch ha reperito in memoria. 1.3 La proprietà di decomposizione 12 ottobre 2000 59 Decomposizione Una macchina sequenziale M con N stati può essere decomposta in due macchine più semplici M1 e M2, rispettivamente con N1 e N2 stati (N1 < N, N2 < N, N1 N2 N). La proprietà di decomposizione in sottomacchine vale fino a quando si arriva ad identificare un componente primitivo. M M1 i F u M2 12 ottobre 2000 60 Il Controllo ed il Percorso dei dati richiesta notifica controllo comandi dato 12 ottobre 2000 stato percorso dei dati risultato 61 il Percorso dei dati: Elaborazione e I/O Elaborazione Input Output controllo richiesta dato controllo protocollo di ingresso 12 ottobre 2000 controllo operandi operazioni risultati notifica protocollo risultato di uscita 62 il Controllo: Programma ed Interprete Elaborazione richiesta dato Input memoria istruzioni controllo Output controllo interprete controllo protocollo di ingresso operandi operazioni risultati protocollo risultato di uscita 12 ottobre 2000 notifica 63 Regole “elementari” di decomposizione a) in serie u=M2(M1(i)) M1 i M2 u b) in parallelo M1 u1 M2 u2 i c) in retroazione i M1 s M2 12 ottobre 2000 u Deve operare prima il blocco a sinistra, poi quello a destra. { u1=M1(i) u2 =M2(i) I due blocchi operano contemporaneamente. u=M1(i, s) s=M2(u) u=M1(i, M2(u)) È necessario che l’anello completi un calcolo prima di avviarne uno 64 nuovo.