SSE (Streaming SIMD Extensions)

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

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

16. Taksonomia Flynn'a.

Architektura komputerów

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

Wykład 13. Systemy wieloprocesorowe. Wojciech Kwedlo Wykład z Systemów Operacyjnych -1- Wydział Informatyki PB

Architektura komputerów

Budowa Mikrokomputera

Mikroinformatyka. Koprocesory arytmetyczne 8087, 80187, 80287, i387

Systemy wieloprocesorowe i wielokomputerowe

Działanie komputera i sieci komputerowej.

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

Procesory. Schemat budowy procesora

Algorytmy i Struktury Danych

Architektura komputerów

Budowa komputera Komputer computer computare

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

Systemy rozproszone. na użytkownikach systemu rozproszonego wrażenie pojedynczego i zintegrowanego systemu.

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

Organizacja typowego mikroprocesora

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

Systemy operacyjne. Systemy operacyjne. Systemy operacyjne. Zadania systemu operacyjnego. Abstrakcyjne składniki systemu. System komputerowy

Metoda znak-moduł (ZM)

Wprowadzenie do architektury komputerów systemy liczbowe, operacje arytmetyczne i logiczne

Architektura komputerów

Architektura komputerów

Wydajność systemów a organizacja pamięci, czyli dlaczego jednak nie jest aż tak źle. Krzysztof Banaś, Obliczenia wysokiej wydajności.

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

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

Programowanie w asemblerze Architektury równoległe

Mikroprocesory rodziny INTEL 80x86

Podstawy Informatyki. Inżynieria Ciepła, I rok. Wykład 5 Liczby w komputerze

Budowa systemów komputerowych

SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE

Procesor ma architekturę rejestrową L/S. Wskaż rozkazy spoza listy tego procesora. bgt Rx, Ry, offset nand Rx, Ry, A add Rx, #1, Rz store Rx, [Rz]

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

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

LEKCJA TEMAT: Zasada działania komputera.

Systemy operacyjne i sieci komputerowe Szymon Wilk Superkomputery 1

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

Architektura mikroprocesorów TEO 2009/2010

Architektura komputera

Rejestry procesora. Nazwa ilość bitów. AX 16 (accumulator) rejestr akumulatora. BX 16 (base) rejestr bazowy. CX 16 (count) rejestr licznika

Obliczenia Wysokiej Wydajności

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

LEKCJA TEMAT: Współczesne procesory.

Podstawy Informatyki Systemy sterowane przepływem argumentów

Wprowadzenie do systemów operacyjnych

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

Podstawy Informatyki. Rodzaje komputerów. dr. inż Adam Klimowicz

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

Pamięć wirtualna. Przygotował: Ryszard Kijaka. Wykład 4

Budowa i zasada działania komputera. dr Artur Bartoszewski

Algorytmy dla maszyny PRAM

Systemy wieloprocesorowe i wielokomputerowe

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

ARCHITEKTURA PROCESORA,

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

Architektura komputerów wer. 3

Działanie systemu operacyjnego

Systemy rozproszone System rozproszony

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

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

współbieżność - zdolność do przetwarzania wielu zadań jednocześnie

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

Architektura komputerów

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

Dydaktyka Informatyki budowa i zasady działania komputera

3.Przeglądarchitektur

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

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 komputera. Dane i rozkazy przechowywane są w tej samej pamięci umożliwiającej zapis i odczyt

Procesory rodziny x86. Dariusz Chaberski

Architektura komputerów wer. 7

Podstawy Informatyki DMA - Układ bezpośredniego dostępu do pamięci

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

Technologie Informacyjne Wykład 3

Budowa karty sieciowej; Sterowniki kart sieciowych; Specyfikacja interfejsu sterownika sieciowego; Open data link interface (ODI); Packet driver

Przetwarzanie równoległesprzęt. Rafał Walkowiak Wybór

Urządzenia zewnętrzne

