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



Podobne dokumenty
Budowa Mikrokomputera

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

Budowa i zasada działania komputera. dr Artur Bartoszewski

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

Architektura komputerów

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

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

Architektura systemów komputerowych. dr Artur Bartoszewski

Procesory. Schemat budowy procesora

Architektura mikroprocesorów TEO 2009/2010

Budowa komputera Komputer computer computare

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

Architektura systemów komputerowych

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

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

Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska

Projektowanie. Projektowanie mikroprocesorów

Podstawy Techniki Mikroprocesorowej

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

Technika mikroprocesorowa. Linia rozwojowa procesorów firmy Intel w latach

Systemy operacyjne i sieci komputerowe Szymon Wilk Superkomputery 1

LEKCJA TEMAT: Współczesne procesory.

SYSTEMY OPERACYJNE WYKŁAD 1 INTEGRACJA ZE SPRZĘTEM

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

Architektura potokowa RISC

Architektura komputerów egzamin końcowy

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

Wydajność obliczeń a architektura procesorów

Magistrala systemowa (System Bus)

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

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

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

Architektura mikroprocesorów z rdzeniem ColdFire

Programowanie Niskopoziomowe

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

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.

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

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

Przetwarzanie potokowe pipelining

Organizacja typowego mikroprocesora

architektura komputerów w. 4 Realizacja sterowania

Architektura komputerów

Architektura komputera wg Neumana

Architektury Komputerów. Tomasz Dziubich p.530, konsultacje czwartek i 11-12, dziubich@eti.pg.gda.pl

Architektura komputerów

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

Struktura i działanie jednostki centralnej

Układ wykonawczy, instrukcje i adresowanie. Dariusz Chaberski

16. Taksonomia Flynn'a.

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

Architektura Komputerów

ARCHITEKTURA PROCESORA,

LEKCJA TEMAT: Zasada działania komputera.

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

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

Architektura systemów komputerowych. dr Artur Bartoszewski

Architektura komputera

3.Przeglądarchitektur

Architektura komputerów

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

Architektura komputerów

Procesory firmy ARM i MIPS

3.Przeglądarchitektur

Architektura Systemów Komputerowych

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

MIKROKONTROLERY I MIKROPROCESORY

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

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

Technologie Informacyjne Wykład 3

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

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

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

Wykład 2. Mikrokontrolery z rdzeniami ARM

Architektura Systemów Komputerowych

System obliczeniowy laboratorium oraz. mnożenia macierzy

Podstawy architektury procesorów z równoległością na poziomie instrukcji - równoległość w procesorach superskalarnych

Technologie informacyjne - wykład 2 -

Architektura komputerów wer. 7

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

Mikroprocesory rodziny INTEL 80x86

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

Podstawy architektury systemów z równoległością na poziomie wątków

Mikroprocesor Operacje wejścia / wyjścia

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

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

Technika mikroprocesorowa

Działanie systemu operacyjnego

Ogólna budowa komputera

PRZEWODNIK PO PRZEDMIOCIE

Procesory Blackfin. Część 1

Energooszczędne programowanie

Analizator wydajności AMD CodeAnalyst

Architektura komputerów

Zrównoleglenie i przetwarzanie potokowe

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

Wykład 4. Przegląd mikrokontrolerów 16-bit: - PIC24 - dspic - MSP430

Architektura systemu komputerowego

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

Transkrypt:

Architektura von Neumanna CPU pamięć wejście wyjście Jak zbudowany jest współczesny komputer? magistrala systemowa CPU jednostka centralna (procesor) pamięć obszar przechowywania programu i danych wejście urządzenia wejściowe wyjście urządzenia wyjściowe Wstęp do informatyki i architektury komputerów 2 Wstęp do informatyki i architektury komputerów 3 Schemat architektury typowego PC-ta Architektura PC wersja techniczna Wstęp do informatyki i architektury komputerów 4 Wstęp do informatyki i architektury komputerów 5

