Wydajność obliczeń a architektura procesorów



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

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

Architektura mikroprocesorów TEO 2009/2010

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

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

Architektura potokowa RISC

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

Architektura komputerów

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

Architektura komputerów

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

ARCHITEKTURA PROCESORA,

Budowa komputera Komputer computer computare

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

Architektura komputerów

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

Budowa Mikrokomputera

Architektura systemów komputerowych

Architektura systemów komputerowych. dr Artur Bartoszewski

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.

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]

Struktura i działanie jednostki centralnej

Przetwarzanie potokowe pipelining

Projektowanie. Projektowanie mikroprocesorów

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

Witold Komorowski: RISC. Witold Komorowski, dr inż.

Architektura komputerów

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

Architektura komputerów

Podstawy Techniki Mikroprocesorowej

MIKROKONTROLERY I MIKROPROCESORY

PRZEWODNIK PO PRZEDMIOCIE

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

Mikroprocesory rodziny INTEL 80x86

Architektura komputerów, Informatyka, sem.iii. Rozwiązywanie konfliktów danych i sterowania w architekturze potokowej

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

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

Organizacja typowego mikroprocesora

Procesory. Schemat budowy procesora

Architektura komputerów

Zrównoleglenie i przetwarzanie potokowe

XXXII Olimpiada Wiedzy Elektrycznej i Elektronicznej. XXXII Olimpiada Wiedzy Elektrycznej i Elektronicznej

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

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

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

Wprowadzenie. Dariusz Wawrzyniak. Miejsce, rola i zadania systemu operacyjnego w oprogramowaniu komputera

Architektura typu Single-Cycle

Architektura von Neumanna. Jak zbudowany jest współczesny komputer? Schemat architektury typowego PC-ta. Architektura PC wersja techniczna

Wprowadzenie. Dariusz Wawrzyniak. Miejsce, rola i zadania systemu operacyjnego w oprogramowaniu komputera

Systemy operacyjne. Wprowadzenie. Wykład prowadzą: Jerzy Brzeziński Dariusz Wawrzyniak

ARCHITEKTURA SYSTEMÓW KOMPUTEROWYCH. Klasyczny cykl pracy procesora sekwencyjnego. współczesne architektury. c Dr inż.

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

Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska

Architektura komputerów

Układ wykonawczy, instrukcje i adresowanie. Dariusz Chaberski

Procesory firmy ARM i MIPS

Architektura Systemów Komputerowych

Przygotowanie kilku wersji kodu zgodnie z wymogami wersji zadania,

Architektura komputerów II - opis przedmiotu

LEKCJA TEMAT: Zasada działania komputera.

Budowa i zasada działania komputera. dr Artur Bartoszewski

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

Architektura komputerów

Architektura komputerów

Systemy operacyjne. wykład dr Marcin Czarnota laboratorium mgr Radosław Maj

LEKCJA TEMAT: Współczesne procesory.

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

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

architektura komputerów w. 4 Realizacja sterowania

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

UKŁADY MIKROPROGRAMOWALNE

Architektura komputerów wer. 3

Systemy operacyjne III

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

Uniwersytet w Białymstoku Wydział Ekonomiczno-Informatyczny w Wilnie SYLLABUS na rok akademicki 2010/2011

Architektura mikroprocesorów z rdzeniem ColdFire

Architektura systemów informatycznych

Architektura komputerów

Budowa systemów komputerowych

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

Energooszczędne programowanie

Technologie Informacyjne Wykład 3

Procesy i wątki. Krzysztof Banaś Obliczenia równoległe 1

Architektura systemów komputerowych. Przetwarzanie potokowe I

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

Architektura Systemów Komputerowych

Podstawy programowania. Wykład Funkcje. Krzysztof Banaś Podstawy programowania 1

Spis treœci. Co to jest mikrokontroler? Kody i liczby stosowane w systemach komputerowych. Podstawowe elementy logiczne

Architektura komputerów wer. 7

Architektura komputerów

Przykładowe pytania DSP 1

Podstawy Informatyki Systemy sterowane przepływem argumentów

Mikroprocesor Operacje wejścia / wyjścia

Architektura komputera

Kurs Zaawansowany S7. Spis treści. Dzień 1

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

Architektura systemów komputerowych. dr Artur Bartoszewski

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

