Porównaj CISC, RISC, EPIC.

Podobne dokumenty
Architektura mikroprocesorów TEO 2009/2010

16. Taksonomia Flynn'a.

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 Informatyki Systemy sterowane przepływem argumentów

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

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

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

Budowa komputera Komputer computer computare

Nowoczesne technologie przetwarzania informacji

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

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

Programowanie współbieżne i rozproszone

Architektura Komputerów

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

dr inż. Jarosław Forenc

3.Przeglądarchitektur

3.Przeglądarchitektur

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

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

Architektura komputerów

Architektura komputerów

System mikroprocesorowy i peryferia. Dariusz Chaberski

Wydajność obliczeń a architektura procesorów. Krzysztof Banaś Obliczenia Wysokiej Wydajności 1

dr inż. Jarosław Forenc

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

Projektowanie. Projektowanie mikroprocesorów

Wprowadzenie. Klastry komputerowe. Superkomputery. informatyka +

Bibliografia: pl.wikipedia.org Historia i rodzaje procesorów w firmy Intel

PODSTAWY PRZETWARZANIA RÓWNOLEGŁEGO INFORMACJI

Systemy operacyjne i sieci komputerowe Szymon Wilk Superkomputery 1

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

Technologie Informacyjne Wykład 3

Zegar - układ wysyłający regularne impulsy o stałej szerokości (J) i częstotliwości (f)

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

Obliczenia Wysokiej Wydajności

Systemy wieloprocesorowe i wielokomputerowe

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

Oprogramowanie komputerów wer. 9

Budowa Mikrokomputera

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

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

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

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

Architektura komputerów

Introduction to Computer Science

Architektura potokowa RISC

Architektura systemów komputerowych. dr Artur Bartoszewski

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

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

Architektura mikroprocesorów z rdzeniem ColdFire

Spis treści. I. Skuteczne. Od autora... Obliczenia inżynierskie i naukowe... Ostrzeżenia...XVII

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

Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska

Architektura von Neumanna

Budowa systemów komputerowych

Wydajność systemów a organizacja pamięci. Krzysztof Banaś, Obliczenia wysokiej wydajności. 1

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

Wykład 7. Architektura mikroprocesorów powtórka

1. ARCHITEKTURY SYSTEMÓW KOMPUTEROWYCH

Metody optymalizacji soft-procesorów NIOS

Algorytmy dla maszyny PRAM

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

SYSTEMY OPERACYJNE WYKŁAD 1 INTEGRACJA ZE SPRZĘTEM

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

SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE

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

Przetwarzanie potokowe pipelining

LEKCJA TEMAT: Zasada działania komputera.

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

Architektura Systemów Komputerowych 2

Oprogramowanie komputerów

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

Technologie informacyjne (2) Zdzisław Szyjewski

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

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

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

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

Architektura komputera. Dane i rozkazy przechowywane są w tej samej pamięci umożliwiającej zapis i odczyt

WYKŁAD. Jednostka prowadząca: Wydział Techniczny. Kierunek studiów: Elektronika i telekomunikacja

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

Jednostka centralna. dr hab. inż. Krzysztof Patan, prof. PWSZ

Numeryczna algebra liniowa

POLITECHNIKA WARSZAWSKA Wydział Elektroniki i Technik Informacyjnych. Instytut Telekomunikacji Zakład Podstaw Telekomunikacji

Wydajność systemów a organizacja pamięci. Krzysztof Banaś, Obliczenia wysokiej wydajności. 1

Moc płynąca z kart graficznych

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

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

Algorytmy i Struktury Danych

Język programowania: Lista instrukcji (IL Instruction List)

Modernizacja zestawu komputerowego. Marek Pudełko Urządzenia Techniki Komputerowej

Równoległość i współbieżność

Równoległość i współbieżność

dr inż. Jarosław Forenc

Obliczenia równoległe na klastrze opartym na procesorze CELL/B.E.

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