CPU jednostka centralna (procesor) przetwarza dane i nadzoruje wykonanie programu podstawowe funkcje pobieranie rozkazów do wykonania dekodowanie rozkazów pobieranie z pamięci potrzebnych danych wykonywanie rozkazów (przetwarzanie danych) zapisywanie wyników (do pamięci) rytm pracy CPU odmierza zegar wykonanie pojedynczej instrukcji może zająć od jednego do kilku(nastu) taktów zegara (typ CPU, rodzaj rozkazu) Wybrane procesory firmy Intel nazwa rok tranzystory mikrony zegar ALU / BUS MIPS 4004 1971 2300 10 0,1 Mhz 4 / 4 b 0,06 8080 1974 6000 6 2 Mhz 8 / 8 b 0,64 8086 1978 29000 3 5 Mhz 16 / 16 b 0,33 8088 1979 29000 3 4,77 Mhz 16 / 8 b 0,33 80286 1982 134000 1,5 6 Mhz 16 / 16 b 1 80386 1985 275000 1,5 16 Mhz 32 / 32 b 5 80486 1989 1200000 1 25 Mhz 32 / 32 b 20 Pentium 1993 3100000 0,8 60 Mhz 32 / 64 b 100 Pentium II 1997 7500000 0,35 233 Mhz 32 / 64 b 300 Pentium III 1999 9500000 0,25 450 Mhz 32 / 64 b 510 Pentium 4 2000 42000000 0,18 1,5 Ghz 32 / 64 b 1700 P4 Prescott 2004 125000000 0,09 3,6 Ghz 32 / 64 b 7000 Wstęp do informatyki i architektury komputerów 6 Wstęp do informatyki i architektury komputerów 7 CPU schemat ideowy CPU przykłady organizacji rejestrów ALU Arithmetic and Logic Unit jednostka arytmetyczno-logiczna (serce procesora wykonuje operacje arytmetyczne i logiczne) Rejestry - Registers pamięć wewnętrzna procesora - przechowuje częściowe wyniki obliczeń i pobrane z pamięci dane IR Instruction Register rejestr instrukcji (do niego ładowane są z pamięci instrukcje/rozkazy) PC - Program Counter licznik rozkazów (wskazuje w pamięci pozycję kolejnego rozkazu do wykonania) Wstęp do informatyki i architektury komputerów 8 Wstęp do informatyki i architektury komputerów 9

Uproszczony program główny CPU Trzy kategorie rozkazów procesora pc := 0; repeat instrukcja := pamiec[pc]; dekoduj (instrukcja); pobierz (argumenty); wykonaj (instrukcja); zapisz (wyniki); until ( instrukcja = STOP ) operacje przesyłania danych operacje arytmetyczno-logiczne operacje sterujące wykonaniem programu Wstęp do informatyki i architektury komputerów 10 Wstęp do informatyki i architektury komputerów 11 Operacje przesyłania danych Operacje arytmetyczno-logiczne załadowanie rejestru (z pamięci) zapisanie zawartości rejestru (do pamięci) kopiowanie danych pomiędzy rejestrami dodawanie, mnożenie, dzielenie... koniunkcja, negacja... przekształcanie adresów przemieszczają dane w obrębie CPU oraz pomiędzy CPU i pamięcią główną wykonują funkcje arytmetyczne i logiczne (obliczeniowe) na swoich argumentach Wstęp do informatyki i architektury komputerów 12 Wstęp do informatyki i architektury komputerów 13

Operacje sterujące Architektury CISC i RISC testy zawartości i porównywanie rejestrów rozgałęzienia i skoki (zmiana wartości PC) obsługa przerwań (sprzętowych i programowych) manipulują licznikiem rozkazów kontrolując kolejność wykonywania instrukcji CISC - Complex Instruction Set Computer rozbudowany język rozkazów procesora rozkazy o różnej długości, wykonujące nieraz złożone operacje rozbudowane i bardzo elastyczne tryby adresowania (dostępu do danych) zwarty i przejrzysty (jak na tak niski poziom abstrakcji) kod programów w języku asemblera spore ułatwienie dla konstruktorów kompilatorów (stosunkowo wysoki poziom języka docelowego) wydłużony cykl projektowy podatność na wystąpienie błędów projektowych Wstęp do informatyki i architektury komputerów 14 Wstęp do informatyki i architektury komputerów 15 Architektury CISC i RISC Architektury CISC i RISC RISC - Reduced Instruction Set Computer prosty i oszczędny język rozkazów procesora rozkazy mają jeden wspólny format (długość) i wykonywane są w pojedynczym cyklu maszynowym niewielka liczba dostępnych trybów adresowania (np. brak adresowania pośredniego ) prosta i przejrzysta struktura wewnętrzna wysoka wydajność przy stosunkowo niewielkim poborze energii mniejsze niż w wypadku CISC prawdopodobieństwo wystąpienia błędów projektowych pracochłonna implementacja kompilatorów (niski poziom języka docelowego) Architektura RISC lepsza niż CISC? trudno o jednoznaczną odpowiedź (choćby ze względu na ciągle rosnące koszty tworzenia oprogramowania) różnice pomiędzy obiema architekturami stopniowo zacierają się (Intel P6, AMD Athlon) wzrost liczby rejestrów ogólnego przeznaczenia i optymalizacja potoku rozkazów Wstęp do informatyki i architektury komputerów 16 Wstęp do informatyki i architektury komputerów 17