Naturalny kod binarny (NKB)

dr inż. Jarosław Forenc

Działanie systemu operacyjnego

Wprowadzenie do systemów operacyjnych. mgr inż. Krzysztof Szałajko

Architektura komputerów. Układy wejścia-wyjścia komputera

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

SYSTEMY OPERACYJNE: STRUKTURY I FUNKCJE (opracowano na podstawie skryptu PP: Królikowski Z., Sajkowski M. 1992: Użytkowanie systemu operacyjnego UNIX)

Magistrala systemowa (System Bus)

Metody numeryczne Technika obliczeniowa i symulacyjna Sem. 2, EiT, 2014/2015

Programowanie Niskopoziomowe

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

Zestaw 3. - Zapis liczb binarnych ze znakiem 1

Pracownia Komputerowa wykład VI

Architektura Systemów Komputerowych. Jednostka ALU Przestrzeń adresowa Tryby adresowania

PODSTAWY PRZETWARZANIA RÓWNOLEGŁEGO INFORMACJI

Działanie systemu operacyjnego

Architektura systemów komputerowych. dr Artur Bartoszewski

Procesor i jego architektura (CISC, RISC, 32/64 bity). Systemy wieloprocesorowe. wer Wojciech Myszka 16 pa«zdziernika 2008

Arytmetyka binarna - wykład 6

Transkrypt:

SSE (Streaming SIMD Extensions) Zestaw instrukcji wprowadzony w 1999 roku po raz pierwszy w procesorach Pentium III. SSE daje przede wszystkim możliwość wykonywania działań zmiennoprzecinkowych na 4-elementowych wektorach liczb pojedynczej precyzji (48 rozkazów). Ponadto wprowadzono jedenaście nowych rozkazów stałoprzecinkowych w zestawie MMX, a także dano możliwość wskazywania, które dane powinny znaleźć się w pamięci podręcznej.

SSE (Streaming SIMD Extensions) Typy danych: SSE wprowadza nowy typ danych: 4-elementowy wektor liczb zmiennoprzecinkowych pojedynczej precyzji (ang. 128-bit packed sigle-precision floating-point); liczba zmiennoprzecinkowa ma rozmiar 32 bitów. Wprowadza także 32-bitowy rejestr kontrolny MXCSR.

SSE (Streaming SIMD Extensions) Rozkazy SSE mogą wykonywać działania arytmetyczne na wektorach liczb zmiennoprzecinkowych na dwa sposoby: packed (równoległe) wykonując równocześnie 4 niezależne działania zmiennoprzecinkowe na odpowiadających sobie elementach wektorów; scalar (skalarne) wykonując działanie tylko na pierwszych elementach wektorów.

SSE (Streaming SIMD Extensions) Przykład mnożenie dwóch wektorów (rozkazem MULPS xmm0, xmm1): x3 x2 x1 x0 xmm0 * * * * y3 y2 y1 y0 xmm1 = = = = x3*y3 x2*y2 x1*y1 x0*y0 xmm0 Przykład mnożenie pierwszych elementów wektorów (rozkazem MULSS xmm0, xmm1): x3 x2 x1 x0 xmm0 * * * * y3 y2 y1 y0 xmm1 = = = = x3 x2 x1 x0*y0 xmm0

SSE (Streaming SIMD Extensions) Mnemoniki rozkazów: podobnie jak w MMX sufiks nazwy określa typ: PS (packed single) działanie na wektorach, SS (scalar single) działanie na skalarach. Ponadto jeśli rozkazy działają na połówkach rejestrów XMM (tj. albo odnoszą się do bitów 0..63, albo 64..127), w mnemonikach rozkazu występuje litera odpowiednio L albo H, od angielskich słów low i high. Działania arytmetyczne dodawanie (ADDPS, ADDSS) odejmowanie (SUBPS, SUBSS) mnożenie (MULPS, MULSS) dzielenie (DIVPS, DIVSS)