Wydajność programów sekwencyjnych. Krzysztof Banaś Obliczenia Wysokiej Wydajności 1

Wykład 2. Mikrokontrolery z rdzeniami ARM

Architektura systemów komputerowych

Technologie informacyjne wykład 2 wer. 1.2

Transkrypt:

Porównaj CISC, RISC, EPIC. CISC Complex Instruction Set duża liczba rozkazów (instrukcji) mała optymalizacja niektóre rozkazy potrzebują dużej liczby cykli procesora do wykonania występowanie złożonych, specjalistycznych rozkazów duża liczba trybów adresowania do pamięci może się odwoływać bezpośrednio duża liczba rozkazów mniejsza od procesorów RISC częstotliwość taktowania procesora powolne działanie dekodera rozkazów Procesory rodziny CISC AMD x86 M68000 Zredukowana liczba rozkazów do niezbędnego minimum upraszcza to znacznie konstrukcję procesora. Redukcja trybów adresowania większość operacji wykonuje się wg schematu: rejestrc = rejestra operacja rejestrb. Ograniczenie komunikacji pomiędzy pamięcią a procesorem. Do przesyłania danych pomiędzy pamięcią a rejestrami służą instrukcje Load (załaduj z pamięci) oraz store (zapisz do pamięci); pozostałe instrukcje operują wyłącznie na rejestrach. Schemat działania załaduj daną z pamięci do rejestru, na zawartości rejestru wykonaj działanie, przepisz wynik z rejestru do pamięci. Zwiększenie liczby rejestrów (np. 32, 192, 256, x86 jest 8), co również ma wpływ na zmniejszenie liczby odwołań do pamięci Podejście RISC wprowadzono na początku lat 80tych XX wieku (projekt IBM 801, architektury MIPS i Berkeley RISC). Ważniejsze współczesne architektury RISC: MIPS SPARC ARM

EPIC Czysta architektura CISC oraz RISC posiada swoje wady, dlatego obecnie wykorzystuje się technologię ich łączenia: Procesory Intela z punktu widzenia programisty widziane są jako CISC, ale ich rdzeń jest RISC owy Rozkazy CISC są rozbijane na mikrorozkazy, które są następnie wykonywane przez RISC owy blok wykonawczy grupowanie instrukcji i oznaczanie ich wzajemnych relacji już na etapie kompilacji programu. Instrukcje są zamknięte w tzw. paczkach (po trzy instrukcje), które są ładowane do procesora równocześnie, w jednym takcie zegara. Dodatkowo część poleceń wykonywana jest równolegle Wypada jeszcze wiedziec, ze istnieje jeszcze cos takiego jak VLIW Very Long Instruction Word),a wywodzi się od RISCa Podaj sposoby organizacji pamięci dla maszyn wieloprocesorowych. Kuzwa no nie wiem, nie moge znalezc. Opisz benchmark Linpack. Linpack został zaprojektowany w latach 70. i na początku lat 80. jako zestaw procedur języka Fortran, które analizują i rozwiązują równania liniowe oraz liniowe problemy o złożoności przynajmniej kwadratowej. Ponadto w pakiecie zaimplementowano rozwiązywanie układów równań w postaci różnych macierzy (m.in. trójkątnych, o nieokreślonej symetrii). Sam Linpack został oparty na innym pakiecie (BLAS poziom 1), który zawiera podstawowe operacje na wektorach. Obecnie Linpack jest wypierany przez Lapack, który został zaprojektowany tak by wydajniej pracować w systemach z pamięcią współdzieloną. 3.2 Ogólny opis benchmarku Linpack Benchmark został wprowadzony przez Jack a Dongarra w 1979 roku. Początkowym przeznaczeniem była pomoc użytkownikom w oszacowaniu czasu niezbędnego do wykonania obliczeń. Ten zestaw testów wydajności polega na obliczeniu rzadkiego układu równań, czyli takiego, który po zapisaniu w postaci macierzy będzie posiadał wiele zer. Możliwe jest modyfikowanie rozmiaru macierzy oraz kompilacja benchmarku w sposób zoptymalizowany pod daną architekturę systemu. Proces optymalizacji nie wpływa na całościową wydajność systemu, z wyłączeniem systemów dedykowanych do rozwiązywania tego typu układów równań. Jeśli problem jest regularny uzyskana wydajność jest bardzo wysoka, i otrzymany wynik daje dobre przybliżenie maksymalnej wydajności. Mierząc wydajność dla problemów o różnym rozmiarze n (rozmiar używanej macierzy) otrzymuje się wyłącznie maksymalną wydajność dla problemu o rozmiarze n oraz dla problemu o rozmiarz 1/2 n, gdzie bierze się pod uwagę połowę otrzymanej maksymalnej wydajności. W raportach z testów podaje się maksymalną teoretyczną wydajność, maksymalną rzeczywistą wydajność dla problemu o rozmiarze n i dla problemu o rozmiarze 1/2 n. Wszystkie algorytmy wykonują operacje na licznach zmiennoprzecinkowych podwójnej precyzji. Takie wymogi wykluczają możliwość stosowania bardzo szybkich algorytmów mnożenia macie-

