Architektura von Neumanna

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

dr inż. Jarosław Forenc

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

dr inż. Jarosław Forenc

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

dr inż. Jarosław Forenc

dr inż. Jarosław Forenc

16. Taksonomia Flynn'a.

dr inż. Jarosław Forenc

dr inż. Jarosław Forenc

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

Architektura komputerów

Architektura mikroprocesorów TEO 2009/2010

Architektura komputerów

Podstawy Informatyki Systemy sterowane przepływem argumentów

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

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

1. ARCHITEKTURY SYSTEMÓW KOMPUTEROWYCH

Systemy wieloprocesorowe i wielokomputerowe

Budowa Mikrokomputera

Architektura Komputerów

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

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

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

Systemy operacyjne i sieci komputerowe Szymon Wilk Superkomputery 1

3.Przeglądarchitektur

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

dr inż. Jarosław Forenc

3.Przeglądarchitektur

Programowanie współbieżne i rozproszone

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

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.

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

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

dr inż. Jarosław Forenc

RDZEŃ x86 x86 rodzina architektur (modeli programowych) procesorów firmy Intel, należących do kategorii CISC, stosowana w komputerach PC,

Porównanie wydajności CUDA i OpenCL na przykładzie równoległego algorytmu wyznaczania wartości funkcji celu dla problemu gniazdowego

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

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

Nowoczesne technologie przetwarzania informacji

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

Procesory. Schemat budowy procesora

Podsystem graficzny. W skład podsystemu graficznego wchodzą: karta graficzna monitor

Tesla. Architektura Fermi

Budowa komputera Komputer computer computare

Systemy wieloprocesorowe i wielokomputerowe

dr inż. Jarosław Forenc

PODSTAWY PRZETWARZANIA RÓWNOLEGŁEGO INFORMACJI

Larrabee GPGPU. Zastosowanie, wydajność i porównanie z innymi układami

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

Komputery równoległe. Zbigniew Koza. Wrocław, 2012

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

System mikroprocesorowy i peryferia. Dariusz Chaberski

Przetwarzanie Równoległe i Rozproszone

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

Procesory wielordzeniowe (multiprocessor on a chip) Krzysztof Banaś, Obliczenia wysokiej wydajności.

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

Wprowadzenie. Klastry komputerowe. Superkomputery. informatyka +

i3: internet - infrastruktury - innowacje

Programowanie z wykorzystaniem technologii CUDA i OpenCL Wykład 1

Architektura komputera

Co to jest lista top500. Omów mikrotechnologię Core

Wykorzystanie architektury Intel MIC w obliczeniach typu stencil

Programowanie procesorów graficznych GPGPU

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

Budowa i zasada działania komputera. dr Artur Bartoszewski

Architektura komputerów

Wykład 8 Systemy komputerowe ze współdzieloną pamięcią operacyjną, struktury i cechy funkcjonalne.

Rozproszona pamiêæ dzielona - 1

Programowanie procesorów graficznych NVIDIA (rdzenie CUDA) Wykład nr 1

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

COMPUTER ORGANIZATION AND DESIGN The Hardware/Software Interface. Wprowadzenie do systemów wieloprocesorowych

Introduction to Computer Science

Programowanie procesorów graficznych GPGPU. Krzysztof Banaś Obliczenia równoległe 1

Programowanie kart graficznych

CUDA Median Filter filtr medianowy wykorzystujący bibliotekę CUDA sprawozdanie z projektu

LEKCJA TEMAT: Zasada działania komputera.

Mikroprocesory rodziny INTEL 80x86

ARCHITEKTURA PROCESORA,

dr inż. Jarosław Forenc

Technologie informacyjne - wykład 2 -

CUDA część 1. platforma GPGPU w obliczeniach naukowych. Maciej Matyka

Technologie Informacyjne Wykład 2

Architektura Systemów Komputerowych 2

Obliczenia Wysokiej Wydajności

Architektura komputerów

LEKCJA TEMAT: Współczesne procesory.

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

Technika mikroprocesorowa

JCuda Czy Java i CUDA mogą się polubić? Konrad Szałkowski

Programowanie aplikacji równoległych i rozproszonych

Architektura systemów informatycznych

System obliczeniowy laboratorium oraz. mnożenia macierzy

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

Libra.cs.put.poznan.pl/mailman/listinfo/skisrkolo.

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

