Podstawy Informatyki Systemy sterowane przepływem argumentów

Podobne dokumenty
LEKCJA TEMAT: Zasada działania komputera.

Wprowadzenie do architektury komputerów. Taksonomie architektur Podstawowe typy architektur komputerowych

16. Taksonomia Flynn'a.

Technologie Informacyjne Wykład 2

Architektura komputerów wer. 3

Architektura mikroprocesorów TEO 2009/2010

Systemy operacyjne i sieci komputerowe Szymon Wilk Superkomputery 1

Architektura komputerów wer. 7

Architektura komputerów

Programowanie współbieżne i rozproszone

Budowa komputera Komputer computer computare

dr inż. Rafał Klaus Zajęcia finansowane z projektu "Rozwój i doskonalenie kształcenia i ich zastosowań w przemyśle" POKL

3.Przeglądarchitektur

Klasyfikacje systemów komputerowych, modele złożoności algorytmów obliczeniowych

Zapoznanie z technikami i narzędziami programistycznymi służącymi do tworzenia programów współbieżnych i obsługi współbieżności przez system.

3.Przeglądarchitektur

Architektura komputera

Architektura Komputerów

dr inż. Jarosław Forenc

Wykład I. Podstawowe pojęcia. Studia Podyplomowe INFORMATYKA Architektura komputerów

Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Opracował Jan T. Biernat

Architektura komputerów

Układ sterowania, magistrale i organizacja pamięci. Dariusz Chaberski

dr inż. Jarosław Forenc

System mikroprocesorowy i peryferia. Dariusz Chaberski

Algorytmy dla maszyny PRAM

Wykład z Technologii Informacyjnych. Piotr Mika

Logiczny model komputera i działanie procesora. Część 1.

Budowa Mikrokomputera

Programowanie równoległe i rozproszone. Praca zbiorowa pod redakcją Andrzeja Karbowskiego i Ewy Niewiadomskiej-Szynkiewicz

dr inż. Jarosław Forenc

Programowanie współbieżne Wykład 2. Iwona Kochańska

Klasyfikacja systemów komputerowych. Architektura von Neumanna Architektura harwardzka Zmodyfikowana architektura harwardzka. dr inż.

Technologie informacyjne - wykład 12 -

Podstawy Techniki Mikroprocesorowej wykład 13: MIMD. Dr inż. Jacek Mazurkiewicz Katedra Informatyki Technicznej

Nowoczesne technologie przetwarzania informacji

Abstrakcyjny model maszyny przetwarzającej dane To pomysł jak zapisać komputer jako działające urządzenie i tu pojawia się pomysł na maszynę Turinga.

Architektura komputerów

Algorytmy i schematy blokowe

Programowanie niskopoziomowe. dr inż. Paweł Pełczyński

Architektura Systemów Komputerowych. Architektura potokowa Klasyfikacja architektur równoległych

Architektura komputerów

1 Wprowadzenie do algorytmiki

Projektowanie. Projektowanie mikroprocesorów

Wstęp do informatyki. System komputerowy. Magistrala systemowa. Architektura komputera. Cezary Bolek

Algorytm. Krótka historia algorytmów

Definicje. Algorytm to:

Pracownia Komputerowa. Wyk ad I Magdalena Posiada a-zezula

Budowa i zasada działania komputera. dr Artur Bartoszewski

Obliczenia Wysokiej Wydajności

Architektura komputera. Cezary Bolek. Uniwersytet Łódzki. Wydział Zarządzania. Katedra Informatyki. System komputerowy

Wstęp do Informatyki dla bioinformatyków

Układ wykonawczy, instrukcje i adresowanie. Dariusz Chaberski

Architektura komputerów Wykład 2

Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska

Budowa komputera. Lubię to! - podręcznik

Pytania. W obecnie wykorzystywanych komputerach osobistych jest stosowana architektura: jednoszynowa. pamięciowo-centryczna.

Technologie informacyjne wykład 2 wer. 1.2

Informatyka 1. Wykład nr 5 ( ) Politechnika Białostocka. - Wydział Elektryczny. dr inŝ. Jarosław Forenc

Podstawy Informatyki Języki programowania

MOŻLIWOŚCI PROGRAMOWE MIKROPROCESORÓW

