dr inż. Jarosław Forenc

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

dr inż. Jarosław Forenc

Standard IEEE 754. Klasyfikacja systemów komputerowych (Flynna) Architektura von Neumanna i architektura harwardzka.

dr inż. Jarosław Forenc

Klasyfikacja systemów komputerowych. Architektura von Neumanna i architektura harwardzka Budowa komputera: dr inż. Jarosław Forenc

dr inż. Jarosław Forenc

dr inż. Jarosław Forenc

dr inż. Jarosław Forenc

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

16. Taksonomia Flynn'a.

Klasyfikacja systemów komputerowych. Architektura von Neumanna i architektura harwardzka Budowa komputera: dr inż. Jarosław Forenc

dr inż. Jarosław Forenc

Architektura von Neumanna

dr inż. Jarosław Forenc

Klasyfikacja systemów komputerowych. Architektura harwardzka Zmodyfikowana architektura harwardzka. dr inż. Jarosław Forenc

Podstawy Informatyki Systemy sterowane przepływem argumentów

dr inż. Jarosław Forenc

Kodowanie liczb. Reprezentacja liczb całkowitych. Standard IEEE 754. dr inż. Jarosław Forenc

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

Klasyfikacja systemów komputerowych. Architektura von Neumanna i architektura harwardzka Budowa komputera: dr inż. Jarosław Forenc

dr inż. Jarosław Forenc

3.Przeglądarchitektur

3.Przeglądarchitektur

dr inż. Jarosław Forenc

Systemy operacyjne i sieci komputerowe Szymon Wilk Superkomputery 1

Architektura Komputerów

Programowanie współbieżne i rozproszone

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

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

Architektura komputerów

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

Architektura mikroprocesorów TEO 2009/2010

Wprowadzenie. Klastry komputerowe. Superkomputery. informatyka +

Systemy wieloprocesorowe i wielokomputerowe

Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska

Architektura komputerów

Nowoczesne technologie przetwarzania informacji

Architektura komputera

Podstawy Techniki Mikroprocesorowej

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

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

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

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.

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

Organizacja typowego mikroprocesora

PODSTAWY PRZETWARZANIA RÓWNOLEGŁEGO INFORMACJI

Budowa komputera Komputer computer computare

UTK ARCHITEKTURA PROCESORÓW 80386/ Budowa procesora Struktura wewnętrzna logiczna procesora 80386

Algorytmy i Struktury Danych

Komputer. Komputer (computer) jest to urządzenie elektroniczne służące do zbierania, przechowywania, przetwarzania i wizualizacji informacji

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

if (warunek) instrukcja1; if (warunek) instrukcja1; else instrukcja2; a > b - a większe od b if (warunek) instrukcja1; a <= b - a mniejsze lub równe b

Mikroinformatyka. Koprocesory arytmetyczne 8087, 80187, 80287, i387

Systemy wieloprocesorowe i wielokomputerowe

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

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

Wprowadzenie do informatyki i użytkowania komputerów. Kodowanie informacji System komputerowy

Budowa Mikrokomputera

Introduction to Computer Science

1. ARCHITEKTURY SYSTEMÓW KOMPUTEROWYCH

Architektura komputerów

Porównaj CISC, RISC, EPIC.

Reprezentacja stałoprzecinkowa. Reprezentacja zmiennoprzecinkowa zapis zmiennoprzecinkowy liczby rzeczywistej

LEKCJA TEMAT: Zasada działania komputera.

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

Technologie informacyjne - wykład 2 -

System mikroprocesorowy i peryferia. Dariusz Chaberski

PROGRAMOWANIE WSPÓŁCZESNYCH ARCHITEKTUR KOMPUTEROWYCH DR INŻ. KRZYSZTOF ROJEK

Arytmetyka stało i zmiennoprzecinkowa

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

Procesory. Schemat budowy procesora

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

Mikroprocesory rodziny INTEL 80x86

Architektura systemów komputerowych

