wykład pdf
Transkrypt
wykład pdf
Kolejkowanie Systemy wbudowane dr. inŜ. Paweł Russek Katedra Elektroniki AGH Graf sekwencyjny • Graf sekwencyjny: biegunowy, acykliczny • Graf acykliczny to graf nie zawierający cykli • Cykl to droga zamknięta • G(V,E) • V={vi; i=0,1,...,n} • E={(vi, vj); i,j=0,..,n} • Węzły reprezentują wykonywane operacje • Zawiera odpływ i źródło (NOP) 1 Graf sekwencyjny • Zawiera informacje o zaleŜności pomiędzy wykonywanymi operacjami, • Źródło ma indeks 0, odpływ indeks n Kolejkowanie (ang. scheduling) • Rozmieszczenie operacji w czasie • D={di: i=0,1, ... ,n}; zbiór opóźnień wykonywanych operacji • Zbiór T={ti: i=0,1, ... ,n}; czasy rozpoczęcia operacji • ti< tj + dj gdzie węzeł i następuje po węźle j • Zadanie polegające na ustaleniu czasów rozpoczęcia operacji przy zachowaniu kolejności wynikającej z grafu • W układach synchronicznych mierzymy czas opóźnienia w cyklach • Opóźnienie λ=tn-t0 2 Kolejkowanie • Od kolejkowania zaleŜy współbieŜność • Maksymalna liczba wykonywanych w danym kroku operacji ogranicza liczbę potrzebnych zasobów • Kolejkowanie • Bez ograniczeń • Z ograniczeniem zasobów. • Z ograniczeniami czasowymi • Kolejkowanie • Statyczne • Dynamiczne Kolejkowanie z ograniczeniem • Potrzeba stosowania ograniczeń zasobów wynika z ograniczonej powierzchni układu • Rozwiązanie tego problemu pozwala na osiągnięcie kompromisu powierzchnia/czas • Problem NP-trudny • Praktycznie moŜemy uzyskiwać jedynie rozwiązana przybliŜone 3 Algorytmy kolejkowania • Maksymalna liczba operacji wykonanych współbieŜnie ogranicza od dołu liczbę potrzebnych zasobów • Od góry liczba zasobów moŜe być ograniczona załoŜeniami projektowymi • Problem kolejkowania moŜe mieć wiele rozwiązań • Ostre ograniczenie liczby zasobów wiąŜe się z implementacją szeregową • Kolejkowanie bez ograniczenia ilości zasobów • ASAP • ALAP • Kolejkowanie przy ograniczeniu zasobów Kolejkowanie bez ograniczeń ASAP • As Soon As Possible • Kolejkowanie bez ograniczeń • Ma znaczenie przy stosowaniu zasobów dedykowanych • Koszt implementacji zasobów jest niski w porównaniu z kosztem logiki sterującej • KaŜda operacja rozpoczyna się tak szybko jak tyko pozwalają na to związki z innymi operacjami • Znajduje najmniejsze moŜliwe czasy rozpoczęcia operacji • Problem moŜna rozwiązać sortując topologicznie wierzchołki grafu. Algorytm: v0 kolejkuje dla czasu 0 Repeat { •wybierz wierzchołek którego wszyscy poprzednicy mają juŜ przyporządkowane miejsce w kolejce •kolejkuj wierzchołek dla czasu tw=max(tp+dp); tp∈Tp zbiór czasów przypisanych poprzednikom } until (wszystkie wierzchołki są juŜ przyporządkowane) 4 Kolejkowanie bez ograniczeń ALAP • As Late As Possible • Wybieramy satysfakcjonujące nas λ • Znajduje najmniejsze moŜliwe czasy rozpoczęcia operacji Algorytm: vn kolejkuje dla czasu λ Repeat { •wybierz wierzchołek którego wszyscy następcy mają juŜ przyporządkowane miejsce w kolejce •kolejkuj wierzchołek dla czasu tw=min(Tp) - 1; Tp zbiór czasów przypisanych następcom } until (wszystkie wierzchołki są juŜ przyporządkowane) Ruchliwość •Dla określonego dla ALAP λ moŜemy wyznaczyć ruchliwość oznacza róŜnicę czasu obliczona przez algorytm ALAP i ASAP •Zerowa ruchliwość oznacza, Ŝe operacja musi zacząć się w określonym czasie 5 Kolejkowanie przy ograniczeniach zasobów • WaŜna i trudne zagadnienie • Wykorzystanie zasobów w znacznym stopniu wpływa na powierzchnię • W przypadku problemów nie zdominowanych przez zasoby na powierzchnię wpływają takŜe inne czynniki • Problem jest NP-trudny Kolejkowanie list • Ustalamy listę operacji gotowych w danym takcie do realizacji • Przypisujemy operacje do dostępnych zasobów na podstawie priorytetów. • Priorytetami mogą być np.: ruchliwość operacji • Liczba krawędzi grafu od danej operacji do odpływu. • Przykład: 6 Kolejkowanie z ograniczeniami czasu Algorytm Hu • Kolejkowanie wieloprocesorowe • Uproszczenie: wszystkie operacje wykonywane przez zasoby jednego typu • Problem: Ile zasobów potrzeba aby opóźnienie wyniosło λ? Etykietowanie grafu sekwencyjnego polega na oznaczeniu kaŜdego wierzchołka wagą najdłuŜszej ścieŜki od niego do odpływu, mierzonej liczbą krawędzi {αi;i=1,2, ... n}. Definiujemy: α=max αi Oczywiste jest Ŝe λ≥α Twierdzenie: Dolna granica zasobów (nie mniej niŜ) potrzebnych do wyznaczenia kolejności wykonywania operacji o zwłoce λ wynosi. γ ∑ p(α + 1 − j ) j =1 a = max γ γ + λ −α Gdzie: p(j) liczba wierzchołków o etykietach równych j 7 Algorytm Hu • Kolejkowanie wieloprocesorowe • Uproszczenie: wszystkie operacje wykonywane przez zasoby jednego typu • Problem: Ile zasobów potrzeba aby opóźnienie wyniosło λ? Etykietowanie grafu sekwencyjnego polega na oznaczeniu kaŜdego wierzchołka wagą najdłuŜszej ścieŜki od niego do odpływu, mierzonej liczbą krawędzi {αi;i=1,2, ... n}. Definiujemy: α=max αi Oczywiste jest Ŝe λ≥α Twierdzenie: Dolna granica zasobów (nie mniej niŜ) potrzebnych do wyznaczenia kolejności wykonywania operacji o zwłoce λ wynosi. γ ∑ p(α + 1 − j ) j =1 a = max γ γ + λ −α Gdzie: p(j) liczba wierzchołków o etykietach równych j Przykład • • • • • • a – dolna granica liczby koniecznych zasobów γ - liczba całkowita λ - załoŜona zwłoka projektowanego układu α - najdłuzsza ścieŜka w grafie sekwencyjnym p(j) – liczba wierzchołkóa o etykiecie j Przykład: α =4, λ=5 8 Łączenie (ang. partitioning) • Łączenie zasobów z operacjami • Zasób moŜe realizować więcej niŜ jedną operację (np.: ALU) • Relacja pokrywania typów: dany zasób moŜe posłuŜyć do realizacji określonej operacji • Współdzielenie zasobów jest moŜliwe jeŜeli kilka operacji jest tego samego typu. Operacje nie mogą być realizowane równocześnie Często ograniczenia łączenia zasobów wynikają z ograniczeń wykorzystania zasobów poszczególnych typów. Ograniczenia te reprezentują moŜliwość przydzielenia określonego typu do danego zadania. Łączenie zasobów: graf zgodności • Operacje są zgodne jeŜeli nie są współbieŜne i są w ogólnym przypadku tego samego typu • Graf zgodności zasobów reprezentuje pary zgodnych operacji • Grupa wzajemnie zgodnych operacji odpowiada podzbiorowi wierzchołków wzajemnie połączonych krawędziami. Grupa taka tworzy podgraf reprezentujący wykorzystywany zasób. • Liczba podgrafów pokrywających graf zgodności to liczba zasobów koniecznych do wykonania zadania Graf zgodności Podgraf mnoŜenia Dwa grafy zupełne {v1,v3,v7} {v2,v6,v8} Podgraf ALU Dwa grafy zupełne {v4,v5 ,v10, ,v11} {v9} 9 Łączenie zasobów: grafy konfliktów • Graf w którym zbiór krawędzi reprezentuje pary kolidujących operacji • Właściwe kolorowanie wierzchołków jest rozwiązaniem problemu współdzielenia zasobów • Optymalne współdzielenie zasobów polega na pokolorowaniu wierzchołków minimalną liczbą kolorów • Dobrze jest wierzchołki odpowiadające róŜnym zasobom traktować jako niezaleŜne grafy • Przykład Inne algorytmy • Kolejkowanie list • Kolejkowanie sterowane siłą 10 Kolejkowanie wieloprocesorowe: algorytm Hu • ZałoŜenie: graf sekwencyjny jest drzewem. • Model taki moŜna stosować w przypadku problemów linii produkcyjnej • Algorytm jest optymalny i zawsze potrafi dokonać kolejkowania o zwłoce λ przy liczbie zasobów a. • KaŜda kolejność wykonania operacji przy wykorzystaniu a zasobów ma zwłokę większą lub równą od wyznaczonej przez algorytm Hu HU(Gs(V,E),a){ etykietuj wierzchołki l=1; repeat{ U=wierzchołki z V, dla których nie ustalono kolejności, a które mają skolejkowanych lub nie mają poprzedników Wybierz wierzchołki S⊆ ⊆U, takie, Ŝe |S|≤ ≤a a etykiety S mają największe wartości w U Kolejkuj operacje S w kroku l podstawiając ti=l: vi∈S l=l+1 } Until(skolejkowano vn) return(t) } Integer linear programming ILP • Yields optimal solution to synthesis problems as it is • based on an exact mathematical description of the problem. • Solves scheduling, binding and allocation • simultaneously. • Standard optimization approaches (and software) are available to solve integer linear programs 11 ILP • (1) declares variables x to be binary . • (2) makes sure that exactly one variable xi,t for all t has the value 1, all others are 0. • (3) represents operation start time • (4) guarantees, that all precedence constraints are satisfied: ti≥tj+dj: (vi,vj)∈E • (5) makes sure, that the resource constraints are not violated. For all resource types vk∈ VT and for all time instances t it is guaranteed that the number of active operations does not increase the number of available resource instances. (1) X = {xil ; i = 0,1,..., n; l = 1,2,..., λ + 1} (2) ∑x = 1, i = 0,1,.., n il l (3) ti = ∑ l * xil l ( 4) ∑l ∗ x ≥ ∑l ∗ x il il l l (5) + d j , i , j = 0,1,..., n : (v j , vi ) ∈ E l ∑ ∑x im i ;T ( vi ) = k m = l − d i +1 ≤ ak , k = 1,2,..., nres , l = 1,2,..., λ + 1 • ILP: minimize cTt • t=(t1,t2,...,t λ) • c=(0,0,...,0,1): minimize latency • c=(1,1,...,1,1): optimize operations start time ILP example For c=(1,..1)T we minimize: minimization result 12