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