rzy, metod działający z precyzją mniejszą niż maksymalna możliwa (zakłada się 64-bitową arytemtykę) oraz stosowanie przybliżeń. Benchmark jest złożony z 3 testów opisanych poniżej. Linpack Fortran n = 100 benchmark. W przypadku n = 100 stosuje się program napisany w Fortranie, który znajduje się pod adresem http://www.netlib.org/benchmark/linpackd. Rozmiar macierzy 100 x 100 może wydawać się dzisiaj śmieszny, natomiast w momencie powstawania benchmarku wartość ta była podyktowana rozmiarem dostępnej pamięci (np. superkomputer Cray-1 posiadał 8 MB). Aby wynik był wiarygodny nie można stosować żadnych zmian w kodzie. Jedyną dozwoloną formą wpływania na wydajność jest optymalizacja kompilacji. Sam benchmark Linpack dla n=100 opiera się na dwóch procedurach: DGEFA i DGESL. Pierwsza procedura odpowiada za algorytm dekompozycji LU z częściowym obrotem macierzy, natomiast druga używa otrzymanych wyników do rozwiązania układów równań liniowych. Linpack n = 1000 benchmark. W przypadku n = 1000 możliwości zasady pomiaru wydajności są dużo mniej restrykcyjne. Można stosować dowolne algorytmy napisane w dowolnym języku. Wymogiem dla metody jest wyliczenie rozwiązania i zwrócenie go z zadaną dokładnością. Sterownik niezbędny do uruchomienia benchmarku, napisany w Fortranie znajduje się pod adresem http://www.netlib.org/benchmark/1000d. //praca jakis leszczy z aghu Omów MIMD, SIMD, SISD. SISD (single instrucion single data[dejtau]:d) -jeden wykonywalny program, przetwarza jeden strumien danych -maszyny sekwencyjne budowane w oparciu o architektur von neumana -ciag instrukcji, jest wykonywany sekwencyjne(program), który zawieraja się w jednym procesorze i jednym bloku pamieci operacyjnej -mozna odpalac na nich niektore elementy rownoleglosci (np., przetwarzanie potokowe) SIMD(single instrucion multiple data) SIMD SM SIMD DM SIMD SM-SIMD: Są to komputery wektorowe jeden procesor operuje na tablicy z danymi glownym skladnikiem jest procesor wektorowy, który rownolegle wykonuje ciagi tych samych operacji gdy komputer zaczyna wykonywac jakis rozkaz, kazdy procesor uczestniczacy pobiera dane, a po skonczeniu przetwarzanaia(rozkazu), wysyla wyniki do TEJ SAMEJ globalne pamieci Przykłady komputerow: Cray 1 (1976) CDC Cyber 205 (1981) Hitachi S3600 (1994) DM-SIMD: są to tablice procesorow takie cusik, składa się z jednego procesora glownego(mozgu),sterujacego, oraz szeregu prostych procesorkow, kazdy wyposazony w swoja lokalna pamiec procesory polaczone są bezposrednio tylko ze swoimi sunsiadami tak jak wyzej, kazdy procesor wykonuje te same instrukcje, na tych samych danych na