LEKCJA TEMAT: Współczesne procesory.

dr inż. Jarosław Forenc

Pułapki liczb zmiennoprzecinkowych. Adam Sawicki asawicki.info

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

Obliczenia Wysokiej Wydajności

Dr inż. hab. Siergiej Fialko, IF-PK,

Architektura Systemów Komputerowych. Rozwój architektury komputerów klasy PC

Architektura komputerów wer. 3

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

Procesory rodziny x86. Dariusz Chaberski

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

Architektura komputerów wer. 7

Sprzęt komputerowy 2. Autor prezentacji: 1 prof. dr hab. Maria Hilczer

Programowanie kart graficznych. Sprzęt i obliczenia

Informatyka 1. Wykład nr 7 ( ) Plan wykładu nr 7. Politechnika Białostocka. - Wydział Elektryczny. Architektura von Neumanna

Programowanie w asemblerze Architektury równoległe

Architektura systemów komputerowych. dr Artur Bartoszewski

Architektura komputerów Reprezentacja liczb. Kodowanie rozkazów.

Architektura komputerów

WYBRANE ZAGADNIENIA PRZETWARZANIA RÓWNOLEGŁEGO I ROZPROSZONEGO ORAZ KLASTRÓW KOMPUTEROWYCH

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

Technika mikroprocesorowa

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

PROGRAMOWANIE WSPÓŁCZESNYCH ARCHITEKTUR KOMPUTEROWYCH DR INŻ. KRZYSZTOF ROJEK

Układ wykonawczy, instrukcje i adresowanie. Dariusz Chaberski

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

Transkrypt:

Informatyka 1 Politechnika Białostocka - Wydział Elektryczny Elektrotechnika, semestr II, studia stacjonarne I stopnia Rok akademicki 2018/2019 Wykład nr 10 (17.05.2019)

Rok akademicki 2018/2019, Wykład nr 10 2/36 Plan wykładu nr 10 Standard IEEE 754 operacje z wartościami specjalnymi Klasyfikacja systemów komputerowych (Flynna) Architektura von Neumanna i architektura harwardzka

Rok akademicki 2018/2019, Wykład nr 10 3/36 Standard IEEE 754 - wartości specjalne Zero Nieskończoność Liczba zdenormalizowana Nieliczba (NaN) x 1 1 1... 1 1 1 1 x x x x x... x x x x x x x 1 1 1... 1 1 1 0 x x x x x... x x x x x x znak wykładnik mantysa znak wykładnik mantysa

Rok akademicki 2018/2019, Wykład nr 10 4/36 Standard IEEE 754 - wartości specjalne Standard IEEE 754 definiuje dokładnie wyniki operacji, w których występują specjalne argumenty

Rok akademicki 2018/2019, Wykład nr 10 5/36 Język C - operacje z wartościami specjalnymi #include <stdio.h> #include <math.h> int main() { float x = 0.0; printf("1.0/0.0 = %f\n",1.0/x); printf("-1.0/0.0 = %f\n",-1.0/x); printf("0.0/0.0 = %f\n",0.0/x); printf("sqrt(-1.0) = %f\n",sqrt(-1.0)); printf("1.0/inf = %f\n",1.0/(1.0/x)); printf("0*inf = %f\n",0.0*(1.0/x)); 1.0/0.0 = 1.#INF00-1.0/0.0 = -1.#INF00 0.0/0.0 = -1.#IND00 sqrt(-1.0) = -1.#IND00 1.0/INF = 0.000000 0*INF = -1.#IND00 } return 0; Środowisko: Microsoft Visual C++ 2008 Express Edition