MMX i SSE. Zbigniew Koza. Wydział Fizyki i Astronomii Uniwersytet Wrocławski. Wrocław, 10 marca Zbigniew Koza (WFiA UWr) MMX i SSE 1 / 16

Architektura systemów komputerowych. dr Artur Bartoszewski

Obliczenia Wysokiej Wydajności

Transkrypt:

Architektura von Neumanna

Klasyfikacja systemów komputerowych (Flynna) SISD - Single Instruction Single Data SIMD - Single Instruction Multiple Data MISD - Multiple Instruction Single Data MIMD - Multiple Instruction Multiple Data

Pierwsza, najbardziej ogólna klasyfikacja architektur komputerowych to tzw. taksonomia Flynna (1972) Klasyfikacja została przedstawiona w pracy: Flynn M.J.: Some Computer Organizations and Their Effectiveness, IEEE Transactions on Computers, Vol. C-21, No 9, 1972. Taksonomia Flynna 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

Klasyfikacja systemów komputerowych

SISD (Single Instruction Single Data) klasyczne, najtańsze komputery sekwencyjne (PC, laptopy) SIMD (Single Instruction Multiple Data) te same operacje wykonywane są na różnych danych SM-SIMD (Shared Memory) - komputery wektorowe DM-SIMD (Distributed Memory) - tablice procesorów MISD (Multiple Instruction Single Data) różne operacje wykonywane na tych samych danych (nie spotykane) MIMD (Multiple Instruction Multiple Data) różne operacje wykonywane na różnych danych, ale stanowiące część tego samego zadania obliczeniowego SM-MIMD - maszyny z pamięcią wspólną (wieloprocesory) DM-MIMD - maszyny z pamięcią lokalną (wielokomputery)

SISD (Single Instruction, Single Data) Przetwarzany jest jeden strumień danych przez jeden wykonywany program Klasyczne, najtańsze maszyny sekwencyjne, zbudowane według architektury von Neumanna Zawierają jeden procesor i jeden blok pamięci operacyjnej, w której znajduje się program - ciąg instrukcji wykonywanych sekwencyjnie Jeśli jeden komputer ma kilka procesorów, z których każdy wykonuje niezależny program, to można traktować go jako zestaw maszyn typu SISD

SISD (Single Instruction, Single Data) W maszynach typu SISD występują elementy równoległości: przetwarzanie potokowe (pipelining) rozszerzenia strumieniowe (MMX, SSE, AltiVec, 3DNow!) do szybkiego przetwarzania grafiki i multimediów hiperwątkowość (HT, HyperThreading) - obsługa dwóch niezależnych wątków przez jedną jednostkę wykonawczą procesora

SISD (Single Instruction, Single Data)

SIMD (Single Instruction, Multiple Data) Przetwarzanych jest wiele strumieni danych przez jeden wykonywany program, czyli te same operacje wykonywane są na różnych danych Dzielą się na dwie grupy: SM-SIMD (Shared Memory SIMD) - komputery wektorowe DM-SIMD (Distributed Memory SIMD) - tablice procesorów

SM-SIMD - Komputery wektorowe Główny składnik to jeden lub kilka stanowiących logicznie jeden, procesor wektorowy, w którym w sposób równoległy wykonywane są ciągi tych samych operacji;

SM-SIMD - Komputery wektorowe 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; Proste programowanie, gdyż program sekwencyjny jest automatycznie zrównoleglany przez kompilator Do podejścia Shared Memory SIMD można zaliczyć wprowadzenie do procesorów rozszerzeń strumieniowych zwiększających wydajność operacji graficznych i multimedialnych: MMX - MultiMedia extensions, 1997 rok, Intel Pentium MMX 3DNow!, 1998 rok, AMD K6-2 SSE - Streaming SIMD Extensions, 1999 rok, Intel Pentium III SSE2 - Streaming SIMD Extensions 2, 2001 rok, Intel Pentium 4

SSSE3 - Supplemental Streaming SIMD Extensions 3 SSE4 - Streaming SIMD Extensions 4, 2007 rok AVX - Advanced Vector Extensions - planowane: 2010 rok SSE5 - Streaming SIMD Extensions 5 - planowane: 2011 rok

DM-SIMD - Tablice procesorów Maszyny składające się z jednego procesora sterującego i dużej liczby prostych procesorów z pamięcią lokalną