SSE (Streaming SIMD Extensions) Działania logiczne: Działania logiczne są wykonywane na poziomie bitów suma (ORPS); iloczyn (ANDPS); iloczyn z negacją (ANDNPS) jeden z operandów jest negowany przed obliczeniem iloczynu; różnica symetryczna (XORPS).

SSE (Streaming SIMD Extensions) Rejestr MXCSR przechowuje: 1. Ustawienia operacji zmiennoprzecinkowych: sposób zaokrąglanie wyniku: do najbliższej liczby całkowitej zaokrąglanie w stronę plus nieskończoności zaokrąglanie w stronę minus nieskończoności ucinanie (zaokrąglanie w stronę zera) flaga flush-to-zero jeśli ustawiona w przypadku niedomiaru zamiast zgłaszania wyjątku, zapisywana jest liczba zero; działanie nie jest zgodne ze standardem, ale powoduje przyspieszenie programów Maski włączające zgłaszanie wyjątków przy błędach; wykrywane błędy: niewłaściwe argumenty (np. pierwiastkowanie ujemnej liczby), dzielenie przez zero, nadmiar (wynik jest zbyt duży), niedomiar (wynikiem jest liczba nie znormalizowana), niedokładny wynik (wynik nie może być dokładnie reprezentowany). Flagi wskazujące rodzaj błędu ustawiane automatycznie przez procesor.

Przetwarzanie wieloprocesorowe Prosty komputer składa się z procesora i pamięci Instructions to processor Data to/from processor Main memory Processor

Przetwarzanie wieloprocesorowe Ograniczenia w zwiększaniu szybkości procesorów: Ograniczenie związane z prędkością światła: 20 cm/ns w przewodzie miedzianym Moc rozpraszana w procesorze jest (w dużym uproszczeniu) proporcjonalna do iloczynu (a) liczby tranzystorów (b) kwadratu napięcia zasilania (c) częstotliwości taktowania. Jeżeli aktualne trendy (stała powierzchnia chipu, liczba tranzystorów i częstotliwość taktowania wzrastająca wykładniczo) mają się utrzymać, to stosunek rozpraszanej mocy do powierzchni rozpraszającej tę moc całkiem niedługo przekroczy wartość charakterystyczną dla reaktora jądrowego i powierzchni Słońca. Już dzisiaj pojawiają się problemy (Penitum 4 Prescott rozprasza max ~89W mocy)

Przetwarzanie wieloprocesorowe Klasyfikacja systemów: Luźno powiązane systemy wieloprocesorowe - każdy komputer ma własną pamięć główną i kanały we-wy (system wielokomputerowy) Zespoły procesorów wyspecjalizowanych funkcjonalnie - sterowane przez jeden procesor główny Silnie powiązane systemy wieloprocesorowe zbiór procesorów o wspólnej pamięci głównej. Działa pod kontrolą zintegrowanego systemu operacyjnego. Systemy z przetwarzaniem równoległym równoległa praca nad jednym zagadnieniem

Przetwarzanie wieloprocesorowe Układy procesorów ze wspólną pamięcią - shared memory multiprocessor (SMM) Systemy wielokomputerowe z rozproszoną pamięcią - distributed memory multicomputer (DMM)

Przetwarzanie wieloprocesorowe M moduł pamięci C - procesor Systemy ze wspólna pamięcią: dowolny procesor ma dostęp do dowolnego modułu pamięci poprzez sieć połączeń. Konflikty przy dostępie do pamięci sprawiają, że wydajność takiego rozwiązania jest ograniczona. System z przesyłaniem komunikatów: N niezależnych procesorów, z których każdy wykonuje własny program. Procesory koordynują pracę wymieniając komunikaty przez sieć połączeń. System komputerów połączonych przez internet: wymiana informacji przez internet