swojej pamieci lokalnej(wszystkie rozkazy wydawane przez proc sterujacy) wymiana danych nastepuje pomiedzy sosiadaujacymi procesorami(left, right,up, down[oraz back, front dla 3D]); rozwiazanie stosowane w latach 70 do początku lat 80 pomiedzy nimi jest jeszcze MISD,ale nie wymieniony w pytaniu MIMD Multiple Instruction, MultipleData Równolegle wykonywanych jest wiele programów, z których każdy przetwarza własne strumienie danych Najbardziej popularna grupa systemów rownoległych MIMD SM MIMD DM SIMD SM MIMD (Shared Memory MIMD) SMP, wieloprocesory DM SIMD (Distributed Memory SIMD) MPP, wielokomputery, klastry, gridy Opisz benchmark SPEC. Nazwa SPEC pochodzi od nazwy organizacji The Standard Performance Evaluation Corporation, która zajmuje się tworzenie, rozwojem, akceptacją i standardyzacją zestawów benchamarków, które mogą być wykorzystywane w wysoko wydajnych komputerach i serwerach najnowszej generacji. Benchmarki są pisane w językach niezależnych od stosowanej platformy (naczęściej C i Fortran). Organizacja SPEC powstała w 1988 roku. Składa się z najważniejszych producentów sprzętu i oprogramowania na rynku. Benchmark SPEC składa się z części mierzących wydajność w następujących kategoriach: 1. CPU 2. Grafika/Aplikacje graficzne 3. MPI/OPM 4. Java Klient/Serwer 5. Serwery poczty 6. Sieciowe systemy plików 7. Zasilanie 8. SIP 9. Wirtualizacja 10. Serwery stron www Taksonomia Flynn'a. Taksonomia Flynna (angielskie Flynn's taxonomy), schemat klasyfikacji systemów komputerowych zaproponowany przez M. J. Flynna w 1972, stosowany do dzisiaj, choć już niewystarczający.

Stosownie do liczby strumieni instrukcji i danych taksonomia Flynna wyróżnia następujące klasy komputerów: 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) komputery wektorowe DM SIMD (Distributed Memory pamięć lokalna) 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ą DM MIMD maszyny z pamięcią lokalną Reguła Amdahl'a. Nie ma czegoś takiego jak regula na googlu, to wklejam prawo: Prawo Amdahla to sformułowana przez Gene'a Amdahla zależność mówiąca, że jeśli część procesu zajmująca aktualnie czasu zostanie przyspieszona n-krotnie, to cały proces zostanie przyspieszony jedynie razy. Oznacza to, że nawet jeśli uda się bardzo mocno przyspieszyć jakąś część procesu, to ta część, której przyspieszyć się nie uda, stanie się dominującym składnikiem całkowitego czasu (to samo można powiedzieć o koszcie, pojemności dysku optycznego, transferze sieciowym itd.). Na przykład jeśli 10% czasu procesora zajmuje dostęp do pamięci, a 90% zajmują operacje arytmetyczne i operacje te przyspieszone zostaną 10-krotnie (przy niezmienionym czasie dostępu do pamięci), to po tej zmianie procesor będzie operował tylko szybciej. Jeśli przyspieszy się je nawet 100-krotnie, wzrost wydajności będzie wynosił razy tylko razy, pomimo że prawie wyeliminowany został czas przedtem dominującego składnika czasu operacji matematycznych. Nowym dominującym składnikiem stał się bowiem czas dostępu do pamięci.