Rok akademicki 2018/2019, Wykład nr 10 6/36 Reprezentacja liczb zmiennoprzecinkowych w C Typy zmiennoprzecinkowe w języku C: Nazwa typu Rozmiar (bajty) Zakres wartości Cyfry znaczące float 4 bajty -3,4 10 38 3,4 10 38 7-8 double 8 bajtów -1,8 10 308 1,8 10 308 15-16 long double 10 bajtów -1,2 10 4932 1,2 10 4932 19-20 Typ long double może mieć także inny rozmiar: Środowisko MS Visual C++ 2008 EE Borland Turbo C++ Explorer Dev-C++ Rozmiar (bajty) 8 bajtów 10 bajtów 12 bajtów

Rok akademicki 2018/2019, Wykład nr 10 7/36 Reprezentacja liczb zmiennoprzecinkowych w C #include <stdio.h> int main() { float sf = 0.0f; double sd = 0.0; long double slg = 0.0L; int i; for (i=0; i<10000; i++) { sf = sf + 0.01f; sd = sd + 0.01; slg = slg + 0.01L; } printf("float: %.20f\n",sf); printf("double: %.20f\n",sd); printf("long double: %.20Lf\n",slg); } return 0;

Rok akademicki 2018/2019, Wykład nr 10 8/36 Reprezentacja liczb zmiennoprzecinkowych w C Microsoft Visual C++ 2008 Express Edition (long double - 8 bajtów) float: 100.00295257568359000000 double: 100.00000000001425000000 long double: 100.00000000001425000000 Borland Turbo C++ Explorer (long double - 10 bajtów) float: 100.00295257568359375000 double: 100.00000000001425349000 long double: 100.00000000000001388000 Dev-C++ (long double - 12 bajtów) float: 100.00295257568359000000 double: 100.00000000001425000000 long double: -680564733841935410000000000000000000000.0000000000000

Rok akademicki 2018/2019, Wykład nr 10 9/36 Liczba 2654 (10) jako całkowita i rzeczywista w C int (4 bajty): 2654 (10) = 00000A5E (16) float (4 bajty): 2654 (10) = 4525E000 (IEEE 754)

Rok akademicki 2018/2019, Wykład nr 10 10/36 Język C - nieprawidłowy specyfikator formatu int x; printf("x (%%f) = "); scanf("%f",&x); printf("x (%%d) = %d\n",x); printf("x (%%f) = %f\n",x); printf("x (%%e) = %e\n",x); x (%f) = 2654 x (%d) = 1160110080 x (%f) = 0.000000 x (%e) = 5.731705e-315 Zgodnie ze standardem języka C wynik jest niezdefiniowany Zapamiętana wartość: Wyświetlona wartość przy wykorzystaniu %d:

Rok akademicki 2018/2019, Wykład nr 10 11/36 Język C - nieprawidłowy specyfikator formatu float x; printf("x (%%d) = "); scanf("%d",&x); printf("x (%%d) = %d\n",x); printf("x (%%f) = %f\n",x); printf("x (%%e) = %e\n",x); x (%d) = 2654 x (%d) = 0 x (%f) = 0.000000 x (%e) = 3.719046e-042 Zgodnie ze standardem języka C wynik jest niezdefiniowany Zapamiętana wartość: Wyświetlona wartość przy wykorzystaniu %e:

Rok akademicki 2018/2019, Wykład nr 10 12/36 Klasyfikacja systemów komputerowych Taksonomia Flynna - pierwsza, najbardziej ogólna klasyfikacja architektur komputerowych (1972): Flynn M.J.: Some Computer Organizations and Their Effectiveness, IEEE Transactions on Computers, Vol. C-21, No 9, 1972. Opiera się na liczbie przetwarzanych strumieni rozkazów i strumieni danych: strumień rozkazów (Instruction Stream) - odpowiednik 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) - zbiór operandów, np. system rejestrujący temperaturę mierzoną przez n czujników posiada n strumieni danych

Rok akademicki 2018/2019, Wykład nr 10 13/36 Taksonomia Flynna SI - Single instruction MI - Multiple Instruction SD - Single Data MD - Multiple Data SM - Shared Memory DM - Distributed Memory