Układy procesorów ze wspólną pamięcią - shared memory multiprocessor (SMM) Quad Pentium Shared Memory Multiprocessor Processor L1 cache Processor L1 cache Processor L1 cache Processor L1 cache L2 cache L2 cache L2 cache L2 cache Bus interface Bus interface Bus interface Bus interface Processor/ memory bus I/O interface Memory controller I/O bus Wspólna pamięć Memory

Układy procesorów ze wspólną pamięcią - Quad shared Pentium memory Shared multiprocessor Memory Multiprocessor (SMM) Każdy procesor ma swój system operacyjny Pamięć na stałe podzielona na partycje, każdy procesor ma jedną na wyłączność Jeśli użytkownik zaloguje się na CPU1 to wszystkie jego procesy wykonują się na CPU1, inne procesory w tym czasie mogą być nieobciążone Jeśli procesowi brakuje pamięci, to nie może użyć innej partycji

Układy procesorów ze wspólną pamięcią - Quad shared Pentium memory Shared multiprocessor Memory Multiprocessor (SMM) Model master-slave: wydzielony procesor wykonuje kod jądra systemu, może też wykonywać procesy użytkownika pozostałe procesory wykonują wyłącznie procesy użytkowników

Układy procesorów ze wspólną pamięcią - Quad shared Pentium memory Shared multiprocessor Memory Multiprocessor (SMM) Model SMP (Symmetric MultiProcessor): każdy procesor może wykonywać procesy użytkownika. Gdy proces wywoła kod jądra, ten sam procesor wykonuje kod jądra. taki układ wymaga poprawnej synchronizacji w obrębie jądra

