Podstawy Informatyki Systemy sterowane przepływem
Transkrypt
Podstawy Informatyki Systemy sterowane przepływem
Plan wykładu Taksonomia systemów komputerowych Komputery sterowane przepływem danych Podstawy Informatyki Systemy sterowane przepływem argumentów dr inż. Alina MOMOT [email protected] http://zti.polsl.pl/AMomot/pi dr inż. Alina MOMOT Systemy sterowane przepływem argumentów Plan wykładu Taksonomia systemów komputerowych Komputery sterowane przepływem danych Plan wykładu 1 Taksonomia systemów komputerowych Komputer i jego architektura Taksonomia Flynna 2 Komputery sterowane przepływem danych Założenia Kanoniczna postać algorytmu Realizowalność algorytmu Przyspieszenie realizacji algorytmu dr inż. Alina MOMOT Systemy sterowane przepływem argumentów Plan wykładu Taksonomia systemów komputerowych Komputery sterowane przepływem danych Komputer i jego architektura Taksonomia Flynna Komputer Komputer to urzadzenie do przetwarzania danych, wyposażone w możliwość wprowadzania, przechowywania i wyprowadzania danych. Wprowadzanie i wyprowadzanie danych może być realizowane w postaci odpowiedniej dla człowieka, np. klawiatura, ekran itp. właściwej dla współpracy z jakimś obiektem, np. czujnik temperatury, grzejnik itp. dr inż. Alina MOMOT Systemy sterowane przepływem argumentów Plan wykładu Taksonomia systemów komputerowych Komputery sterowane przepływem danych Komputer i jego architektura Taksonomia Flynna Architektura komputera Architektura komputera to sposób organizacji elementów tworzących komputer, zazwyczaj dotyczy połączeń pomiędzy pamięcią, procesorem i urządzeniami wejścia-wyjścia. Systemy komputerowe można dzielić ze względu na wiele czynników, m.in. ze względu na sposób organizacji pamięci i wykonywania programu wyróżnia się architekturę: von Neumanna, harwardzką, mieszaną. dr inż. Alina MOMOT Systemy sterowane przepływem argumentów Plan wykładu Taksonomia systemów komputerowych Komputery sterowane przepływem danych Komputer i jego architektura Taksonomia Flynna Architektura von Neumanna Przedstawiona po raz pierwszy w 1945 roku przez Johna von Neumanna wspólnie z Johnem W. Mauchly’ym i Johnem Presper Eckertem. Polega na ścisłym podziale komputera na trzy podstawowe części: 1 procesor – w ramach którego wydzielona jest część sterująca, część arytmetyczno-logiczna, 2 pamięć – zawierająca dane i sam program, 3 urządzenia wejścia/wyjścia. dr inż. Alina MOMOT Systemy sterowane przepływem argumentów Plan wykładu Taksonomia systemów komputerowych Komputery sterowane przepływem danych Komputer i jego architektura Taksonomia Flynna Architektura von Neumanna System komputerowy o architekturze von Neumanna powinien: mieć skończoną i funkcjonalnie pełną listę rozkazów, mieć możliwość wprowadzenia programu do systemu komputerowego poprzez urządzenia zewnętrzne i jego przechowywanie w pamięci w sposób identyczny jak danych, dane i instrukcje w takim systemie powinny być jednakowo dostępne dla procesora, informacja jest tam przetwarzana dzięki sekwencyjnemu odczytywaniu instrukcji z pamięci komputera i wykonywaniu tych instrukcji w procesorze. dr inż. Alina MOMOT Systemy sterowane przepływem argumentów Plan wykładu Taksonomia systemów komputerowych Komputery sterowane przepływem danych Komputer i jego architektura Taksonomia Flynna Architektura von Neumanna - podsumowanie Podane warunki pozwalają przełączać system komputerowy z wykonania jednego zadania (programu) na inne bez fizycznej ingerencji w strukturę systemu, a tym samym gwarantują jego uniwersalność. System komputerowy von Neumanna nie posiada oddzielnych pamięci do przechowywania danych i instrukcji. Instrukcje jak i dane są zakodowane w postaci liczb. Bez analizy programu trudno jest określić czy dany obszar pamięci zawiera dane czy instrukcje. Wykonywany program może się sam modyfikować traktując obszar instrukcji jako dane, a po przetworzeniu tych instrukcji (danych) zacząć je wykonywać. dr inż. Alina MOMOT Systemy sterowane przepływem argumentów Plan wykładu Taksonomia systemów komputerowych Komputery sterowane przepływem danych Komputer i jego architektura Taksonomia Flynna Architektura harwardzka Podstawowa architektura komputerów zerowej generacji i początkowa komputerów pierwszej generacji. Pamięć danych programu jest oddzielona od pamięci rozkazów. Prostsza (w stosunku do architektury von Neumanna) budowa przekłada się na większą szybkość działania. Architektura wykorzystywana w mikrokomputerach jednoukładowych, w procesorach sygnałowych, przy dostępie procesora do pamięci cache. dr inż. Alina MOMOT Systemy sterowane przepływem argumentów Plan wykładu Taksonomia systemów komputerowych Komputery sterowane przepływem danych Komputer i jego architektura Taksonomia Flynna Taksonomia Flynna Taksonomia Michaela J. Flynna (1968) zakłada, że komputer jest urządzeniem przetwarzającym strumienie danych na podstawie strumieni instrukcji. Wyróżnia się tu architekturę: SISD (Single Instruction Single Data) – procesory skalarne, najczęściej uniprocesory von Neumanna, SIMD (Single Instruction Multiple Data) – procesory wektorowe, graficzne GPU, MISD (Multiple Instruction Single Data) – procesory wykorzystujące redundancję do minimalizacji błędów, MIMD (Multiple Instruction Multiple Data) – systemy wieloprocesorowe, klastry i gridy. dr inż. Alina MOMOT Systemy sterowane przepływem argumentów Plan wykładu Taksonomia systemów komputerowych Komputery sterowane przepływem danych Komputer i jego architektura Taksonomia Flynna Taksonomia Flynna dr inż. Alina MOMOT Systemy sterowane przepływem argumentów Plan wykładu Taksonomia systemów komputerowych Komputery sterowane przepływem danych Komputer i jego architektura Taksonomia Flynna Rozszerzona taksonomia Flynna Urządzenia bez strumienia instrukcji mogą przetwarzać dane, gdyż dane mogą nieść ze sobą informacje o potrzebnym przetwarzaniu. Są to tzw. komputery sterowane przepływem danych – Dataflow. dr inż. Alina MOMOT Systemy sterowane przepływem argumentów Plan wykładu Taksonomia systemów komputerowych Komputery sterowane przepływem danych Założenia Kanoniczna postać algorytmu Realizowalność algorytmu Przyspieszenie realizacji algorytmu Komputery sterowane przepływem danych - założenia Brak licznika rozkazów – operacje są wykonywane, gdy dostępne staną się argumenty rozkazów. Poszczególne operacje są wykonywane w niezależnych węzłach, których liczba zależy od konstrukcji sprzętu. Operacja jest wykonywana po dostarczeniu wszystkich argumentów, a po wykonaniu zadania wynik jest przekazywany do kolejnego węzła. Wszystkie instrukcje gotowe do wykonania, w sensie dostępności ich danych wejściowych, powinny wykonać się równolegle. Kolejność wykonania instrukcji programu nie jest wyznaczana przez programistę, lecz przez gotowość wszystkich danych wejściowych instrukcji. dr inż. Alina MOMOT Systemy sterowane przepływem argumentów Plan wykładu Taksonomia systemów komputerowych Komputery sterowane przepływem danych Założenia Kanoniczna postać algorytmu Realizowalność algorytmu Przyspieszenie realizacji algorytmu Komputery sterowane przepływem danych - założenia dr inż. Alina MOMOT Systemy sterowane przepływem argumentów Plan wykładu Taksonomia systemów komputerowych Komputery sterowane przepływem danych Założenia Kanoniczna postać algorytmu Realizowalność algorytmu Przyspieszenie realizacji algorytmu Komputery sterowane przepływem danych - realizacja Model zakłada, że dla każdej instrukcji gotowej do wykonania będzie dostępny odrębny procesor. W praktyce, model realizuje się1 dysponując ograniczoną liczbą procesorów typu von Neumana. W systemie istnieje blok przeglądania instrukcji programu pod względem ich gotowości do wykonania. Spośród instrukcji gotowych, kieruje się do równoległego wykonania tylko liczbę odpowiadającą faktycznej liczbie dostępnych procesorów. Po ich wykonaniu, rozsyła się wyniki między instrukcjami i wyznacza się nowy zbiór instrukcji gotowych do wykonania. 1 Nie są współcześnie konstruowane (ok.1985 firma NEC produkowała mikroprocesor dataflow), ale podejście to jest często używane do opisu procesów informacyjnych. dr inż. Alina MOMOT Systemy sterowane przepływem argumentów Plan wykładu Taksonomia systemów komputerowych Komputery sterowane przepływem danych Założenia Kanoniczna postać algorytmu Realizowalność algorytmu Przyspieszenie realizacji algorytmu Komputery sterowane przepływem danych - podsumowanie Komputery von Neumanna Sterowane przesyłem operacji. O wyborze rozkazu do wykonania decyduje zawartość licznika rozkazów. Komputery typu dataflow Sterowane przesyłem argumentów. O wyborze rozkazu do wykonania decyduje gotowość wszystkich danych wejściowych. dr inż. Alina MOMOT Systemy sterowane przepływem argumentów Plan wykładu Taksonomia systemów komputerowych Komputery sterowane przepływem danych Założenia Kanoniczna postać algorytmu Realizowalność algorytmu Przyspieszenie realizacji algorytmu Kanoniczna postać algorytmu Formą języka programowania dla komputerów sterowanych przepływem danych mogą być tzw. języki pojedyńczych przypisań (ang. single assignment languages). Wykorzystuje się tu zmienne, reprezentujące dane i wyniki obliczeń, którym nadaje się wartości tylko raz w trakcie wykonywania programu. Jest tworzona tzw. kanoniczna postać algorytmu, w której występują tylko instrukcje podstawienia (przypisania) postaci: dr inż. Alina MOMOT Systemy sterowane przepływem argumentów Plan wykładu Taksonomia systemów komputerowych Komputery sterowane przepływem danych Założenia Kanoniczna postać algorytmu Realizowalność algorytmu Przyspieszenie realizacji algorytmu Kanoniczna postać algorytmu - przykłady 1 y = ax + b 2 y = NWD(a, b) 3 (y1 , y2 , . . . , yn ) = pierwiastki równania n X ai x i = 0 i=0 4 y1 y2 y3 y4 = O1 (a1 ) = O2 (a2 , y1 ) = O3 (a3 , y1 ) = O4 (y1 , y2 , y3 ) dr inż. Alina MOMOT Systemy sterowane przepływem argumentów Plan wykładu Taksonomia systemów komputerowych Komputery sterowane przepływem danych Założenia Kanoniczna postać algorytmu Realizowalność algorytmu Przyspieszenie realizacji algorytmu Przykład realizacji algorytmu y1 y2 y3 y4 = O1 (a1 ) = O2 (a2 , y1 ) = O3 (a3 , y1 ) = O4 (y1 , y2 , y3 ) dr inż. Alina MOMOT Systemy sterowane przepływem argumentów Plan wykładu Taksonomia systemów komputerowych Komputery sterowane przepływem danych Założenia Kanoniczna postać algorytmu Realizowalność algorytmu Przyspieszenie realizacji algorytmu Przykład realizacji algorytmu y1 y2 y3 y4 = O1 (a1 ) = O2 (a2 , y1 ) = O3 (a3 , y1 ) = O4 (y1 , y2 , y3 ) dr inż. Alina MOMOT Systemy sterowane przepływem argumentów Plan wykładu Taksonomia systemów komputerowych Komputery sterowane przepływem danych Założenia Kanoniczna postać algorytmu Realizowalność algorytmu Przyspieszenie realizacji algorytmu Przykład realizacji algorytmu y1 y2 y3 y4 = O1 (a1 ) = O2 (a2 , y1 ) = O3 (a3 , y1 ) = O4 (y1 , y2 , y3 ) dr inż. Alina MOMOT Systemy sterowane przepływem argumentów Plan wykładu Taksonomia systemów komputerowych Komputery sterowane przepływem danych Założenia Kanoniczna postać algorytmu Realizowalność algorytmu Przyspieszenie realizacji algorytmu Przykład realizacji algorytmu y1 y2 y3 y4 = O1 (a1 ) = O2 (a2 , y1 ) = O3 (a3 , y1 ) = O4 (y1 , y2 , y3 ) dr inż. Alina MOMOT Systemy sterowane przepływem argumentów Plan wykładu Taksonomia systemów komputerowych Komputery sterowane przepływem danych Założenia Kanoniczna postać algorytmu Realizowalność algorytmu Przyspieszenie realizacji algorytmu Przykład realizacji algorytmu y1 y2 y3 y4 = O1 (a1 ) = O2 (a2 , y1 ) = O3 (a3 , y1 ) = O4 (y1 , y2 , y3 ) dr inż. Alina MOMOT Systemy sterowane przepływem argumentów Plan wykładu Taksonomia systemów komputerowych Komputery sterowane przepływem danych Założenia Kanoniczna postać algorytmu Realizowalność algorytmu Przyspieszenie realizacji algorytmu Przykład realizacji algorytmu y1 y2 y3 y4 = O1 (a1 ) = O2 (a2 , y1 ) = O3 (a3 , y1 ) = O4 (y1 , y2 , y3 ) dr inż. Alina MOMOT Systemy sterowane przepływem argumentów Plan wykładu Taksonomia systemów komputerowych Komputery sterowane przepływem danych Założenia Kanoniczna postać algorytmu Realizowalność algorytmu Przyspieszenie realizacji algorytmu Macierz zmiennych formy kanonicznej algorytmu Macierz kwadratowa podająca dla każdej zmiennej, zmienne dla których staje się ona w procesie realizacji algorytmu argumentem. Przykład: y1 y2 y3 y4 = O1 (a1 ) = O2 (a2 , y1 ) = O3 (a3 , y1 ) = O4 (y1 , y2 , y3 ) dr inż. Alina MOMOT Systemy sterowane przepływem argumentów Plan wykładu Taksonomia systemów komputerowych Komputery sterowane przepływem danych Założenia Kanoniczna postać algorytmu Realizowalność algorytmu Przyspieszenie realizacji algorytmu Realizowalność algorytmu Macierz zmiennych formy kanonicznej algorytmu powinna być macierzą górnotrójkątną. Twierdzenie o realizowalności algorytmu 1 Jeśli macierz jest górnotrójkątna, to dany algorytm można zrealizować w systemie sterowanym przepływem argumentów. 2 Dany algorytm można zrealizować w systemie sterowanym przepływem argumentów wtedy i tylko wtedy, gdy macierz zredukowana ma przekątna zerową. A – macierz zmiennych formy kanonicznej algorytmu. fr (A) = AA + A – funkcja redukująca. Redukcję przeprowadzić lg2 n razy, gdzie n – wymiar macierzy. dr inż. Alina MOMOT Systemy sterowane przepływem argumentów Plan wykładu Taksonomia systemów komputerowych Komputery sterowane przepływem danych Założenia Kanoniczna postać algorytmu Realizowalność algorytmu Przyspieszenie realizacji algorytmu Realizowalność algorytmu - przykłady 1 Algorytm realizowalny: y1 y2 y3 y4 = O1 (a1 ) = O2 (a2 , y1 ) = O3 (a3 , y1 ) = O4 (y1 , y2 , y3 ) macierz górnotrójkatna 2 Algorytm nierealizowalny: y1 = O1 (a1 , y2 ) y2 = O2 (a2 , y1 ) macierz zredukowana nie ma zerowej przekątnej dr inż. Alina MOMOT Systemy sterowane przepływem argumentów Plan wykładu Taksonomia systemów komputerowych Komputery sterowane przepływem danych Założenia Kanoniczna postać algorytmu Realizowalność algorytmu Przyspieszenie realizacji algorytmu Przyspieszenie realizacji algorytmu P= L , Ln gdzie: P – przyspieszenie realizacji algorytmu, L – całkowita liczba operacji w algorytmie w jego postaci kanonicznej, Ln – liczba operacji uogólnionych (operacje wykonywane równocześnie liczone są jako jedna operacja uogólniona). dr inż. Alina MOMOT Systemy sterowane przepływem argumentów Plan wykładu Taksonomia systemów komputerowych Komputery sterowane przepływem danych Założenia Kanoniczna postać algorytmu Realizowalność algorytmu Przyspieszenie realizacji algorytmu Przyspieszenie realizacji algorytmu - przykład1 y1 y2 y3 y4 = O1 (a1 ) = O2 (a2 , y1 ) = O3 (a3 , y1 ) = O4 (y1 , y2 , y3 ) Wyznaczenie y2 oraz y3 można realizować równolegle, zatem P= dr inż. Alina MOMOT L 4 = . Ln 3 Systemy sterowane przepływem argumentów Plan wykładu Taksonomia systemów komputerowych Komputery sterowane przepływem danych Założenia Kanoniczna postać algorytmu Realizowalność algorytmu Przyspieszenie realizacji algorytmu Przyspieszenie realizacji algorytmu - przykład2 Obliczyć sumę elementów zbioru {ai }, dla i = 1, 2, . . . , 8. Algorytm 1 Algorytm 2 y1 y2 y3 y4 y5 y6 y7 y1 y2 y3 y4 = a1 + a2 = y1 + a3 = y2 + a4 = y3 + a5 = y4 + a6 = y5 + a7 = y6 + a8 = a1 + a2 = a3 + a4 = a5 + a6 = a7 + a8 y5 = y1 + y2 y6 = y3 + y4 y7 = y5 + y6 dr inż. Alina MOMOT Systemy sterowane przepływem argumentów Plan wykładu Taksonomia systemów komputerowych Komputery sterowane przepływem danych Założenia Kanoniczna postać algorytmu Realizowalność algorytmu Przyspieszenie realizacji algorytmu Przyspieszenie realizacji algorytmu - przykład2 Obliczyć sumę elementów zbioru {ai }, dla i = 1, 2, . . . , 8. Algorytm 1 Algorytm 2 y1 y2 y3 y4 y5 y6 y7 y1 y2 y3 y4 = a1 + a2 = y1 + a3 = y2 + a4 = y3 + a5 = y4 + a6 = y5 + a7 = y6 + a8 = a1 + a2 = a3 + a4 = a5 + a6 = a7 + a8 y5 = y1 + y2 y6 = y3 + y4 y7 = y5 + y6 P= L 7 = = 1. Ln 7 dr inż. Alina MOMOT P= L 7 = ≈ 2, 33. Ln 3 Systemy sterowane przepływem argumentów Plan wykładu Taksonomia systemów komputerowych Komputery sterowane przepływem danych Założenia Kanoniczna postać algorytmu Realizowalność algorytmu Przyspieszenie realizacji algorytmu Przyspieszenie realizacji algorytmu - podsumowanie Przyspieszenie zależy od sposobu organizacji algorytmu. Najkrótszy czas realizacji procesu zapisanego algorytmu otrzymuje się wtedy, gdy maksymalizuje się na każdym etapie liczbę możliwych operacji, wtedy n−1 L = , P= Ln dlog2 ne gdzie n – liczba danych wejściowych. dr inż. Alina MOMOT Systemy sterowane przepływem argumentów