Rok akademicki 2018/2019, Wykład nr 10 14/36 SISD (Single Instruction, Single Data) Jeden wykonywany program przetwarza jeden strumień danych Klasyczne komputery zbudowane według architektury von Neumanna Zawierają: jeden procesor jeden blok pamięci operacyjnej zawierający wykonywany program. SISD - instrukcje -dane -wyniki

Rok akademicki 2018/2019, Wykład nr 10 15/36 SISD (Single Instruction, Single Data) Komputer IBM PC/AT Komputer PC Komputer PC Laptop

Rok akademicki 2018/2019, Wykład nr 10 16/36 SIMD (Single Instruction, Multiple Data) Jeden wykonywany program przetwarza wiele strumieni danych Te same operacje wykonywane są na różnych danych Podział: SM-SIMD (Shared Memory SIMD): - komputery wektorowe - rozszerzenia strumieniowe procesorów (MMX, 3DNow!, SSE, SSE2, SSE3, AVX, ) SIMD - instrukcje -dane -wyniki DM-SIMD (Distributed Memory SIMD): - tablice procesorów - procesory kart graficznych (GPGPU)

Rok akademicki 2018/2019, Wykład nr 10 17/36 SM-SIMDSIMD - Komputery wektorowe CDC Cyber 205 (1981) Cray-1 (1976) Cray-2 (1985) Hitachi S3600 (1994)

Rok akademicki 2018/2019, Wykład nr 10 18/36 DM-SIMD - Tablice procesorów Illiac IV (1976) MasPar MP-1/MP-2 (1990) Thinking Machines CM-2 (1987) Illiac IV (1976)

Rok akademicki 2018/2019, Wykład nr 10 19/36 DM-SIMD - Procesory graficzne (GPU) GeForce GTX Titan X Tesla V100 Tesla D870 DGX-1 Volta

Rok akademicki 2018/2019, Wykład nr 10 20/36 MISD (Multiple Instruction, Single Data) Wiele równolegle wykonywanych programów przetwarza jednocześnie jeden wspólny strumień danych Systemy tego typu nie są spotykane

Rok akademicki 2018/2019, Wykład nr 10 21/36 MIMD (Multiple Instruction, Multiple Data) Równolegle wykonywanych jest wiele programów, z których każdy przetwarza własne strumienie danych Podział: SM-MIMD (Shared Memory): - wieloprocesory DM-MIMD (Distributed Memory): - wielokomputery - klastry - gridy

Rok akademicki 2018/2019, Wykład nr 10 22/36 SM-MIMDMIMD - Wieloprocesory Systemy z niezbyt dużą liczbą działających niezależnie procesorów Każdy procesor ma dostęp do wspólnej przestrzeni adresowej pamięci Komunikacja procesorów poprzez uzgodniony obszar wspólnej pamięci Do SM-MIMD należą komputery z procesorami wielordzeniowymi

Rok akademicki 2018/2019, Wykład nr 10 23/36 SM-MIMD MIMD - Wieloprocesory Cray YM-P (1988) Cray J90 (1994) Cray CS6400 (1993)

Rok akademicki 2018/2019, Wykład nr 10 24/36 DM-MIMDMIMD - Wielokomputery Każdy procesor wyposażony jest we własną pamięć operacyjną, niedostępną dla innych procesorów Komunikacja między procesorami odbywa się za pomocą sieci poprzez przesyłanie komunikatów Biblioteki komunikacyjne: MPI (Message Passing Interface) PVM (Parallel Virtual Machine)

Rok akademicki 2018/2019, Wykład nr 10 25/36 DM-MIMD MIMD - Wielokomputery Cray T3E (1995) Thinking Machines CM-5 (1991) ncube 2s (1993) Meiko CS-2 (1993)

Rok akademicki 2018/2019, Wykład nr 10 26/36 DM-MIMDMIMD - Klastry Klaster (cluster): równoległy lub rozproszonego system składający się z komputerów komputery połączone są siecią używany jest jako pojedynczy, zintegrowany zespół obliczeniowy Węzeł (node) - pojedynczy komputer przyłączony do klastra i wykonujący zadania obliczeniowe źródło: http://leda.elfak.ni.ac.rs/projects/seegrid/see_grid.htm KVM - Keyboard, Video, Mouse

