Informatyka Politechnika Białostocka - Wydział Elektryczny Elektrotechnika, semestr II, studia stacjonarne I stopnia Rok akademicki 28/29 Wykład nr 5 (6.5.29)
Rok akademicki 28/29, Wykład nr 5 2/43 Plan wykładu nr 5 Algebra Boole a operacje w Algebrze Boole a prawa i aksjomaty Algebry Boole a wyraŝenia i funkcje boolowskie minimalizacja funkcji boolowskich Klasyfikacja systemów komputerowych (Flynna) SISD, SIMD, MISD, MIMD
Rok akademicki 28/29, Wykład nr 5 3/43 Algebra Boole a Opracowana przez angielskiego matematyka George a Boole a (85-864) Przedstawiona w 854 roku w opracowaniu pt. An Investigation of the Laws of Thought on Which To Found the Mathematical Theories of Logic and Probabilities - Badanie praw myśli, które mogą być podstawą matematycznych teorii logiki i prawdopodobieństwa Praktyczne zastosowanie znalazła dopiero po wielu latach - w 938 roku Claude Shannon (asystent na MIT) zaproponował zastosowanie jej do rozwiązywania problemów projektowania układów przekaźnikowych Metody Shannona zostały następnie uŝyte do analizowania i projektowania elektronicznych układów cyfrowych Alebra Boole a określa zasady wykonywania operacji logicznych na danych, które mogą przyjmować tylko jedną z dwóch wartości logicznych: prawda - true - - jedynka logiczna fałsz - false - - zero logiczne PowyŜszymi danymi mogą być bity, przyjmujące tylko dwie wartości: i
Rok akademicki 28/29, Wykład nr 5 4/43 Algebra Boole a Zastosowania: technika cyfrowa, informatyka teoretyczna, matematyka Tak jak w zwykłej algebrze nad liczbami moŝna wykonywać operacje arytmetyczne (+, -, *, /), tak nad danymi w Algebrze Boole a moŝna wykonywać operacje logiczne Występują trzy róŝne operacje logiczne, do zapisu których stosuje się róŝne symbole oraz róŝne nazwy
Rok akademicki 28/29, Wykład nr 5 5/43 Operacje w Algebrze Boole a Negacja: operacja jednoargumentowa stosowane nazwy: negacja, zaprzeczenie, dopełnienie logiczne, nie, not, NIE, NOT stosowane oznaczenia: a, ~a,!a, a, a symbol negacji wymawia się jako nie, np. a czytamy nie a wynikiem negacji jest wartość odwrotna: dla argumentu równego daje w wyniku, a dla argumentu równego daje w wyniku tabela operacji:
Rok akademicki 28/29, Wykład nr 5 6/43 Operacje w Algebrze Boole a Alternatywa: operacja dwuargumentowa stosowane nazwy: alternatywa, suma logiczna, lub, or, LUB, OR stosowane oznaczenia: a b, a b, a + b, a b, a b operatory powyŝsze wymawia się jako plus albo lub, np. a b czytamy a plus b albo a lub b wynikiem alternatywy jest wartość jeśli przynajmniej jeden z argumentów ma wartość ; jeśli oba argumenty mają wartość, to alternatywa ma teŝ wartość tabela operacji:
Rok akademicki 28/29, Wykład nr 5 7/43 Operacje w Algebrze Boole a Koniunkcja: operacja dwuargumentowa stosowane nazwy: koniunkcja, iloczyn logiczny, i, and, I, AND stosowane oznaczenia: a b, a b, a b, a && b, a & b operatory powyŝsze wymawia się jako razy albo i, np. a b czytamy ab lub a razy b albo a i b wynikiem koniunkcji jest wartość jeśli oba argumenty są równe, w pozostałych przypadkach wynik to tabela operacji:
Rok akademicki 28/29, Wykład nr 5 8/43 Operacje w Algebrze Boole a RóŜnica symetryczna: operacja dwuargumentowa stosowane nazwy: róŝnica symetryczna, alternatywa wykluczająca, exclusive or, xor, XOR stosowane oznaczenia: a b, a ^ b wynikiem róŝnicy symetrycznej jest jeśli argumenty róŝnią się od siebie, a jeśli są takie same tabela operacji: a b (a b) + (a b) a b (a + b) (a + b)
Rok akademicki 28/29, Wykład nr 5 9/43 Prawa i aksjomaty Algebry Boole a Łączność (ang. associativity) a + (b + c) a (b c) (a + b) + c (a b) c Przemienność (ang. commutativity) a + b a b b + a b a Absorpcja (ang. absorption), pochłanianie, prawa pochłaniania a + (a b) a (a + b) a a gdyŝ: a + (a b) a (a + b) a ( + b) a a a a + a b a + a b a
Rok akademicki 28/29, Wykład nr 5 /43 Prawa i aksjomaty Algebry Boole a Rozdzielność (ang. distributivity) a + (b c) (a + b) (a + c) a (b + c) (a b) + (a c) - rozdzielność iloczynu względem sumy - rozdzielność sumy względem iloczynu Odwrotność (ang. complement) a + a a a - suma dopełnień - iloczyn dopełnień Idempotentność, prawa tautologii a + a a a a a
Rok akademicki 28/29, Wykład nr 5 /43 Prawa i aksjomaty Algebry Boole a Element neutralny a + a a a Element zerowy, dominacja a + a Podwójne przeczenie, podwójna negacja, inwolucja a a
Rok akademicki 28/29, Wykład nr 5 2/43 Prawa De Morgana August De Morgan (86-87) - angielski matematyk i logik Negacja sumy jest równa iloczynowi jej zanegowanych składników a + b a b Negacja iloczynu jest równa sumie jego zanegowanych czynników a b a + b Dla n zmiennych x i, i,2,,n prawa De Morgana moŝna zapisać w następującej postaci: x + x 2 + K+ x n x x 2 K x n x + x 2 K x n x + x 2 + K x n
Rok akademicki 28/29, Wykład nr 5 3/43 WyraŜenia i funkcje boolowskie UŜywając symboli działań, stałych i oraz zmiennych budujemy wyraŝenia boolowskie, np. ab + ab, ab + ab, (a + b)c KaŜde wyraŝenie w naturalny sposób definiuje funkcję boolowską (logiczną, przełączającą), np. f 3 (a, b) ab + ab, f2(a, b) ab + ab, f (a, b,c) (a + b)c Tę samą funkcję boolowską moŝna przedstawić przy pomocy róŝnych wyraŝeń boolowskich f (a, b) ab + ab ab + ab Dwa wyraŝenia boolowskie nazywane są równowaŝnymi jeśli opisywane przez nie funkcje boolowskie są identyczne
Rok akademicki 28/29, Wykład nr 5 4/43 WyraŜenia i funkcje boolowskie Sprawdzenie czy wyraŝenia boolowskie odpowiadają tej samej funkcji boolowskiej moŝe być dokonane poprzez: stworzenie tablicy prawdy (ang. truth table) i porównanie stanów wyjściowych doprowadzenie do postaci kanonicznej i sprawdzenie czy są one takie same Przykład (tablica prawdy): ab + ab a b + ab oba wyraŝenie odpowiadają tej samej funkcji boolowskiej f (a, b) ab + ab ab + ab
Rok akademicki 28/29, Wykład nr 5 5/43 Wyra WyraŜenia i funkcje boolowskie enia i funkcje boolowskie Tablica prawdy nazywana jest takŝe tablicą stanów lub tablicą funkcyjną Przykład (tablica prawdy): bc ab b,c) (a, f + a b c a - ab - ab - c - bc - ab+bc - - ab+bc - -
Rok akademicki 28/29, Wykład nr 5 6/43 WyraŜenia i funkcje boolowskie Iloczyn elementarny n-zmiennych - iloczyn zmiennych, w którym kaŝdy argument występuje dokładnie raz (w postaci prostej lub zaprzeczonej) WyraŜenie kanoniczne - suma iloczynów elementarnych, dla których wartość funkcji wynosi Przykład sprowadzenia wyraŝenia do postaci kanonicznej: zapisujemy wyraŝenie w postaci sumy iloczynów ( a + b)c a c + bc ( a + b)c iloczyny, które nie są elementarne mnoŝymy przez x i i x i a c + bc a c(b + b) + bc(a + a) wykonujemy mnoŝenie i redukujemy powtarzające się iloczyny a c(b + b) + bc(a + a) a c b + a c b + b c a + b c a abc { + abc + abc + abc { abc 4+ 4abc 24+ 4abc 3 to samo to samo postac kanoniczna
Rok akademicki 28/29, Wykład nr 5 7/43 Minimalizacja funkcji boolowskich W technice cyfrowej funkcje boolowskie przedstawia się w jak najprostszej postaci (najmniejszy koszt realizacji) W rozwiązywaniu zadań minimalizacji stosowane są róŝne metody: metoda algebraiczna - zastosowanie praw i aksjomatów algebry Boole a metoda tablic Karnaugha (siatek, map) algorytm minimalizacji Quina-McCluskeya Przykłady (metoda algebraiczna): ab + bc abbc a b + a b a b a b (a + b) (a + b) ab(b + c) (a + b) (a + b) ab(b + c) (a + b) a + (a + b) b abb { + abc abc a{ a + b a + a b + b{ b a b + a b
Rok akademicki 28/29, Wykład nr 5 8/43 Klasyfikacja systemów w komputerowych Pierwsza, najbardziej ogólna klasyfikacja architektur komputerowych to tzw. taksonomia Flynna (972): opiera się na liczbie przetwarzanych strumieni rozkazów i strumieni danych strumień rozkazów (Instruction Stream) - jest odpowiednikiem licznika rozkazów, system złoŝony z n procesorów posiada n liczników rozkazów, a więc n strumieni rozkazów strumień danych (Data Stream) - jest zbiorem operandów, np. system rejestrujący temperaturę mierzoną przez n czujników posiada n strumieni danych źródło: Flynn M.J.: Some Computer Organizations and Their Effectiveness, IEEE Transactions on Computers, Vol. C-2, No 9, pp. 948-96, 972.
Rok akademicki 28/29, Wykład nr 5 9/43 Taksonomia Flynna (972) SISD (Single Instruction Stream Single Data Stream) klasyczne i powszechnie stosowane komputery sekwencyjne (PC) SIMD (Single Instruction Stream Multiple Data Stream) te same operacje wykonywane są na róŝnych danych SM-SIMD (Shared Memory - pamięć wspólna, współdzielona) - komputery wektorowe DM-SIMD (Distributed Memory - pamięć lokalna, rozproszona) - tablice procesorów MISD (Multiple Instruction Stream Single Data Stream) maszyny wykonujące róŝne operacje na tych samych danych (nie spotykane) MIMD (Multiple Instruction Stream Multiple Data Stream) poszczególne procesory wykonują róŝne operacje na róŝnych danych, stanowiących część tego samego zadania obliczeniowego SM-MIMD - maszyny z pamięcią wspólną (wieloprocesory) DM-MIMD - maszyny z pamięcią lokalną (wielokomputery)
Rok akademicki 28/29, Wykład nr 5 2/43 SISD SISD - Single Instruction, Single Data Przetwarzany jest jeden strumień danych przez jeden wykonywany program Maszyny sekwencyjne zbudowane według architektury von Neumanna: architektura polegająca na ścisłym podziale komputera na części: procesor (w ramach którego wydzielona bywa część sterująca oraz część arytmetyczno-logiczna) pamięć (zawierająca dane i sam program) urządzenia wejścia/wyjścia Zawierają jeden procesor i jeden blok pamięci operacyjnej, w której znajduje się program - ciąg instrukcji wykonywanych sekwencyjnie
Rok akademicki 28/29, Wykład nr 5 2/43 SIMD SIMD - Single Instruction, Multiple Data Przetwarzanych jest wiele strumieni danych przez jeden wykonywany program Dzielą się na dwie grupy: SM-SIMD (Shared Memory SIMD) - komputery wektorowe DM-SIMD (Distributed Memory SIMD) - tablice procesorów
Rok akademicki 28/29, Wykład nr 5 22/43 SIMD - Komputery wektorowe Komputery wektorowe - jeden procesor operujący na tablicy danych Główny składnik to procesor wektorowy, w którym w sposób równoległy wykonywane są ciągi tych samych operacji W momencie rozpoczęcia wykonywania instrukcji poszczególne procesory pobierają dane, a po jej zakończeniu wysyłają wyniki do tej samej globalnej pamięci Schemat blokowy maszyny wektorowej jest przedstawiony na rysunku źródło: A. Karbowski, E. Niewiadomska-Szynkiewicz: Obliczenia równoległe i rozproszone.
Rok akademicki 28/29, Wykład nr 5 23/43 SIMD - Komputery wektorowe CDC Cyber 25 (98) Cray- (976) Cray-2 (985) Hitachi S36 (994)
Rok akademicki 28/29, Wykład nr 5 24/43 SIMD - Tablice procesorów Maszyny składające się z jednego procesora sterującego i duŝej liczby prostych procesorów, z których kaŝdy ma swoją pamięć lokalną Procesory połączone są tylko ze swoimi bezpośrednimi sąsiadami KaŜdy procesor wykonuje te same instrukcje (wydawane przez procesor sterujący), w tym samym czasie, na swych danych lokalnych Wymiana danych występuje pomiędzy sąsiadującymi procesorami: left, right, up, down (+ front, back dla 3D) Stosowane w latach 7-tych i na początku lat 8-tych źródło: A. Karbowski, E. Niewiadomska-Szynkiewicz: Obliczenia równoległe i rozproszone.
Rok akademicki 28/29, Wykład nr 5 25/43 SIMD - Tablice procesorów Illiac IV (976) MasPar MP-/MP /MP-2 (99) Thinking Machines CM-2 (987) Illiac IV (976)
Rok akademicki 28/29, Wykład nr 5 26/43 MISD MISD - Multiple Instruction, Single Data Wiele równolegle wykonywanych programów przetwarza jednocześnie jeden wspólny strumień danych Praktycznie nie spotykane
Rok akademicki 28/29, Wykład nr 5 27/43 MIMD MIMD - Multiple Instruction, Multiple Data Równolegle wykonywanych jest wiele programów, z których kaŝdy przetwarza własne strumienie danych Najbardziej popularna grupa systemów równoległych Dzielą się na dwie grupy: SM-MIMD (Shared Memory MIMD) - SMP, wieloprocesory DM-SIMD (Distributed Memory SIMD) - MPP, wielokomputery, klastry, gridy
Rok akademicki 28/29, Wykład nr 5 28/43 SM-MIMD MIMD - Wieloprocesory Maszyny posiadające niezbyt duŝą liczbę procesorów działających niezaleŝnie, z których kaŝdy ma dostęp do globalnej pamięci DuŜym problemem jest zapewnienie jednakowego czasu dostępu kaŝdego procesora do kaŝdej komórki pamięci Stosowane są róŝne rozwiązania: przełącznice krzyŝowe wspólna magistrala danych
Rok akademicki 28/29, Wykład nr 5 29/43 SM-MIMD MIMD - Wieloprocesory Cray YM-P (988) Cray J9 (994) Cray CS64 (993)
Rok akademicki 28/29, Wykład nr 5 3/43 SM-MIMD MIMD - Wieloprocesory NEC SX-4 (994) NEC SX-6 (22) NEC SX-5 (995) NEC SX-8 (25)
Rok akademicki 28/29, Wykład nr 5 3/43 DM-MIMD MIMD - Wielokomputery Systemy równoległe, w których kaŝdy procesor wyposaŝony jest we własną pamięć operacyjną, niedostępną dla innych procesorów, kaŝdy procesor działa niezaleŝnie i moŝe operować tylko na swojej prywatnej pamięci procesory komunikują się za pomocą sieci połączeniowej wymieniając między sobą komunikaty jeśli stosowana jest bardzo duŝa liczba standardowych procesorów, to mówimy o przetwarzaniu masywnie równoległym - MPP wielokomputery to najpopularniejsza i najbardziej dynamicznie rozwijająca się grupa maszyn równoległych do wielokomputerów zalicza się takŝe klastry
Rok akademicki 28/29, Wykład nr 5 32/43 DM-MIMD MIMD - Wielokomputery Cray T3E (995) Thinking Machines CM-5 (99) ncube 2s (993) Meiko CS-2 (993)
Rok akademicki 28/29, Wykład nr 5 33/43 DM-MIMD MIMD - Klastry Klaster (ang. cluster): równoległy lub rozproszonego system składającego się z komputerów PC lub stacji roboczych komputery połączone są siecią uŝywany jest jako pojedynczy, zintegrowany zespół obliczeniowy Pojedynczy komputer przyłączony do struktury klastra i wykonujący zadania obliczeniowe nazywany jest węzłem klastra (ang. node)
Rok akademicki 28/29, Wykład nr 5 34/43 MIMD - Klastry Miejsce instalacji: Politechnika Białostocka Wydział Elektryczny Katedra Elektrotechniki Teoretycznej i Metrologii Rok instalacji: 24-26 Typ klastra: homogeniczny dedykowany Liczba węzłów: 7 Sieć komputerowa: Gigabit Ethernet
Rok akademicki 28/29, Wykład nr 5 35/43 MIMD - Klastry Klastry Beowulf budowane są zazwyczaj ze zwykłych komputerów PC Odin II Beowulf Cluster Layout, University of Chicago, USA
Rok akademicki 28/29, Wykład nr 5 36/43 MIMD - Klastry Klastry Beowulf budowane są zazwyczaj ze zwykłych komputerów PC NASA 28-processor Beowulf cluster: A cluster built from 64 ordinary PC's
Rok akademicki 28/29, Wykład nr 5 37/43 MIMD - Klastry Early Aspen Systems Beowulf Cluster With RAID
Rok akademicki 28/29, Wykład nr 5 38/43 Klasyfikacja systemów w komputerowych - podsumowanie
Rok akademicki 28/29, Wykład nr 5 39/43 Koniec wykładu nr 5 Dziękuj kuję za uwagę!
Rok akademicki 28/29, Wykład nr 5 4/43 Źródła a (KsiąŜ ąŝki): Biernat J.: Metody i układy arytmetyki komputerowej. Oficyna Wydawnicza Politechniki Wrocławskiej, Wrocław, 2. Rozdz. 4.. Algebra logiki i funkcje logiczne (str. 63-65) Borowik B.E.: Programowanie równoległe w zastosowaniach. Wydawnictwo MIKOM, Warszawa, 2. Rozdz. 4.2. Klasyfikacja systemów komputerów równoległych (str. 8-2) Kalisz J.: Podstawy elektroniki cyfrowej. Wydawnictwa Komunikacji i Łączności, Warszawa, 22. Rozdz..5. Algebra Boole a (str. 8-2) Rozdz. 4.. Układy kombinacyjne (str. 78-) Kozielski S., Szczerbiński Z.: Komputery równoległe. Architektura, elementy programowania. WNT, Warszawa, 993. Rozdz..4. Klasyfikacja komputerów równoległych (str. 9-24) Lal K., Rak T.: Linux a technologie klastrowe. Wydawnictwo MIKOM, Warszawa, 25. Rozdz. 4.2. Klastry - definicja i klasyfikacje (str. 5-6) Stallings W.: Organizacja i architektura systemu komputerowego. Projektowanie systemu a jego wydajność. WNT, Warszawa, 24. Dodatek A.. Algebra Boole a (str. 694-696)
Rok akademicki 28/29, Wykład nr 5 4/43 Źródła a (KsiąŜ ąŝki): Tanenbaum A.S.: Strukturalna organizacja systemów komputerowych. Helion, Gliwice, 26. Rozdz. 3.. Bramki i algebra Boole a (str. 53-63) Rozdz. 8. Architektury komputerów równoległych (str. 587-72) Praca zbiorowa pod redakcją A. Karbowskiego i E. Niewiadomskiej-Szynkiewicz: Obliczenia równoległe i rozproszone. Oficyna Wydawnicza Politechniki Warszawskiej, Warszawa, 2. Rozdz. 3. Architektury maszyn równoległych (str. 2-42)
Rok akademicki 28/29, Wykład nr 5 42/43 Źródła a (Internet): http://pl.wikipedia.org/wiki/algebra_boole'a - Algebra Boole a http://pl.wikipedia.org/wiki/funkcja_boolowska - Funkcja boolowska http://edu.i-lo.tarnow.pl/inf/alg/2_struct/5.php - Algebra Boole a http://home.agh.edu.pl/~kca/r3_algebra_boolea.doc - Algebra Boole a - Instrukcja do ćwiczenia z przedmiotu Komputery w pracach eksperymentalnych, Opracowanie: dr Małgorzata Jakubowska, Wydział InŜynierii Materiałowej i Ceramiki AGH, Katedra Chemii Analitycznej, Kraków, 22 http://pl.wikipedia.org/wiki/prawa_de_morgana - Prawa De Morgana http://pl.wikipedia.org/wiki/taksonomia_flynna - Taksonomia Flynna ftp://ftp.helion.pl/online/sosko5/sosko5-8.pdf - Rozdz. 8. Architektury komputerów równoległych z ksiąŝki A.S. Tanenbaum: Strukturalna organizacja systemów komputerowych. Helion, Gliwice, 26.
Rok akademicki 28/29, Wykład nr 5 43/43 Źródła a (Internet): http://en.wikipedia.org/wiki/boolean_algebra_(logic) - Boolean algebra (logic) http://en.wikipedia.org/wiki/de_morgan s_laws - De Morgan s laws http://en.wikipedia.org/wiki/flynn s_taxonomy - Flynn s taxonomy http://www.top5.org - TOP5 Supercomputing Sites