4 Literatura. c Dr inż. Ignacy Pardyka (Inf.UJK) ASK SP.02 Rok akad. 2011/ / 35

Transkrypt:

Wydajność obliczeń a architektura procesorów 1

Wydajność komputerów Modele wydajności-> szacowanie czasu wykonania zadania Wydajność szybkość realizacji wyznaczonych zadań, np.: liczba rozkazów na sekundę CPI (cycles per instruction) liczba taktów zegara do wykonania rozkazu Próba szacowania czasu: jakie rozkazy procesora wykonywane są w celu realizacji zadania jaki jest czas realizacji każdego z rozkazów (w liczbie taktów CPI dla każdego z rozkazów) jaka jest częstotliwość pracy procesora wymnożyć, wysumować - gotowe 2

Wydajność komputerów Podstawowe parametry sprzętu: Częstotliwość zegara Drożność procesora (IPC jako odwrotność CPI) Przepustowość magistrali pamięć-procesor Problem - dlaczego parametry podstawowych elementów systemu komputerowego nie pozwalają na oszacowanie jego wydajności przy realizacji praktycznych zadań? złożoność architektury procesora złożoność układu pamięci współpraca sprzętu, systemu operacyjnego i kompilatorów, interpreterów, maszyn wirtualnych 3

Architektura von Neumanna 4

Prawo Moore'a (1965!) 5

Przetwarzanie potokowe ilustracja przetwarzania potokowego - przyrost szybkości działania: analiza zgrubna założenie tego samego czasu na przetwarzanie rozkazu: wprowadzenie k-etapowego potoku zwiększa wydajność k-krotnie (dla odpowiednio długiej sekwencji rozkazów) analiza praktyczna podawane przez producentów sprzętu: maksymalna liczba rozkazów kończonych w każdym takcie zegara (ewentualnie mniejsza niż jeden) IPCmax częstotliwość zegara taktującego procesor procesory o rozbudowanych potokach mogą kończyć jeden rozkaz w każdym takcie i mieć znacznie szybsze taktowanie teoretycznie maksymalna wydajność procesora to iloczyn: drożność procesora (IPCmax) x częstotliwość taktowania 6

Realizacja sprzętowa 7

Przetwarzanie potokowe - AK problemy przetwarzania potokowego: hazardy: sytuacje zaburzające idealne przetwarzanie potokowe (w innych kontekstach na sytuacje zaburzające przetwarzanie równoległe używa się nazw konflikty, zależności) hazardy zasobów przetwarzanie dwóch rozkazów wymaga dostępu do pojedynczego zasobu w tym samym czasie hazardy sterowania związane z rozkazami skoku hazardy danych związane z zależnościami między argumentami jednocześnie przetwarzanych rozkazów (techniki optymalizacji: przemianowanie rejestrów, przesyłanie (forwarding) argumentów) 8

Hazardy sterowania - AK Statystyka: skoki stanowią ponad 20% rozkazów Skoki bezwarunkowe: unikanie przestojów przez pobieranie z wyprzedzeniem Skoki warunkowe szczelina opóźnienia rozkazu (branch delay slot) przewidywanie rezultatu rozgałęzienia: skok nigdy nie wykonany skok zawsze wykonany statyczne przewidywanie (np. na podstawie kierunku skoku) dynamiczne przewidywanie (na podstawie historii skoków) 9

Przykład PowerXCell 10

Przykład Dobry kod 007681 0D 123456 fma $118,$124,$67,$118 007681 1D 123456 lqd $79,160($53) 007682 0D 234567 fma $120,$124,$65,$120 007682 1D 234567 lqd $123,176($53) 007683 0D 345678 fma $67,$124,$67,$68 007683 1D 345678 lqd $121,192($53) 007684 0D 456789 fma $68,$124,$69,$70 007684 1D 456789 lqd $119,208($53) 007685 0D 567890 fma $65,$124,$65,$66 007685 1D 567890 lqd $117,224($53) 007686 0D 678901 fma $69,$124,$69,$72 007686 1D 678901 lqd $66,240($53) 11

