• Nie Znaleziono Wyników

Poza czynnościami uszkodzenia i naprawy procesor zmienia swój stan wykonując program. W pracy założono ścisłe powiązanie procesora z wykonywanym procesem, zatem stan wykonywanego procesu w powią-zaniu ze stanem układów procesora opisanych przez architekturę listy rozkazów będzie nazywany stanem funkcjonalnym.

Def. 3-1

Stan funkcjonalny procesora sp∈ SP określa rodzaj aktualnie wykonywanej czynności wchodzącej w skład

realizowanego programu (procesu). Jest to stan niezależny od stanu niezawodnościowego, mimo że od stanu niezawodnościowego zależy możliwość zakończenia realizowanej aktualnie instrukcji.

Stan funkcjonalny [Zam80] realizowanego procesu bywa w literaturze określany również jako „czas logiczny” lub „czas wirtualny”. Oznacza on stopień realizacji danego procesu. Dla procesów nie zawierających pętli odpowiadałby on w pewnym stopniu wartości licznika rozkazów wskazującemu aktualnie realizowaną instrukcję. W niniejszej pracy autor pozostanie przy określeniu „stan” natomiast pojęcie czasu będzie używane jedynie w stosunku do „czasu fizycznego” mierzonego w sekundach.

Def. 3-2

Zbiorem stanów niezawodnościowo-funkcjonalnych układu procesor + proces nazywany będzie zbiór

SPG = SSG × SP będący iloczynem kartezjańskim zbioru stanów niezawodności procesora i zbioru stanów

funkcjonalnych procesu.

Działaniem procesora będzie nazywana każda zmiana stanu niezawodnościowo-funkcjonalnego. Wzajemna relacja dwóch procesów stochastycznych

W modelu maszyny przyjęto, że zmiany stanu niezawodności opisuje proces Markowa o znanych intensywnościach. Zachodzące równocześnie zmiany stanu funkcjonalnego (postęp obliczeń) opisuje proces semi-Markowa, dla którego czas trwania poszczególnych przejść wynika z grafu przepływu sterowania oraz

szybkości maszyny (opisanej efektywnością η). W najbardziej uproszczonym modelu czasy przebywania w poszczególnych stanach funkcjonalnych są stałe.

W systemach cyfrowych zmiany stanów funkcjonalnych zachodzą kilka rzędów wielkości częściej niż procesy uszkodzeń i napraw, wobec czego przyjęto założenia 3-1, 3-2, 3-3 i 3-4. Wynika z nich, że zmiany stanów procesu semi-Markowa definiują przedziały czasowe, w trakcie których może (ale nie musi) zajść uszkodzenie lub naprawa. Proces Markowa uszkodzeń i napraw odbywa się zatem w dyskretnej przestrzeni czasu (o nierównych odcinkach czasu) określanej przez proces semi-Markowa zmian stanu funkcjonalnego. W granicznym przypadku proces uszkodzeń i napraw staje się „normalnym” procesem Markowa w ciągłej przestrzeni czasu.

tsemM λMar Æ 0 gdzie:

tsemM – średni czas kroku obliczeń procesu semi-Markowa, λMar – intensywność uszkodzeń i napraw procesu,

Uproszczenia grafu procesu

W podstawowym modelu działania procesora dopuszcza się dwa rodzaje przejść w zbiorze stanów układu procesor + proces:

• przejścia opisujące uszkodzenia i naprawy α • przejścia opisujące postęp pracy użytecznej β.

Liczba możliwych stanów grafu działania procesora jest iloczynem liczności zbiorów SSG i SP. Liczba krawędzi jest iloczynem liczby krawędzi SP oraz kwadratu liczby stanów niezawodności.

Wadą opisanego modelu jest jego cykliczność. Istnienie nieskończonych pętli uszkodzeń i napraw utrudnia analizę grafu. Dzięki przyjęciu założeń 3-1, 3-2, 3-3, 3-4 możliwe jest zaproponowanie modelu działania procesora, w którym przejście z jednego stanu sprawności maszyny do drugiego odbywa się jednocześnie z wykonaniem kolejnego kroku obliczeń. W modelu acyklicznym rozróżniane są dwa rodzaje przejść:

• przejścia β opisujące postęp pracy użytecznej,

• przejścia α opisujące uszkodzenia i naprawy przy jednoczesnym wykonaniu obliczeń.

Przy założeniu jednoczesnej zmiany stanu sprawności procesora i wykonania kroku obliczeń, graf przedstawiający proces uszkodzeń, napraw i dokonywania obliczeń jest acykliczny, co ułatwia jego analizę. Podstawowy graf działania procesora oraz odpowiadający mu graf acykliczny przedstawia rys 3-6.