Rok akademicki 2018/2019, Wykład nr 10 27/36 DM-MIMDMIMD - Klastry Klastry Beowulf budowane były ze zwykłych komputerów PC Odin II Beowulf Cluster Layout, University of Chicago, USA

Rok akademicki 2018/2019, Wykład nr 10 28/36 DM-MIMDMIMD - Klastry Klastry Beowulf budowane były ze zwykłych komputerów PC NASA 128-processor Beowulf cluster: A cluster built from 64 ordinary PC's

Rok akademicki 2018/2019, Wykład nr 10 29/36 DM-MIMDMIMD - Klastry Early Aspen Systems Beowulf Cluster With RAID

Rok akademicki 2018/2019, Wykład nr 10 30/36 DM-MIMDMIMD - Klastry Obecnie klastry też są bardzo popularnym typem systemów SuperMUC-NG, Leibniz Rechenzentrum, Germany

Rok akademicki 2018/2019, Wykład nr 10 31/36 Architektura von Neumanna Rodzaj architektury komputera, opisanej w 1945 roku przez matematyka Johna von Neumanna Inne spotykane nazwy: architektura z Princeton, store-program computer (koncepcja przechowywanego programu) Zakłada podział komputera na kilka części: jednostka sterująca (CU - Control Unit) jednostka arytmetyczno-logiczna (ALU - Arithmetic Logic Unit) pamięć główna (memory) urządzenia wejścia-wyjścia (input/output)

Rok akademicki 2018/2019, Wykład nr 10 32/36 Architektura von Neumanna - podstawowe cechy Informacje przechowywane są w komórkach pamięci (cell) o jednakowym rozmiarze, każda komórka ma numer - adres Dane oraz instrukcje programu (rozkazy) zakodowane są za pomocą liczb i przechowywane w tej samej pamięci Praca komputera to sekwencyjne odczytywanie instrukcji z pamięci komputera i ich wykonywanie w procesorze Wykonanie rozkazu: pobranie z pamięci słowa będącego kodem instrukcji pobranie z pamięci danych wykonanie instrukcji zapisanie wyników do pamięci Dane i instrukcje czytane są przy wykorzystaniu tej samej magistrali

Rok akademicki 2018/2019, Wykład nr 10 33/36 Architektura harwardzka Architektura komputera, w której pamięć danych jest oddzielona od pamięci instrukcji Nazwa architektury pochodzi komputera Harward Mark I: zaprojektowany przez Howarda Aikena pamięć instrukcji - taśma dziurkowana, pamięć danych - elektromechaniczne liczniki

Rok akademicki 2018/2019, Wykład nr 10 34/36 Architektura harwardzka Pamięci danych i instrukcji mogą różnić się: technologią wykonania strukturą adresowania długością słowa Przykład: ATmega16-16 kb Flash, 1 kb SRAM, 512 B EEPROM Procesor może w tym samym czasie czytać instrukcje oraz uzyskiwać dostęp do danych

Rok akademicki 2018/2019, Wykład nr 10 35/36 Architektura harwardzka i von Neumanna W architekturze harwardzkiej pamięć instrukcji i pamięć danych: zajmują różne przestrzenie adresowe mają oddzielne szyny (magistrale) do procesora zaimplementowane są w inny sposób Procesor Magistrala instrukcji Pamięć programu (instrukcje programu) Magistrala danych Pamięć danych (dane programu) Architektura von Neumanna Architektura harwardzka Zmodyfikowana architektura harwardzka: oddzielone pamięci danych i rozkazów, lecz wykorzystujące wspólną magistralę

Rok akademicki 2018/2019, Wykład nr 10 36/36 Koniec wykładu nr 10 Dziękuję za uwagę!