Przykład Zły kod 005616 1 005622 0 678901 $54,5568($1) rotmi $42,$54,-31 a $42,$54,$42 rotmai $52,$42,-1 cgti $42,$52,0 brz $42,.LC 88 brz $27,.LC 88 a $54,$127,$7 -----2345 lqd 005626 0 ---67 005628 0-8901 005632 0 ---23 005634 1-4567 005635 1 5678 005636 0D 67 006244 0 ----456789 dfm $115,$115,$113 006257 0 -------7890123456789 dfm $115,$115,$44 fscrrd $114 selb $113,$114,$45,$46 006264 0 006277 0 ------4567890123456 ------------78 12

Procesory współczesne - AK Wzrost złożoności układów mikroprocesorowych pozwala poszerzyć ich funkcjonalność i przyspieszyć działanie Uzyskuje się to poprzez między innymi: wprowadzenie wielu jednostek funkcjonalnych realizujących ten sam etap przetwarzania potokowego - superskalarność zwiększenie liczby etapów potoku superpotokowość użycie układów przewidywania rozgałęzień pobieranie rozkazów z wyprzedzeniem (prefetching) realizowanie operacji w zmienionej kolejności (out-of-order execution, pula kilkudziesięciu rozkazów przetwarzanych współbieżnie) dodanie nowych rozkazów (np. wektorowych=simd) sprzętowe wsparcie wielowątkowości 13

14

Architektura procesora/rdzenia Elementy architektury mające wpływ na wydajność: superpotokowość co ile taktów potok jest w stanie kończyć kolejny rozkaz (przeciętnie) superskalarność ile rozkazów procesor jest w stanie kończyć w jednym takcie wykonywanie poza kolejnością w jaki sposób procesor może zmieniać kolejność wykonywania rozkazów, w celu zwiększenia wydajności przetwarzania przewidywanie rozgałęzień na ile występowanie rozkazów skoku w programie (instrukcje warunkowe, a zwłaszcza pętle) spowalnia przetwarzanie potokowe pobieranie z wyprzedzeniem jak wiele czasu zajmie oczekiwanie na dane dla rozkazu 15

Profile wykonania Do badania przebiegu wykonania programu służą programy tworzące profile wykonania (profilers) Dzielą się m.in. ze względu na sposób przeprowadzania pomiaru zbierające dane w trakcie standardowego wykonania oparte na wykonaniu w ramach symulatorów środowiska wykonania Programy zbierające dane mogą wykorzystywać przerwania (czasowe lub związane ze zdarzeniami) albo instrumentację kodu Profilery mogą wykorzystywać dane zbierane w licznikach sprzętowych (hardware counters) 16

Liczniki sprzętowe Współczesne procesory udostępniają interfejs do zbierania danych dotyczących rozmaitych zdarzeń związanych z wykonaniem kodu Typowymi zdarzeniami są liczba taktów zegara przypadających na wykonanie programu liczba wykonanych operacji liczba błędnie przewidzianych rozgałęzień liczba dostępów do różnych poziomów pamięci operacyjnej liczba operacji wejścia/wyjścia liczba błędów strony 17

Wydajność komputerów raz jeszcze Próba szacowania: jakie rozkazy procesora wykonywane są w celu realizacji zadania (uwaga: różne kompilatory mogą użyć różnych zestawów rozkazów) jaki jest czas realizacji każdego z rozkazów (w liczbie taktów) (uwaga: czas realizacji rozkazu zależy od tego czy rozkaz był niedawno używany (czy jest rozkodowany, w L1), czy argumenty były niedawno używane (są w L1, L2, L3...), czy rozkazy i dane pobierane są ze strony pamięci o adresie w TLB, jakie inne rozkazy są wykonywane współbieżnie przez procesor (hazardy)) różnice mogą być kilkudziesięciokrotne lub nawet większe (np. w przypadku błędu strony) 18

Wnioski Przydatne wzory: Tw = Lr x tc = Lr x CPIśr x tt = Lr / wydajność wydajność = 1 / tc = IPCśr x częstotliwość_taktowania wydajność wyrażana jest w liczbie rozkazów na jednostkę czasu (np. sekundę lub nanosekundę) czas wykonania w odpowiednich jednostkach czasu (sekundach, nanosekundach) wydajność maksymalna związana z IPCmax może znacząco się różnić od wydajności rzeczywistej związanej z IPCśr, CPIśr i tc IPCmax oblicza się na podstawie budowy i sposobu działania procesora IPCśr, CPIśr i tc dają się obliczyć w praktyce wyłącznie na podstawie pomiarów: tc = Tw / Lr 19