Magistrala. Magistrala (ang. Bus) służy do przekazywania danych, adresów czy instrukcji sterujących w różne miejsca systemu komputerowego.

Architektura von Neumanna

Programowanie strukturalne

Spis treúci. Księgarnia PWN: Krzysztof Wojtuszkiewicz - Urządzenia techniki komputerowej. Cz. 1. Przedmowa Wstęp... 11

PODSTAWY PRZETWARZANIA RÓWNOLEGŁEGO INFORMACJI

Architektura komputerów

Wstęp do informatyki. Architektura co to jest? Architektura Model komputera. Od układów logicznych do CPU. Automat skończony. Maszyny Turinga (1936)

Rok akademicki: 2013/2014 Kod: EEL s Punkty ECTS: 2. Poziom studiów: Studia I stopnia Forma i tryb studiów: Stacjonarne

Wyklad 1 Pojęcie architektury komputerów, modelu architekturalnego, modelu obliczeniowego, podstawowe modele obliczeniowe systemów komputerowych

Obliczenia równoległe i rozproszone. Praca zbiorowa pod redakcją Andrzeja Karbowskiego i Ewy Niewiadomskiej-Szynkiewicz

Architektura komputerów

Introduction to Computer Science

Ataki na RSA. Andrzej Chmielowiec. Centrum Modelowania Matematycznego Sigma. Ataki na RSA p. 1

Charakterystyka mikrokontrolerów. Przygotowali: Łukasz Glapiński, Mateusz Kocur, Adam Kokot,

Wprowadzenie do algorytmiki

Podstawy Programowania Algorytmy i programowanie

Budowa komputera. Magistrala. Procesor Pamięć Układy I/O

Architektura systemów komputerowych. dr Artur Bartoszewski

Programowanie komputerów

Algorytmy i Struktury Danych

Architektura komputerów II - opis przedmiotu

Klasyfikacja systemów komputerowych. Architektura von Neumanna. dr inż. Jarosław Forenc

MIKROKONTROLERY I MIKROPROCESORY

Tworzenie programów równoległych cd. Krzysztof Banaś Obliczenia równoległe 1

3. Macierze i Układy Równań Liniowych

ARCHITEKTURA PROCESORA,

Analiza ilościowa w przetwarzaniu równoległym

Architektura harwardzka Architektura i organizacja systemu komputerowego Struktura i funkcjonowanie komputera procesor, rozkazy, przerwania

Architektura systemów komputerowych

Informatyka I stopień (I stopień / II stopień) Ogólnoakademicki (ogólno akademicki / praktyczny) niestacjonarne (stacjonarne / niestacjonarne)

Architektury komputerów Architektury i wydajność. Tomasz Dziubich

UKŁADY MIKROPROGRAMOWALNE

Struktura i funkcjonowanie komputera pamięć komputerowa, hierarchia pamięci pamięć podręczna. System operacyjny. Zarządzanie procesami

Architektura systemów komputerowych. Konstrukcja i zasada działania mikroprocesora

Podstawy Techniki Komputerowej. Temat: Elementy systemu informatycznego

Programowanie od pierwszoklasisty do maturzysty. Grażyna Koba

PODSTAWY AUTOMATYKI. MATLAB - komputerowe środowisko obliczeń naukowoinżynierskich - podstawowe operacje na liczbach i macierzach.

dr inż. Jarosław Forenc

Transkrypt:

Podstawy Informatyki alina.momot@polsl.pl http://zti.polsl.pl/amomot/pi

Plan wykładu 1 Komputer i jego architektura Taksonomia Flynna 2

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.

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ą.

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.

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.

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ć.

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.

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.

Taksonomia Flynna Komputer i jego architektura Taksonomia Flynna

Rozszerzona taksonomia Flynna Komputer i jego architektura 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.

- 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.

- założenia

- 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.

- 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.

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:

- przykłady 1 y = ax + b 2 y = NWD(a, b) 3 (y 1, y 2,..., y n ) = pierwiastki równania 4 y 1 = O 1 (a 1 ) y 2 = O 2 (a 2, y 1 ) y 3 = O 3 (a 3, y 1 ) y 4 = O 4 (y 1, y 2, y 3 ) n a i x i = 0 i=0