DM-SIMD - Tablice procesorów Każdy procesor wykonuje te same instrukcje (wydawane przez procesor sterujący), w tym samym czasie, na swych danych lokalnych Wymiana danych pomiędzy sąsiadującymi procesorami: left, right, up, down, (+ front, back dla 3D) Stosowane w latach 70-tych i na początku lat 80-tych

DM-SIMD - Procesory graficzne Do podejścia DM-SIMD można zaliczyć obliczenia ogólnego przeznaczenia realizowane na procesorach kart graficznych GPGPU General Purpose computing on Graphics Processing Units obliczenia ogólnego przeznaczenia realizowane za pomocą procesora graficznego NVIDIA CUDA (Compute Unified Device Architecture) równoległa architektura obliczeniowa bezpłatne środowisko zawierające: narzędzia do kompilacji, uruchamiania i testowania programów, biblioteki numeryczne pierwsza wersja: listopad 2006 umożliwia stworzenie programu w języku C/C++ wykonywanego jednocześnie na CPU (host) i GPU (device) firmy NVIDIA

CUDA - Architektura GPU (GeForce GTX 200) Podstawowym elementem architektury jest multiprocesor strumieniowy (SM): 8 x SP - osiem procesorów strumieniowych 2 x SFU (Special Function Unit) - dwie jednostki specjalne do obliczania funkcji trygonometrycznych,wykładniczych, logarytmicznych DP - jeden procesor podwójnej precyzji (fp64), (brak na rysunku!!!) Shared Memory - pamięć współdzielona (16 kb) I Cache - pamięć podręczna instrukcji C Cache - pamięć podręczna danych, tylko odczyt MT Issue - jednostka sterująca (Multithreaded Instruction Fetch And Issue) 16.384 rejestry 32-bitowe

CUDA - Architektura GPU (GeForce GTX 200) 3 multiprocesory połączone razem tworzą klaster (TPC - Thread Processing Cluster) Klaster zawiera również: odpowiednią logikę sterującą (Geometry Controller + SMC) jednostki tekstur (Texture Units) Jednostki tekstur zawierają: logikę adresowania i filtrowania tekstur pamięć podręczną tekstur (Texture L1)

CUDA - Architektura GPU (GeForce GTX 200) 10 klastrów tworzy macierz procesorów strumieniowych (SPA - Streaming Processor Array) 1 GPU = 10 TCP 1 GPU = 30 SM 1 GPU = 240 SP

CUDA - Architektura GPU (GeForce GTX 200) GPU z dodatkowymi elementami (pamięć DRAM, interfejs PCIe)

Produkty z obsługą CUDA NVIDIA GeForce z serii 8, 9, 100, 200, 400 i 500 karty graficzne ogólnego zastosowania od GeForce 8400 GS do GeForce GTX 580 NVIDIA Quadro z serii Plex, FX, NVS systemy wizualizacji, CAD zastosowania biznesowe (systemy wielomonitorowe) NVIDIA Tesla dedykowane do zastosowań GPGPU Tesla C870, Tesla D870, Tesla S870 Tesla C1060, Tesla S1070, Tesla M1060 Tesla M2050/2070, C2050/2070, S2050

Produkty z obsługą CUDA

Produkty z obsługą CUDA

MISD (Multiple Instruction, Single Data) Wiele równolegle wykonywanych programów przetwarza jednocześnie jeden wspólny strumień danych Tego typu systemy nie są spotykane Możliwe zastosowania: systemy uczące się - różne procesory odczytują i modyfikują w losowej kolejności te same dane

MIMD (Multiple Instruction, Multiple Data) Równolegle wykonywanych jest wiele programów, z których każdy przetwarza własne strumienie danych Jest to najbardziej popularna grupa systemów równoległych Systemy te dzielą się na dwie grupy: SM-MIMD (Shared Memory) - wieloprocesory DM-MIMD (Distributed Memory) wielokomputery, klastry,

SM-MIMD - Wieloprocesory Maszyny posiadające niezbyt dużą liczbę procesorów działających niezależnie, z których każdy ma dostęp do wspólnej przestrzeni adresowej pamięci Procesory komunikują się ze sobą zapisując i odczytując dane w uzgodnionym obszarze wspólnej pamięci Praca wszystkich wieloprocesorów sterowana jest przez pojedynczą kopię systemu operacyjnego Do grupy tej zalicza się także wszystkie komputery z procesorami wielordzeniowymi

