Projektowanie systemów wbudowanych: kosynteza metodą programowania genetycznego oraz przydział nieprzewidzianych zadań
System wbudowany Struktura systemu wbudowanego Jednostki obliczeniowe (ang. Processing Elements): uniwersalne (ang. Programable Processors) specjalizowane (ang. Hardware Cores) Kanały komunikacyjne
Zastosowanie systemów wbudowanych Technologia kosmiczna Nowoczesne samochody Telefony komórkowe Sprzęt RTV/AGD Rakiety balistyczne
Projektowanie systemów wbudowanych (wg. De Micheli, Gupta) Tworzenie modelu Implementacja Walidacja
Specyfikacja systemu wbudowanego w postaci grafu zadań v i Є V e i Є E t ij e b ij ij 12 T0 24 36 T1 T2 18 102 6 T3 T4 T5 T6
Przykładowa baza zasobów
Kosynteza Optymalizowane parametry: koszt (powierzchnia) czas pobór mocy
Algorytmy kosyntezy systemów wbudowanych Konstrukcyjne Rafinacyjne
Koszt systemu C o m i1 C PE i n j1 C j p P k k1 l1 C CL, PC k l
Programowanie genetyczne Rozróżnienie między genotypem (drzewo) oraz fenotypem (gotowe rozwiązanie) Ewolucji podlega sposób otrzymania rozwiązania
Sposób otrzymania genotypu (algorytm konstrukcyjny) T0 Embrion T1 T2 F1 F2 T3 T4 F3 F4 T5 F5
Sposób otrzymania genotypu (algorytm rafinacyjny) T0 Embrion T1 T2 3 / 2 1 T3 T4 5 3 4 / 1 T5 2
Węzeł Alokacja zasobu (krok opcjonalny) Przyporządkowanie zasobu dla zadania (krok obowiązkowy) Alokacja kanału komunikacyjnego (krok opcjonalny) Przyporządkowanie kanału komunikacyjnego dla zasobów (krok obowiązkowy) Szeregowanie zadań (listowe) (krok obowiązkowy jeśli do jednego zasobu jest przyporządkowane więcej niż jedno zadanie)
Funkcje konstruujące system (zasoby obliczeniowe) 1. Używany zasób (0,6) najtańszy (0,2) najszybszy (0,2) min(k*t) (0,2) najdłużej bezczynny (0,2) taki sam jak dla poprzednika (0,2) 2. Najtańszy zasób (0,1) 3. Najszybszy zasób (0,1) 4. Najmniejszy iloczyn czasu i kosztu (0,1) 5. Najrzadziej używany (0,1)
Funkcje konstruujące system (kanały komunikacyjne) 1. Używany kanał komunikacyjny (0,5) najtańszy (0,3) najszybszy (0,3) min(k*t) (0,2) najdłużej bezczynny (0,2) 2. Najtańszy kanał komunikacyjny (0,2) 3. Największa przepustowość (0,2) 4. Najrzadziej używany (0,1)
Funkcje rafinujące system (zasoby) 1. Największy zysk kosztu (0,1) 2. Najmniejszy wzrost czasu obliczeń (0,1) 3. Zadanie z największym iloczynem czasu i kosztu przesuń do zasobu, na którym ten iloczyn jest najmniejszy (0,4) 4. Pierwsze zadanie z listy najczęściej używanego PE na najrzadziej używany zasób (0,2) 5. Najdroższa implementacja zadania z najdroższej ścieżki na najtańszą implementaję tego zadania(0,2)
Funkcje rafinujące system (kanały komunikacyjne) 1. Największy zysk kosztu (0,4) 2. Największa przepustowość (0,3) 3. Najrzadziej używany (0,3)
Wielkość pokolenia Π=α*n*e P r
Ewolucja (algorytm konstrukcyjny) Klonowanie Φ=β*Π Krzyżowanie Ψ=γ*Π Mutacja Ω=δ*Π β+γ+δ=1 F(T0) F(T1) F(T2) F(T3) F(T4 F(T5) M(T0) M(T1) F(T2) F(T3) F(T4 F(T5) M(T1) M(T0) M(T5 ) F(T1) M(T3) F(T0) M(T5 ) M(T2) M(T3) M(T4 M(T2) M(T4
Ewolucja (algorytm rafinacyjny) Klonowanie Φ=β*Π Krzyżowanie F1 F3 Embrion F4 F2 F5 M1 Embrion M3 M2 M4 F6 Ψ=γ*Π Embrion Embrion M5 Mutacja Ω=δ*Π F1 F3 M4 M5 M1 M(T2) M(T3) F2 F4 F6 F5 β+γ+δ=1
Zadania dodatkowe (przypadek szczególny) T0 T0 24 36 24 36 T1 T2 T1 T2 12 18 102 6 12 18 102 6 T3 T4 T5 T6 T3 T4 T5 T6 6 30 6 18 T7 T8 T9 T10
Przykładowa baza danych (zadania dodatkowe)
Zadania dodatkowe (przypadek ogólny) T0 T0 24 36 24 36 T1 T2 T1 T2 12 18 22 6 12 18 102 6 T3 T4 T7 T6 T3 T4 T5 T6 102 18 T5 T8
Algorytm c t V i * z s s p k P l PC CL n j j m i PE o C C C C C k l k i 1 1 1, 1 1
Przykład PP1 T4 PP2 T5 T0 T1 PP1 T4, T7, T8 PP2 T5, T9, T10 T0 T1 T2 T3 T6 CL1 T2 T3 T6 CL1
Dziękuję za uwagę