α1 α3 α4 α2 β1 β2 β3 ssg1 sp1 sp2 ssg2 ssg3 α1α2 α3 α4 β1 β2 β3 ssg1 sp1 sp2 ssg2 ssg3

Jeżeli procesor może przechodzić do stanu niesprawnego, uniemożliwiającego dokonywanie obliczeń, to realizacja danego bloku odbywa się w stanie sprawnym poprzedzającym uszkodzenie. Aby zakończyć realizację bloku (i być gotowym do następnej) procesor musi zostać naprawiony. Przejścia pomiędzy stanami funkcjonalnymi zachodzą jedynie pomiędzy stanami, w których procesor jest sprawny. Przejścia do stanu niesprawności i naprawy są zatem zawarte wewnątrz przejść do kolejnego stanu sprawności.

α1 α3 α4 α2 β1 β2 ssg1 sp1 sp2 ssg2 ssg3 α1α2 β2a β1 β2 ssg1 sp1 sp2 ssg2 ssg3

Rys. 3-7. Podstawowy i acykliczny graf ze stanem niesprawności ssg3

Określanie parametrów maszyny

Istotnym elementem prezentowanego modelu jest opis maszyny i jej szybkości wykonywania kodu. Parametry komputera można określić na podstawie jego architektury oraz szybkości taktowania lub też zbadać doświadczalnie.

Teoretyczne określenie parametrów maszyny (np. na podstawie modelu VHDL procesora i otoczenia) wymaga posiadania bardzo dokładnego opisu sprzętu i jest niezwykle złożone. Może być ona jednak dokonane jeszcze przed wprowadzeniem maszyny do produkcji.

Doświadczalne określenie parametrów komputera wymaga wykonania szeregu programów testowych badających szybkość realizacji poszczególnych rodzajów instrukcji. Podczas określania szybkości maszyny wyniki pomiarów podlegają zafałszowaniu na skutek przyjęcia zbyt prostego modelu, lub założenia o regularności rozkładu losowego (a zatem o możliwości określenia parametrów na podstawie małej liczby prób). Błędy systematyczne mogą być spowodowane zależnością szybkości od parametrów nieuwzględnianych podczas testów (np. kolejności dostępów do pamięci). Błędy losowe mogą być spowodowane fluktuacjami szybkości maszyny niezależnymi od rodzaju wykonywanego programu. Aby w sposób wiarygodny określić parametry maszyny konieczne jest zatem zbadanie charakteru losowych zmian czasu realizacji i dobranie odpowiedniej metody pomiarowej.

4. Graf realizacji programu

4.1. Struktura grafu

Graf realizacji programu GRP powstaje w wyniku połączenia modelu programu reprezentowanego przez GPS i modelu maszyny. Obrazuje on działanie systemu podczas wykonywania analizowanej aplikacji. Przekształcenie ma na celu uzyskanie grafu, w którym uwzględniono możliwość awarii i napraw maszyny realizującej program, a w szczególności wykonywania kodu ze zmniejszoną prędkością.

Def. 4-1

Graf realizacji programu jest siecią Petriego wraz z funkcją Jt opisywaną przez piątkę uporządkowaną GRP=<M’, L’, K’, U0’, Jt> na którą składają się:

ƒ zbiór miejsc M’, ƒ zbiór przejść L’,

ƒ zbiór krawędzi K’ ⊆ M’×L’ ∪ L’×M’ ,

ƒ stan początkowy grafu U0 określający w jakich miejscach znajdują się znaczniki w chwili rozpoczęcia działania sieci,

ƒ funkcja Jt przypisująca każdemu przejściu dystrybuantę rozkładu losowego czasu jego wykonania Jt(li)=Φi(t).

Dla grafu realizacji programu utworzonego z GPS=<M, L, K, U0, Jt> oraz modelu maszyny o γ stanach niezawodnościowych zbiory miejsc, przejść i krawędzi oznaczane przez M’, L’ i K’ są odpowiednio liczniejsze niż odpowiadające im zbiory M, L, K.

• Zbiór miejsc M’ o liczności γ razy większej niż zbiór M zredukowanego grafu przepływu sterowania powstaje poprzez zastąpienie każdego z miejsc GPS zbiorem miejsc odpowiadających zbiorowi możliwych stanów procesora.

• Podobnie zbiór przejść L’ o liczności γ2 razy większej niż zbiór L zredukowanego grafu przepływu sterowania. Na skutek zwiększenia zbioru miejsc konieczne jest również zwiększenie zbioru przejść, aby połączyć wszystkie miejsca poprzedniego stanu funkcjonalnego z wszystkimi miejscami następnego stanu funkcjonalnego.

• Zbiór krawędzi K’ ⊆ M’×L’ ∪ L’×M’ podobnie jak zbiór przejść ma γ2 razy większą liczność niż odpowiadający mu zbiór w grafie przepływu sterowania.