I T P W ZPT 1 Kodowanie stanów to przypisanie kolejnym stanom automatu odpowiednich kodów binarnych. b = log 2 |S| Problem kodowania w automatach Minimalna liczba bitów b potrzebna do zakodowania automatu, w którym liczność zbioru S jest |S| v1v1 v2v2 v3v3 Y S1S1 S1S1 S4S4 ─y2y2 S2S2 S5S5 S3S3 S1S1 y1y1 S3S3 S4S4 ─S5S5 y3y3 S4S4 S1S1 S2S2 S3S3 y2y2 S5S5 S4S4 ─S2S2 y4y Q1Q2Q3 Złożoność realizacji sprzętowej automatu silnie zależy od sposobu zakodowania stanów!
I T P W ZPT 2 Problem kodowania xsxs 0101 AAB00 BAC00 CDC00 DAB01 Wariant I A = 00 B = 01 C = 10 D = 11 Wariant II A = 00 B = 11 C = 01 D = 10 Wariant II Wariant I
I T P W ZPT 3 Kodowanie 3 stany - 3 różne kodowania 4 stany - 3 różne kodowania 5 stanów kodowań 7 stanów -840 kodowań 9 stanów - Jak przewidzieć (obliczyć) najlepsze kodowanie stanów? Czy realne jest sprawdzenie wszystkich możliwości
I T P W ZPT 4 Elementy rachunku podziałów c.d. Iloczyn podziałów, iloraz podziałów oraz relacja Sumą podziałów a + b nazywamy najmniejszy (względem relacji ) podział, który jest nie mniejszy od a oraz b. Suma podziałów Jedyną rozsądną z punktu widzenia dzisiejszych technologii i realną do omówienia w ograniczonym czasie wykładu jest metoda wykorzystująca podział z własnością podstawienia. KODOWANIE
I T P W ZPT 5 Przykładzik aa bb a + ba + b a + ba + b a + ba + b a + ba + b a + ba + b
I T P W ZPT 6 Własność podstawienia Podział na zbiorze stanów automatu M= ma własność podstawienia (closed partition), gdy dla każdej pary stanów S i, S j należącej do tego samego bloku i każdego wejścia I k stany I k S i oraz I k S j należą do wspólnego bloku . xsxs 0101 AAF00 BEC01 CCE01 DFA10 EBF11 FDE00 Podziały z własnością podstawienia:
I T P W ZPT 7 Twierdzenie Dany jest automat M o zbiorze stanów S, |S| = n. Do zakodowania stanów potrzeba Q 1,..., Q k elementów pamięci. ( ) – liczba bloków podziału Jeżeli istnieje podział z własnością podstawienia i jeżeli r spośród k zmiennych kodujących Q 1,..., Q k, gdzie r = log 2 ( ) , jest przyporządkowanych blokom podziału tak, że wszystkie stany zawarte w jednym bloku są oznaczone tymi samymi kodami Q 1,..., Q r, to funkcje Q’ 1,..., Q’ r, są niezależne od pozostałych (k – r) zmiennych.
I T P W ZPT 8 Przykład 1- interpretacja w.p. xsxs 0101 AAF00 BEC01 CCE01 DFA10 EBF11 FDE Kodowanie wg 1 A B C D E F Nie wystarcza to do zakodowania 1 = (0) Warunek jednoznaczności kodowania!
I T P W ZPT 9 Przykład 1… xsxs 0101 AAF00 BEC01 CCE01 DFA10 EBF11 FDE00 Q 1 Q 2 Q 3 A B C D E F Co to znaczy, że zastosujemy kodowanie wg podziału zamkniętego: Q 1 ’ = D 1 = f(x,Q 1 ) Nie musimy obliczać funkcji wzbudzeń, aby stwierdzić, że pierwsza z nich, czyli D 1 będzie… Niestety tylko jedną zmienną zakodowaliśmy wg podziału zamkniętego, zatem: a co z pozostałymi? Q 2 ’ = D 2 = f(x,Q 1,Q 2,Q 3 ) Q 3 ’ = D 3 = f(x,Q 1,Q 2,Q 3 )
I T P W ZPT 10 Przykład 1… xsxs 0101 AAF00 BEC01 CCE01 DFA10 EBF11 FDE00 Kodowanie wg A B C D E F 2 2 Jest to kodowanie jednoznaczne A może jest więcej podziałów zamkniętych: Później wykażemy, że oprócz 1 jest 2
I T P W ZPT 11 PRZYKŁAD 1 c.d. Przy tak dobranym kodowaniu pierwsza funkcja wzbudzeń Q 1 ’ tego automatu będzie zależna od jednej zmiennej wewnętrznej, a druga i trzecia łącznie (Q 2 ’, Q 3 ’) od dwóch zmiennych wewnętrznych, czyli Q 1 ’ = f(x,Q 1 ) Q 2 ’ = f(x,Q 2,Q 3 ) Q 3 ’ = f(x,Q 2,Q 3 ) Kto nie wierzy, niech zakoduje, obliczy funkcje Q 1 ’, Q 2 ’, Q 3 ’ i sprawdzi. Dla całego roku!
I T P W ZPT 12 Obliczanie podziału zamkniętego xsxs 01 AAF BEC CCE DFA EBF FDE A,BA,EC,FC,D F E B,DA,CE,FA,DA,F A,B A,C A,D Tworzymy graf par następników dla różnych wierzchołków początkowych
I T P W ZPT 13 PRZYKŁAD 2 xsxs 01Z AHB0 BFA0 CGD0 DEC1 EAC0 FCD0 GBA0 HDB0 Generujemy podziały zamknięte Do zakodowania stanów automatu M potrzebne są 3 podziały 2-blokowe, takie że:
I T P W ZPT 14 PRZYKŁAD 2 c.d. xsxs 01Z AHB0 BFA0 CGD0 DEC1 EAC0 FCD0 GBA0 HDB0 Graf par następników : A,BF,H C,D E,FA,CG,E G,HB,D
I T P W ZPT 15 PRZYKŁAD 2 c.d. xsxs 01Z AHB0 BFA0 CGD0 DEC1 EAC0 FCD0 GBA0 HDB0 A,D D,H B,F + = 2
I T P W ZPT 16 PRZYKŁAD 2 c.d. Niestety: Potrzebny jest więc jeszcze jeden podział :
I T P W ZPT 17 PRZYKŁAD 2 c.d Kodowanie wg 1 2 2 A B C D E FGHFGH
I T P W ZPT 18 PRZYKŁAD 2 c.d. Przy tak dobranym kodowaniu dwie funkcje wzbudzeń Q 1 ’ i Q 2 ’ tego automatu będą zależne od jednej zmiennej wewnętrznej, a trzecia Q 3 ’ (w najgorszym przypadku) od trzech zmiennych, czyli Q 1 ’ = f(x,Q 1 ) Q 2 ’ = f(x,Q 2 ) Q 3 ’ = f(x,Q 1,Q 2,Q 3 ) Warto zakodować, obliczyć funkcje wzbudzeń Q 1 ’, Q 2 ’, Q 3 ’ i sprawdzić, czy rzeczywiście tak jest.
I T P W ZPT 19 Komentarz Każde inne kodowanie doprowadzi do bardziej skomplikowanych funkcji wzbudzeń. Q 1 ’ = f(x,Q 1 ) Q 2 ’ = f(x,Q 1,Q 2,Q 3 ) Q 3 ’ = f(x,Q 1,Q 2,Q 3 ) A B C D E FGHFGH Każde inne kodowanie doprowadzi do bardziej skomplikowanych funkcji wzbudzeń. W szczególności dla kodowania wg naturalnego kodu binarnego 1) : 1) Naturalny kod binarny jest przyjmowany domyślnie do kodowania automatów w komercyjnych systemach projektowania układów cyfrowych
I T P W ZPT 20 Nie martwmy się… W najnowszych systemach istnieje opcjonalna możliwość wprowadzenia kodowania obliczonego zewnętrznie przez użytkownika