Zwiększanie wydajności procesora Zwiększanie wydajności CPU Główna idea: równoległość (na różnych poziomach) równoległe wykonywanie instrukcji (ang. ILP Instruction-level Parallelism) wykonywanie tej samej instrukcji na wielu elementach danych jednocześnie (ang. DLP - Data-level Parallelism) równoległe wykonywanie wątków (ang. TLP Thread-level Parallelism) Wstęp do informatyki i architektury komputerów 18 Wstęp do informatyki i architektury komputerów 19 Zwiększamy wydajność procesora - ILP Zwiększamy wydajność procesora - ILP Równoległe wykonywanie rozkazów ILP: Częstotliwość zegara Przepustowość magistrali pamięci Długość potoku przetwarzanie potokowe (pipelining) - wykonywanie różnych instrukcji może się częściowo nakładać wymyślono wiele technik ( sztuczek ): DDR Memory Controller architektura superskalarna wiele jednostek wykonawczych w pojedynczym CPU zmiana porządku wykonywania (out-of-order execution) oczywiście bez naruszenia logiki programu! wykonanie spekulatywne różne heurystyczne techniki polegające na przewidywaniu czy wykonanie danej operacji będzie potrzebne i wykonywaniu jej zawczasu (value prediction, branch prediction,...) każda w końcu natrafiała na ścianę będącą kombinacją kosztów, ograniczeń fizycznych oraz stopnia komplikacji Potrzebne nowe/inne podjeście Liczba jednostek wykonawczych CPU L1 Instr Cache L1 Data Cache HyperTransport Przepustowość magistrali I/O L2 Cache Wielkość i organizacja pamięci podręcznej Wstęp do informatyki i architektury komputerów 20 Wstęp do informatyki i architektury komputerów 21

Przetwarzanie potokowe (pipelining) Przetwarzanie potokowe (pipelining) Prekursorzy : Motorola 68020, Intel 80486 Problemy przetwarzanie potokowe zmienia zależności czasowe instrukcji np. założenie, że instrukcja poprzedzająca już się wykonała wzrost długości potoku (np. w Pentium IV 31) teoretycznie zwiększa wydajność, ale jednocześnie prowadzi do problemów w sytuacji, gdy np. zawiedzie któraś z metod przewidywania rozgałęzień (rozgałęzienia wymuszają oczyszczenie potoku )... Wstęp do informatyki i architektury komputerów 22 Wstęp do informatyki i architektury komputerów 23 Zwiększamy wydajność procesora - DLP Zwiększamy wydajność procesora - TLP Wektorowe/macierzowe wykonywanie rozkazów ta sama instrukcja wykonywana na całym bloku danych technika potencjalnie bardzo wydajna Problemy stosowalna jedynie do stosunkowo ograniczonej gamy problemów (przetwarzanie sygnałów, obrazu itp.) zmusza do mało naturalnego wektorowego myślenia w programowaniu (nie wszyscy się z tym zdaniem zapewne zgodzą...) Wątek sekwencja (ciąg) instrukcji do wykonania typowy program składa się z pojedynczego ciągu instrukcji, czyli pojedynczego wątku Thread(0): for(i=0; i<3*n; i++){a[i]=b[i]*c[i];} Kilka wątków może wykonywać się jednocześnie Thread(0): for(i=0;i<n;i++){a[i]=b[i]*c[i];} Thread(1): for(i=n;i<2*n;i++){a[i]=b[i]*c[i];} Thread(2): for(i=2*n;i<3*n;i++){a[i]=b[i]*c[i];} Wstęp do informatyki i architektury komputerów 24 Wstęp do informatyki i architektury komputerów 25

Pojedynczy CPU architektura tradycyjna Wątki podział czasu / równoległość W przypadku tradycyjnej architektury CPU różne wątki (niekoniecznie składające się na jeden proces/program) wykonują się naprzemiennie Podział czasu dwa lub więcej wątków wykonuje postęp w obliczeniach naprzemiennie Wątek A Czas Wątek B Wątek A czeka CPU A1 A2 A3 A4 czeka CPU CPU CPU Równoległość dwa lub więcej wątków wykonuje się jednocześnie Wątek B B1 B2 B3 B4 czeka Dwa wątki na pojedynczym CPU czeka Wątek A Wątek B Wstęp do informatyki i architektury komputerów 26 Wstęp do informatyki i architektury komputerów 27 Zwiększamy wydajność procesora - TLP Cel: (bardziej) równoległe wykonywanie wątków Podstawowe techniki SMP: Symmetric Multi-Processing SMT: Simultaneous Multi-Threading (technologia ) CMP: Core Multi-Processing (dwu- i wielordzeniowość) Wstęp do informatyki i architektury komputerów 28 Wstęp do informatyki i architektury komputerów 29

