Pobierz prezentację
Pobieranie prezentacji. Proszę czekać
1
Aktualne problemy syntezy logicznej
dotyczą analizy danych przy rozpoznawaniu wzorców w takich zastosowaniach jak: dystrybucja adresów IP, skanowanie wirusów, wykrywanie niepożądanych danych. T. Sasao: Index Generation Functions: Logic Synthesis for Pattern Matching Analogiczne problemy występują w analizie danych np. przy rozpoznawaniu wzorców w takich zastosowaniach jak.. Ze względu na bardzo ważne zastosowania, poświęca się tym zagadnieniom stosunkowo dużą liczbę prac naukowych Index Generation Functions: to metodyka syntezy logicznej układów cyfrowych starająca się sprostać wyzwaniom stawianym przez konieczność precyzyjnego wyodrębniania właściwych danych z ogromnej masy danych niepotrzebnych. 1
2
Rozpoznawanie wzorców…
…polega na selekcji niewielkiej liczby indeksowanych danych 1 ogromnej liczby danych wejściowych 1 Układ selekcji Kłopot polega na tym, że na wejście układu selekcji przychodzą tysiące (setki tysięcy) innych wektorów. Jak wyłapać te prawidłowe. 2
3
Kontroler dostępu do terminali
Access Control 53:03:74:59:03:32 92:6D:56:26:1E:63 81:0A:97:26:44:08 73:6E:58:56:73:52 0B:97:26:34:08:76 Decydującą rolę w projektowaniu tych układów odgrywają procedury syntezy logicznej, wymagające zaawansowanych algorytmów analizy danych, a sama realizacja sprzętowa jest nieskomplikowana… Decydującą rolę w projektowaniu takich układów odgrywają procedury syntezy logicznej , wymagające zaawansowanych algorytmów analizy danych, a sama realizacja sprzętowa jest nieskomplikowana…
4
Układ do wykrywania wzorców
x1 y1 x2 Pattern matching circuit y2 x3 y3 y4 x40 Trzeba wykryć stosunkowo niewielką liczbę wzorów spośród ogromnej liczby innych wektorów 40-bitowych… T. Sasao, Index Generation Functions: Logic Synthesis for Pattern Matching, EPFL Workshop on Logic Synthesis & Verification, Dec 4
5
Jak zaprojektować układ do wykrywania wzorców?
10 wektorów 40 bitowych Jak zaprojektować układ do wykrywania wzorców? T. Sasao, Index Generation Functions: Logic Synthesis for Pattern Matching, EPFL Workshop on Logic Synthesis & Verification, Dec 5
6
10 wektorów 40 bitowych Trzeba znaleźć takie kolumny (najlepiej najmniejszą ilość), które ustawione obok siebie - swoimi wierszami będą reprezentowały różne wzorce 6
7
Jak wyselekcjonować… …te prawidłowe
Wystarczy wybrać kolumny 6, 16, 24 i 31 0000 1011 1111 1110 1010 0010 0100 1100 1101 0001 Jak wyselekcjonować te prawidłowe. Wystarczy wybrać kolumny 6, 16, 24 i 31. Z merytorycznego punktu widzenia jest to problem obliczania minimalnych zbiorów argumentów dla funkcji boolowskiej. Ale jak to obliczyć ??? 7
8
Błyskawica Reduction of attributes 8
9
Generator indeksów RSES nie potrafi tego policzyć… 2261 reduktów
1435 ms .type fr .i 40 .o 4 .p 10 .e Możemy wrócić do przykładu, który już omawialiśmy… Program zrealizowany przez studenta (nazwany Błyskawicą) liczy wszystkie minimalne zbiory argumentów.. Nie miałem cierpliwości aby doczekać się rozwiązania liczonego algorytmem systemu RSES. RSES nie potrafi tego policzyć… 9
10
…znajduje wszystkie redukty najmniejsze (2261) w czasie 1435 ms.
Błyskawica …znajduje wszystkie redukty najmniejsze (2261) w czasie 1435 ms. Jeden z najmniejszych reduktów x6, x16, x24 i x31 Wynik Sasao 0000 1011 1111 1110 1010 0010 0100 1100 1101 0001 01100 01011 11110 00011 00111 01110 00100 11111 11101 10100 10
11
Głównym problemem jest zatem obliczanie reduktów!
Generator indeksów Zadanie takie rozwiązuje się algorytmem redukcji argumentów 5 4 x1 4 5 Układ selekcji Pamięć główna AND Pamięć pomocnicza 35 x2 35 Głównym problemem jest zatem obliczanie reduktów! 35 Komparator x2 T. Sasao, Index Generation Functions: Logic Synthesis for Pattern Matching, EPFL Workshop on Logic Synthesis & Verification, Dec 11
12
Dodatkowe uproszczenie struktury
Generator indeksów 5 4 4 x1 4 5 4 Układ selekcji Pamięć główna AND Pamięć pomocnicza 35 x2 36 35 36 35 Komparator x2 36 Dodatkowe uproszczenie struktury 12
13
Komentarz Najpilniejsze zadanie… Current Projects
• Minimizers for input variables – high-speed applications – exact minimum • Functional decomposition – using multiple IGUs T. Sasao, Index Generation Functions: Logic Synthesis for Pattern Matching EPFL Workshop on Logic Synthesis & Verification, Dec 13
14
Niestety… KOD 2 z 16 …procedura redukcji argumentów nie zawsze jest skuteczna w redukowaniu wejść do pamięci ROM realizujących funkcje generowania indeksów Minimalna liczba argumentów dla k z n wynosi n - 1 14
15
(Linear Decomposition)
Dekompozycja liniowa (Linear Decomposition) y1 = xi1 yi1 MUX n yp = xip yip . Linear Function General X n p q Łączenie argumentów w pary Zmniejszanie liczby wejść… T. Sasao, Index Generation Functions: Logic Synthesis for Pattern Matching, EPFL Workshop on Logic Synthesis & Verification, Dec 15
16
Dekompozycja liniowa - ogólnie
F = H(G1, G2,…, X) X reprezentuje zmienne nie biorące udziału w realizacji funkcji G Funkcję G nazywać można g-argumentem Założenie: x0 x1 xn ROM W dekompozycji liniowej stosujemy funkcje o zredukowanej liczbie argumentów, czyli minimalno-argumentowe reprezentacje funkcji F 16
17
Zbiory niezgodności Cpq = {x1, x3, x6,...} F: Dn {0,1}m
Cpq = {xi: aibi = 1}, gdzie ai, bi, to składowe wektorów a, b a,b{0,1}n : F(a) ≠ F(b), będą reprezentowane liczbami p,q K = {1,..., | Dn |} x1 x2 x3 x6 xn p 1 output1 q output2 Cpq = {x1, x3, x6,...} Rodzina zbiorów Cpq - RCpq 17
18
Twierdzenie Dekompozycja nierozłączna: Dekompozycja wielokrotna:
jest dekompozycją minimalno-argumentowej funkcji F, wtedy i tylko wtedy gdy {xi, xj} RCpq. Dekompozycja nierozłączna: Dekompozycja wielokrotna: zmienne wejściowe współdzielone są pomiędzy dwie lub wiele bramek: {xi xj , xj xk}, g-argumenty są powtarzane dla rozłącznych par zmiennych: {xi xj , xk xl , …}. 18
19
Dekompozycja nierozłączna i wielokrotna
Istnienie dekompozycji z funkcją {xi xj , xj xk}, może zostać zweryfikowane przez sprawdzenie czy zbiór zmiennych {xi, xj, xk} zawarty jest w rodzinie RCpq. Istnienie dekompozycji z funkcją {xi xj , xk xl}, może zostać zweryfikowane przez sprawdzenie czy zbiór zmiennych {xi, xj, xk, xl} zawarty jest w rodzinie RCpq. Uzupełnienie RCpq względem rodziny wszystkich podzbiorów o liczności równej liczności analizowanych Cpq : COM(RCpq) 19
20
dekompozycja wielokrotna?
Przykład x1 x2 x3 x4 x5 F 1 2 3 4 5 6 7 8 9 10 11 p,q Cpq 1,6 x4 x5 1,11 x1 x4 2,8 x2 x4 2,10 x1 x3 3,6 x2 x5 3,11 x1 x2 4,6 x2 x3 COM(RCpq) x1 x5 x3 x4 x3 x5 G1 = x1 x5 G2 = x3 x4 G3 = x3 x5 G-argumenty Czy możliwa jest dekompozycja wielokrotna? 20
21
Przykład… Dekompozycja wielokrotna: RCpq {xi xj , xk xl}.
x2 x3 x5 x1 x2 x4 x1 x4 x5 x1 x3 x5 x3 x4 x5 x1 x2 x5 x1 x2 x3 x1 x3 x4 x2 x3 x4 x5 x1 x2 x3 x5 x1 x2 x3 x4 x1 x2 x3 x4 x5 G1 = F = H(G1, G2, x2) G2 = G3 = COM(RCpq) x1 x2 x4 x5 x1 x3 x4 x5 x1 x3 x4 x5 21
22
Przykład*) 1-OUT-OF-10 FUNCTION F = H(y1, y2, y3, y4, y5, y6)
x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 1: | | 2: | | 3: | | 4: | | 5: | | 6: | | 7: | | 8: | | 9: | | 10:| | y1 y2 y3 y4 y5 y6 y1 = y2 = y3 = y4 = y5 = y6 = T. Sasao, Index Generation Functions: Logic Synthesis for Pattern Matching EPFL Workshop on Logic Synthesis & Verification, Dec 22
23
Przykład… Brak zmiennej x2 Nowe oznaczenia… x1 x3 x4 x5 x6 x7 x8 x9
1-OUT-OF-10 FUNCTION a1 a2 a3 a4 a5 a6 a7 a8 a9 1: | | 2: | | 3: | | 4: | | 5: | | 6: | | 7: | | 8: | | 9: | | 10:| | Brak zmiennej x2 Nowe oznaczenia… x1 x3 x4 x5 x6 x7 x8 x9 x10 a1 a2 a3 a4 a5 a6 a7 a8 a9 23
24
Przykład… Cała rodzina niezgodności a1 a2 a1 a3 a1 a4 a1 a5 a1 a6
1-OUT-OF-10 FUNCTION a1 a2 a3 a4 a5 a6 a7 a8 a9 1: | | 2: | | 3: | | 4: | | 5: | | 6: | | 7: | | 8: | | 9: | | 10:| | 24
25
wszystkie możliwe zbiory trzy elementowe
Przykład… Rodzina niezgodności a1 a2 a1 a3 a1 a4 a1 a5 a1 a6 a1 a7 a1 a8 a1 a9 a2 a3 a2 a4 a2 a5 a2 a6 a2 a7 a2 a8 a2 a9 a3 a4 a3 a5 a3 a6 a3 a7 a3 a8 a3 a9 a4 a5 a4 a6 a4 a7 a4 a8 a4 a9 a5 a6 a5 a7 a5 a8 a5 a9 a6 a7 a6 a8 a6 a9 a7 a8 a7 a9 a8 a9 COM(RCpq) 36 par pusty zbiór par! wszystkie możliwe zbiory trzy elementowe Wszystkie możliwe trójelementowe podzbiory zbioru: a1 a2 a3 a4 a5 a6 a7 a8 a9 25
26
Przykład… Nie ma żadnej dekompozycji:
1-OUT-OF-10 FUNCTION a1 a2 a3 a4 a5 a6 a7 a8 a9 1: | | 2: | | 3: | | 4: | | 5: | | 6: | | 7: | | 8: | | 9: | | 10:| | Nie ma żadnej dekompozycji: Nie ma żadnej dekompozycji rozłącznej wielokrotnej Natomiast ma dekompozycję nierozłączną wielokrotną dla wszystkich możliwych trójek argumentów: ai aj ak al am an ap aq ar 26
27
Konfrontacja z wynikiem Sasao
…to również dla takich a1 a4 a5 a2 a6 a8 a3 a7 a9 …co jest zgodne z wynikiem Sasao: …który w jego artykule zapisany jest z inną kolejnością argumentów Sasao nie mógł nie natrafić na taką dekompozycję! 27
28
Można sprawdzić… Oczywiście również istnieje dekompozycja wg naturalnego porządku zmiennych, czyli Dane wejściowe: a1 a2 a3 a4 a5 a6 a7 a8 a9 b1 b2 b3 b4 b5 b6 28
29
Dalsza kompresja… b1 b2 b3 b4 b5 b6 Rodzina niezgodności: Zbiór wszystkich możliwych par oraz zbiór „trójek” i żadnego zbioru 6 elementowego. b1;b3;b4; b1;b5;b6; b1;b2;b3; b1;b2;b4; b1;b2;b5; b1;b2;b6; b2;b3;b4; b2;b5;b6; b3;b5;b6; b3;b4;b5; b3;b4;b6; b4;b5;b6; W uzupełnieniu rodziny są „trójki” b1;b3;b5; b1;b3;b6; b1;b4;b5; b1;b4;b6; b2;b3;b5; b2;b3;b6; b2;b4;b5; b2;b4;b6; i „szóstka”. b1;b2;b3;b4;b5;b6; 29
30
..istnieje jeszcze lepszy wynik
h 1 2 3 4 5 6 7 8 9 10 1000 8 0000 0 0010 2 0011 3 0100 4 0101 5 0001 1 30
31
Sekwencyjna kompresja argumentów
1-OUT-OF-10 FUNCTION Reducing arguments [x0, x1, x2, x3, x4, x5, x6, x7, x8] .type fr .i 9 .o 4 .p 10 [x0, x1, x2, x3, x4, x5, x6, x7, x8, x9] .type fr .i 10 .o 4 .p 10 Redukcja argumentów 31
32
Sekwencyjna kompresja argumentów
Reducing arguments [x0, x1, x2, x3, x4, x5, x6, x7, x8] [x3, x4, x5, x6, x7, x8, x0 ⊕ x1, x1 ⊕ x2] .type fr .i 9 .o 4 .p 10 .type fr .i 8 .o 4 .p 10 Dekompozycja dla trzech pierwszych zmiennych Compressing arguments [0, 1, 2] 32
33
Sekwencyjna kompresja…
Plik wejściowy Wynik kompresji .type fr .i 10 .o 4 .p 10 .type fr .i 4 .o 4 .p 10 Wykonana dekompozycja liniowa y1 = x0 ⊕ x1 ⊕ x3 ⊕ x4, y2 = x3 ⊕ x4 ⊕ x6 ⊕ x7, y3 = x1 ⊕ x2 ⊕ x4 ⊕ x5, y4 = x4 ⊕ x5 ⊕ x7 ⊕ x8 33
34
Podsumowanie Nowe zadania syntezy logicznej: redukcja argumentów
dekompozycja liniowa dekompozycja funkcjonalna są wynikiem nie tylko specyficznej budowy układów FPGA, ale również pojawiających się nowych zastosowań w analizie danych dystrybucja adresów IP, skanowanie wirusów, wykrywanie niepożądanych danych, konwersja kodów itp. 34
Podobne prezentacje
© 2024 SlidePlayer.pl Inc.
All rights reserved.