CISC - AK Chęć optymalizacji przetwarzania potokowego doprowadziła do zmiany sposobu projektowania procesorów przejścia od architektur CISC do RISC architektura CISC - klasyczne procesory lat 60-tych i 70-tych XX wieku złożone rozkazy złożone tryby adresowania wiele trybów adresowania różna długość rozkazów i znacząco różny czas wykonania złożone pobieranie z pamięci i rozkodowywanie duża liczba rozkazów (na liście rozkazów procesora) 20

CISC- AK złożony rozkaz: pobierz dwa argumenty z adresów w pamięci wyznaczonych przez złożone tryby adresowania, wykonaj operację, zapisz wynik w miejscu pamięci obliczonym w złożony sposób złożony tryb adresowania: obliczenie adresu na podstawie: adresu podstawowego, jawnie określonego przesunięcia oraz przesunięcia odpowiadającego indeksowi przechowywanemu w odpowiednim rejestrze, który należy pomnożyć przez współczynnik skalowania 21

CISC - AK zalety CISC ułatwienie programowania w asemblerze zmniejszenie liczby rozkazów w skompilowanym kodzie (mniejsze wymagania co do szybkości przesyłania rozkazów i rozmiaru pamięci podręcznej do ich przechowywania) wady CISC utrudnione działanie optymalizujących kompilatorów złożone dekodowanie rozkazów utrudniona realizacja przetwarzania potokowego 22

RISC - AK rewolucja RISC lat 80-tych XX wieku ograniczenie liczby rozkazów procesora (złożone rozkazy zamienione na sekwencje prostych rozkazów) ograniczenie liczby formatów rozkazów rozkazy proste i proste tryby adresowania oddzielenie rozkazów wykonywania operacji od rozkazów pobierania z pamięci i zapisywania load-store architecture zwiększenie liczby rejestrów 23

RISC - AK Zalety RISC: duża szybkość ułatwionego rozkodowywania rozkazów ułatwienie przetwarzania potokowego umożliwienie zwiększenia częstotliwości zegara ułatwienie działania optymalizujących kompilatorów Wady RISC: duża liczba rozkazów w kodzie konieczne szybkie przesyłanie rozkazów z pamięci (motywacja dla rozwoju pamięci podręcznej) 24

Porównanie CISC-RISC - AK Parametry Typowy procesor CISC Typowy procesor RISC liczba rozkazów kilkaset kilkadziesiąt maksymalna długość rozkazu kilkadziesiąt bajtów kilka bajtów liczba formatów rozkazów kilkadziesiąt kilka liczba trybów adresowania kilkadziesiąt kilka adresowanie pośrednie tak nie maksymalna liczba argumentów kilka jeden 25

VLIW EPIC IA64 - AK Wykonywanie poza kolejnością jest sprzeczne z optymalnym stosowaniem kompilatorów po co kompilator ma ustalać optymalny przepływ obliczeń skoro procesor i tak go zmieni Koncepcja: niech kompilator dba o kolejność wykonania i decyduje o równoległości realizacji rozkazów VLIW bardzo długie słowo maszynowe EPIC - kilka rozkazów do równoległego wykonania jawnie kodowanych w jednym długim słowie 26

VLIW EPIC IA64 - AK Przerzucenie wykrywania równoległości i sterowania równoległym wykonaniem na kompilator pozwala zmniejszyć złożoność procesora brak jednostek wykonywania poza kolejnością brak jednostek przemianowania rejestrów Można zwiększyć liczbę rejestrów i jednostek funkcjonalnych oraz (znacznie) rozmiar pamięci podręcznej (do kilkunastu MB) 27

VLIW EPIC IA64 - AK IA-64 architektura Intela oparta na ideach VLIW i EPIC: predykatywne wykonywanie rozgałęzień spekulatywne ładowanie z pamięci Szczegóły techniczne procesorów Itanium: słowo 128 bitów (3x41 rozkazy + 5 szablon) 4 FPU i 6 ALU 2x128 rejestrów trzy poziomy pamięci podręcznej, do 16MB (i więcej) 28

Itanium 2 - AK 29