Przykład realizacji algorytmu y 1 = O 1 (a 1 ) y 2 = O 2 (a 2, y 1 ) y 3 = O 3 (a 3, y 1 ) y 4 = O 4 (y 1, y 2, y 3 )

Przykład realizacji algorytmu y 1 = O 1 (a 1 ) y 2 = O 2 (a 2, y 1 ) y 3 = O 3 (a 3, y 1 ) y 4 = O 4 (y 1, y 2, y 3 )

Przykład realizacji algorytmu y 1 = O 1 (a 1 ) y 2 = O 2 (a 2, y 1 ) y 3 = O 3 (a 3, y 1 ) y 4 = O 4 (y 1, y 2, y 3 )

Przykład realizacji algorytmu y 1 = O 1 (a 1 ) y 2 = O 2 (a 2, y 1 ) y 3 = O 3 (a 3, y 1 ) y 4 = O 4 (y 1, y 2, y 3 )

Przykład realizacji algorytmu y 1 = O 1 (a 1 ) y 2 = O 2 (a 2, y 1 ) y 3 = O 3 (a 3, y 1 ) y 4 = O 4 (y 1, y 2, y 3 )

Przykład realizacji algorytmu y 1 = O 1 (a 1 ) y 2 = O 2 (a 2, y 1 ) y 3 = O 3 (a 3, y 1 ) y 4 = O 4 (y 1, y 2, y 3 )

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: y 1 = O 1 (a 1 ) y 2 = O 2 (a 2, y 1 ) y 3 = O 3 (a 3, y 1 ) y 4 = O 4 (y 1, y 2, y 3 )

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. f r (A) = AA + A funkcja redukująca. Redukcję przeprowadzić lg 2 n razy, gdzie n wymiar macierzy.

- przykłady 1 Algorytm realizowalny: y 1 = O 1 (a 1 ) y 2 = O 2 (a 2, y 1 ) y 3 = O 3 (a 3, y 1 ) y 4 = O 4 (y 1, y 2, y 3 ) 2 Algorytm nierealizowalny: y 1 = O 1 (a 1, y 2 ) y 2 = O 2 (a 2, y 1 ) macierz górnotrójkatna macierz zredukowana nie ma zerowej przekątnej

gdzie: P = L L n, P przyspieszenie realizacji algorytmu, L całkowita liczba operacji w algorytmie w jego postaci kanonicznej, L n liczba operacji uogólnionych (operacje wykonywane równocześnie liczone są jako jedna operacja uogólniona).

- przykład1 y 1 = O 1 (a 1 ) y 2 = O 2 (a 2, y 1 ) y 3 = O 3 (a 3, y 1 ) y 4 = O 4 (y 1, y 2, y 3 ) Wyznaczenie y 2 oraz y 3 można realizować równolegle, zatem P = L L n = 4 3.

- przykład2 Obliczyć sumę elementów zbioru {a i }, dla i = 1, 2,..., 8. Algorytm 1 y 1 = a 1 + a 2 y 2 = y 1 + a 3 y 3 = y 2 + a 4 y 4 = y 3 + a 5 y 5 = y 4 + a 6 y 6 = y 5 + a 7 y 7 = y 6 + a 8 Algorytm 2 y 1 = a 1 + a 2 y 2 = a 3 + a 4 y 3 = a 5 + a 6 y 4 = a 7 + a 8 y 5 = y 1 + y 2 y 6 = y 3 + y 4 y 7 = y 5 + y 6

- przykład2 Obliczyć sumę elementów zbioru {a i }, dla i = 1, 2,..., 8. Algorytm 1 y 1 = a 1 + a 2 y 2 = y 1 + a 3 y 3 = y 2 + a 4 y 4 = y 3 + a 5 y 5 = y 4 + a 6 y 6 = y 5 + a 7 y 7 = y 6 + a 8 Algorytm 2 y 1 = a 1 + a 2 y 2 = a 3 + a 4 y 3 = a 5 + a 6 y 4 = a 7 + a 8 y 5 = y 1 + y 2 y 6 = y 3 + y 4 y 7 = y 5 + y 6 P = L L n = 7 7 = 1. P = L L n = 7 3 2, 33.

- 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 P = L L n = n 1 log 2 n, gdzie n liczba danych wejściowych.