SMP: Symmetric Multi-Processing SMT: Simultaneous Multi-Threading wątki ją na maszynie z wieloma (jednordzeniowymi) CPU wątek może w pełni wykorzystać zasoby CPU od dawna stosowana w rozwiązaniach serwerowych stosunkowo kosztowna Procesor 0 Wątek A A1 A2 A3 A4 Procesor 1 Wątek B B1 B2 B3 B4 Dwa CPU jednordzeniowe dzielimy zasoby fizyczne CPU na kilka rdzeni logicznych SO traktuje rdzenie logiczne jak niezależne procesory rdzenie logiczne to kombinacja dedykowanych i współdzielonych zasobów prawdziwego CPU przykłady: Intel HyperThreading, Sun CoolThreads (UltraSPARC T1), IBM (POWER5) Procesor fizyczny Logical CPU 1 Dedicated SW Regs 0.5 L1 I-cache Execution Units D-Cache, DTLB L2 Cache Logical CPU 0 ITLB Dedicated 0.5 L1 SW Regs I-cache ITLB Wstęp do informatyki i architektury komputerów 30 Wstęp do informatyki i architektury komputerów 31 Technologia Intel HyperThreading SMT: Simultaneous Multi-Threading Wprowadzona w Pentium 4 (fizyczny CPU podzielony na dwa rdzenie logiczne) każdy rdzeń logiczny zawiera własną kopię programowo dostępnych rejestrów oraz połowę pamięci podręcznej L1 rdzenie logiczne dzielą między sobą jednostki wykonawcze (całkowito- i zmiennoprzecinkową), pamięć podręczną L2, oraz inne układy Problemy współdzielenie pamięci podręcznej w ramach rdzeni logicznych może doprowadzić do konfliktów lub nadpisywania jej zawartości (tzw. cache thrashing) współdzielenie jednostek wykonawczych może doprowadzić do nieefektywnego ich wykorzystania (konfliktów dostępu/blokowania dostępu)... Wstęp do informatyki i architektury komputerów 32 Wstęp do informatyki i architektury komputerów 33

CMP: Core Multi-Processing Technologia Intel a wielordzeniowość Fizyczne rdzenie CPU wiele fizycznych rdzeni w pojedynczym CPU Logiczne CPU widoczne w SO Przydział fizycznych zasobów CPU Wydajność Czas Zasób 1 Wątek 2 każdy wątek w pełni wykorzystuje rdzeń Wątek 1 Zasób 2 Zasób 3 Rdzeń 0 Wątek A A1 A2 A3 A4 Wątek W ąt ek 2 przydział wątków do rdzeni jak w SMP Rdzeń 1 Wątek B B1 B2 B3 1 Zasób 1 Zasób 3 B4 (potencjalnie) większa wydajność i niższa cena niż w SMP + Zasób 2 Zasób 1 Wątek 1 Zasób 2 Pojedynczy CPU dwurdzeniowy Zasób 3 + Zasób 1 Wątek 2 Zasób 2 Zasób 3 Wstęp do informatyki i architektury komputerów 34 Wstęp do informatyki i architektury komputerów Różnice architekturalne (Intel AMD) Architektura oparta o Front-Side Bus Dual-Core Dual-Core CPU CPU I/O Hub Architektura oparta o Front-Side Bus Dual-Core AMD Direct Connect Architecture I/O Hub Memory Controller Hub Różnice architekturalne (Intel AMD) AMD Direct Connect Architecture Dual-Core 35 USB PCI Memory Controller Hub I/O Hub Hub I/O USB I/O Hub XMB PCI XMB XMB XMB USB I/O Hub PCI Wstęp do informatyki i architektury komputerów 36 Wstęp do informatyki i architektury komputerów 37

Różnice architekturalne (Intel AMD) Intel architektura Nehalem (Core i7) Situation: Core 1 needs data in Core 3 cache How Does it Get There? Quad-Core Clovertown Core 1 Core 2 Core 3 Core 4 100011 L2 L2 Front-Side Bus Front-Side Bus Memory Controller Native Quad-Core AMD Opteron L3 Core 1 Core 2 Core 3 100011 Core 4 L2 L2 L2 L2 System Request Queue Hyper Transport Memory Controller Northbridge 1. Core 1 sends a request to the memory controller, which probes Core 3 cache 2. Core 3 sends data back to the memory controller, which forwards it to Core 1 This happens at front-side bus frequency Result: Reduced Quad-Core Performance 1. Core 1 probes Core 3 cache, data is copied directly back to Core 1 This happens at processor frequency Result: Improved Quad-Core Performance Wstęp do informatyki i architektury komputerów 38 Wstęp do informatyki i architektury komputerów 39 Nie tylko Intel i AMD... Nie tylko Intel i AMD... Procesor Sun UltraSPARC T1 Architektura serwera Sun Fire T2000 Wstęp do informatyki i architektury komputerów 40 Wstęp do informatyki i architektury komputerów 41