Architektura przełączana Crossbar Switch (przełącznica/wybierak krzyżakowy Zaleta: -Szybki, jednoczesny dostęp wielu procesorów do różnych bloków pamięci Wady: - wolny dostęp w przypadku odwoływania się wielu procesorów do tego samego bloku pamięci - dla N procesorów i N bloków pamięci potrzeba aż NxN przełączników

Architektura przełączana Omega network Zaleta: -dla N procesorów i N bloków pamięci potrzeba jedynie (N/2)log 2 N przełączników Wady: - wolny dostęp w przypadku odwoływania się wielu procesorów do tego samego bloku pamięci - czas przełączania jest funkcją N - dla dużych N mogą wystąpić istotne opóźnienia

Architektura przełączana Systemy z pamięcią wieloportową Przeniesienie w przełącznicy krzyżowej układów logicznych, odpowiedzialnych za obsługę transmisji i zgłoszeń dostępu, z punktów krzyżowych do wnętrza modułów pamięci, prowadzi do organizacji zwanej pamięcią wieloportową (wielobramową, wielowejściową, ang. multiport memory). Charakterystyczne cechy tego rozwiązania to: - duża liczba przewodów, - kosztowna pamięć, - ograniczenie konfiguracji i maksymalnej przepustowości systemu przez liczbę portów do modułu pamięci. Pamięci wieloportowe stosuje się praktycznie wyłącznie w bardzo dużych komputerach, w których duży koszt tego rozwiązania jest równoważony dużą mocą obliczeniową.

Pamięć podręczna a systemy wieloprocesorowe

Pamięć podręczna a systemy wieloprocesorowe Problemy pojawiają się przy zapisie danych. Zakładamy, że odpowiedni wiersz jest już w pamięci podręcznej. Mamy do wyboru dwie strategie: write-through zapisuj jednocześnie do pamięci podręcznej i głównej write-back - zapisz do pamięci podręcznej, odkładając zapis do pamięci głównej na później

Pamięć podręczna a systemy wieloprocesorowe Zastosowanie pamięci podręcznej typu write-back komplikuje architekturę systemu i utrudnia utrzymanie spójności danych. Przykład: procesor A zapisuje dane na razie do swojej pamięci podręcznej. Procesor B pobiera do swojej pamięci podręcznej poprzednią kopię danych. System może znaleźć się w stanie niespójnym. Ten problem został rozwiązany w wieloprocesorowych systemach firmy INTEL na poziomie sprzętu.

Utrzymanie spójności pamięci podręcznych Każdy procesor śledzi magistralę i akcje podejmowane przez inne procesory (bus snooping) Próba zapisu do współdzielonego wiersza powoduje wysłanie innym procesorom sygnału w celu unieważnienia tego wiersza w ich pamięciach podręcznych Gdy procesor B usiłuje wczytać wiersz zmodyfikowany przez procesor A (nie zapisany jeszcze w pamięci głównej), to A przejmuje kontrolę nad magistralą i przesyła poprawne dane W programach należy unikać niepotrzebnego współdzielenia związanego częstymi zapisami danych

Systemy wielokomputerowe z rozproszoną pamięcią - distributed memory multicomputer (DMM) Distributed Memory Multicomputer Interconnection network Messages Processor Local memory Computers

Klaster komputerowy Grupa połączonych jednostek komputerowych, które współpracują ze sobą w celu udostępnienia zintegrowanego środowiska pracy. Komputery wchodzące w skład klastra nazywamy węzłami. Jedną z najbardziej popularnych implementacji klastrów obliczeniowych jest klaster typu Beowul gdzie rolę węzłów pełnią wydajne komputery klasy PC, pracujące pod kontrolą GNU/Linuksa oraz z zainstalowanym oprogramowaniem pozwalającym uzyskać przetwarzanie równoległe np. bibliotekami MPI, PVM.

Klaster komputerowy W istniejących rozwiązaniach klastrowych można wyodrębnić trzy podstawowe klasy wynikające z celów budowy takich rozwiązań: klastry wydajnościowe: pracujące jako zespół komputerów, z których każdy wykonuje własne zadania obliczeniowe. Celem ich budowy jest powiększenie mocy obliczeniowej, w sytuacji kiedy różne komputery w klastrze pracują nad odrębnymi podzadaniami pojedynczego dużego zadania obliczeniowego. Wiele obecnych superkomputerów działa na tej zasadzie. klastry niezawodnościowe: pracujące jako zespół komputerów dublujących nawzajem swoje funkcje (łączenie równoległe). W razie awarii jednego z węzłów, następuje automatyczne przejęcie jego funkcji przez inne węzły. klastry równoważenia obciążenia: pracujące jako zespół komputerów, z których każdy wykonuje własne zadanie z puli zadań skierowanych do całego klastra. Klastry równoważenia obciążenia mogą być traktowane jako pierwowzór, a obecnie także jako częsty element składowy, systemów gridowych

Grid Grid niekiedy mylnie nazywany jest siatką komputerową a poprawnie jest to przetwarzanie sieciowe system, który integruje i zarządza zasobami będącymi pod kontrolą różnych domen (od instytucji po system operacyjny) i połączonych siecią komputerową. Celem technologii gridowej jest stworzenie prostego, lecz mimo to wielkiego i potężnego, wirtualnego komputera z ogromnej ilości połączonych, niejednorodnych systemów współdzielących różnego rodzaju zasoby. "grid computing" oznacza przetwarzanie danych traktowane jako usługa użyteczności publicznej. Inaczej mówiąc, dla klienta nie jest ważne, gdzie są przechowywane jego dane ani który komputer wykonuje zlecenie. Natomiast koncepcja grid computing widziana od strony usługodawcy oznacza alokację zasobów, współużytkowanie informacji oraz konieczność zapewnienia wysokiej dostępności. Pojęcia tego jako pierwszy użył Ian Foster, profesor na Uniwersytecie w Chicago, pracujący w ANL (Argonne National Laboratory). Idea ta ciągle ewoluuje, znajdowane są nowe obszary jej potencjalnego zastosowania.

Grid Computing Workstation Supercomputer Minicomputer High-speed Information high way Cluster Supercomputer Cluster Workstation Workstation