SM-MIMD - Wieloprocesory Zależnie od sposobu realizacji pamięci współdzielonej, wieloprocesory dzielą się na trzy grupy: UMA (Uniform Memory Access) - jednolity dostęp do pamięci czas dostępu jest jednakowy dla każdej pary procesor-pamięć jeśli nie jest to możliwe, to szybsze odwołania są sztucznie spowalniane do wolniejszych NUMA (NonUniform Memory Access) - niejednolity dostęp do pamięci procesor uzyskuje szybszy dostęp do tych modułów pamięci, które są bliżej niego COMA (Cache Only Memory Access) - dostęp wyłącznie przez pamięć cache

SM-MIMD - Architektura UMA z magistralą Architektura najprostszych systemów bazuje na pojedynczej magistrali, do której przyłączone są dwa lub więcej procesorów oraz kilka modułów pamięci przed odczytem danych z pamięci procesor sprawdza czy magistrala jest wolna, jeśli tak to wysyła na magistralę adres słowa, ustawia odpowiednio stan sygnałów sterujących i oczekuje aż odczytywana wartość pojawi się na magistrali Dużym problemem w tego typu układach jest rywalizacja procesorów o dostęp do magistrali

SM-MIMD - Architektura UMA z magistralą Problem rywalizacji procesorów o dostęp do magistrali można złagodzić stosując w każdym procesorze pamięć podręczną cache Większość odczytów następuje wtedy z pamięci cache i magistrala zostaje odciążona Zastosowanie pamięci cache wymaga zapewnienia spójności cache (cache consistency, cache coherence)

SM-MIMD - Architektura UMA z przełącznicą Innym rozwiązaniem zapewniającym jednakowy czas dostępu procesorów do pamięci jest przełącznica krzyżowa Skrzyżowanie linii poziomej z pionową nazywane jest punktem skrzyżowania Fizycznie punkt skrzyżowania ma postać małego przełącznika, który może być elektrycznie zamykany lub otwierany

SM-MIMD - Architektura UMA z przełącznicą Przy umiarkowanej liczbie procesorów i modułów pamięci przełącznice krzyżowe spisują się bardzo dobrze Konstruowanie dużych przełącznic jest bardzo kosztowne i z tego powodu nie są one stosowane

SM-MIMD - Architektura NUMA W wieloprocesorach z niejednolitym czasem dostępu do pamięci (NUMA - NonUniform Memory Access) lokalne moduły pamięci są szybciej dostępne dla procesora niż pozostałe, zdalne moduły Gdy dostęp do zdalnej pamięci nie jest wspomagany cache owaniem, architekturę wieloprocesora określa się skrótem NC-NUMA (Non-Cached NUMA) Architektura wieloprocesora wspomagana systemem spójnego cache owania opatrywana jest skrótem ccnuma (cache-coherent NUMA)

SM-MIMD - Architektura COMA Wieloprocesory COMA (Cache Only Memory Access) wykorzystują główną pamięć każdego procesora jako dużą pamięć cache Fizyczna przestrzeń adresowa podzielona zostaje na linie cache, które mogą na żądanie migrować po systemie

SM-MIMD - Wieloprocesory

SM-MIMD - Wieloprocesory

DM-MIMD - Wielokomputery Systemy 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 jest to najpopularniejsza i najdynamiczniej rozwijająca się grupa maszyn równoległych do wielokomputerów zalicza się także klastry

DM-MIMD - Wielokomputery

DM-MIMD - Klastry Klaster (ang. cluster): równoległy lub rozproszonego system składający 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)

DM-MIMD - Klastry Klastry Beowulf budowane były ze zwykłych komputerów PC

Early Aspen Systems Beowulf Cluster With RAID Klaster zbudowany z 336 konsol Sony PlayStation 3

SuperMUC to nazwa nowego superkomputera w Leibniz- Rechenzentrum (centrum Superkomputerowe Leibniz) w Garching obok Monachium (MUC sufiks jest zapożyczone z kod lotniska Munich). Z więcej niż 155.000 rdzeni i najwyższą wydajność Petaflop 3/s (= 10 ^ 15 Floating Point operacji na sekundę) w czerwcu 2012 roku SuperMUC jest jednym z najszybszych superkomputerów na świecie.