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

Podobne dokumenty