Architektury Komputerów Tomasz Dziubich p.530, konsultacje czwartek. 9-10 i 11-12, dziubich@eti.pg.gda.pl
Urządzenia przetwarzające zwane komputerami - kiedyś EDSAC, University of Cambridge, UK, 1949
i dnia dzisiejszego Sensory Odtwarzacze mp4 Smart phones Kamery, aparaty Urządzenia automatyki Sterowniki samochodowe Set-top boxes Routery Laptop Konsole Serwery Superkomputery
Cztery dekady komputerów Mainframe n:1 Stacjonarne 1:1 Mobilne 1:n Wszechobecne m:n Fundamentals of computer organization and architecture Mostafa Abd-El-Barr, Hesham El-Rewini, Wiley, 2005
Liczba sprzedanych procesorów Sprzedaż w 2010: PMD - 1,8 mld (90% to telefony komórkowe) PC - 350 mln Serwery - 20 mln Wbudowane 19 mld (6,1 mld z procesorem ARM) Computer.Organization.and.Design The.Hardware.Software.Interface, Patterson, Hennessy, 2005
Klasy systemów komputerowych
Straty z tytułu awarii systemu
Porównanie cen komputerów
Wzrost wydajność procesorów Computer Architecture: A Quantitative Approach, Hennessy, Patterson, 2012
[1] Gray, J., Shanoy, P.J., Rules of Thumb in Data Engineering, Proc ICDE200, San Diego, March 1-4 2000. IEEE Press., pp 3-12, http://computer.org/proceedings/icde/0506/05060003abs.htm Reguły doboru architektury - przykłady Amdahl s memory law: a=1: that is the MB/MIPS ratio (called alpha (a)), in a balanced system is 1. Amdahl s IO law: Programs do one I/O per 50,000 instructions [1] Wydajność Intel Core i7 4770K 3.5 124 000 MIPS, dla typowego systemu 25 000-30 000 MB/s (AIDA)) Rozmiar pamięci do rozmiaru dysku ma się jak 1:100 Budżet przeznaczony na dysk jest równy budżetowi przeznaczonemu na pamięć (Seagate Barracuda 4TB, SATA-III, 64MB cache 640 zł Kingston SSDNow KC300 240GB SSD, 2.5", SATA3-580 zł Pamięć DDR3 16GB 1866MHz HyperX Savage (2x8GB, DualDDR, CL9) 760 zł) Współczynnik chybienia w pamięci podręcznej bezpośredniej o rozmiarze N jest zbliżony do tego samego współczynnika w pamięci dwukanałowej asocjacyjnej o rozmiarze N/2 Program wykonuje 10% swoich instrukcji w 90% czasu wykonania programu.
Zasady projektowania architektur komp. Stara zasada: Energia jest tania, tranzystory są drogie Nowa zasada: Power wall Droga energia, tanie tranzystory (w UC zawrzeć możesz więcej urządzeń niż masz dostarczonej mocy) Stara zasada: Wystarczający stopień zwiększenia (IPL) równoległości przetwarzania poprzez kompilatory i innowacje (potokowość, superscalar, predykcje, VLIW, ) Nowa zasada: ILP wall nasycenie przy zapisywaniu wyników przez układy równoległe Stara zasada: ALU wolne, dostęp do pamięci szybki Nowa zasada: Memory wall Pamięć jest wolna, ALU szybkie (200 cykli zegara na dostęp do pamięci, 4 do mnożenia) Stara zasada: wydajność systemów jednoprocesorowych 2X / 1.5 roku Nowa zasada: Power Wall + ILP Wall + Memory Wall = Brick Wall Obecnie przy systemach jednoprocesorowych 2X / 5(?) lat nowe trendy w projektowaniu: architektury wielordzeniowe (2X procesory per chip / ~ 2 lata) Stosowanie większej, uboższych procesorów jest bardziej wydajne (głownie energia)
Wzrost taktowania zegara Computer Architecture: A Quantitative Approach, Hennessy, Patterson, 2012
Czym jest architektura komputera? Aplikacja Warstwa fizyczna Przepaść jest zbyt duża do pokonania w jednym kroku (chociaż istnieją wyjątki) Architektura komputerów jest projektem warstw abstrakcji, dzięki którym mamy możliwość implementowania aplikacji do efektywnego przetwarzania informacji, wykorzystując dostępne technologie. (Computer.Organization.and.Design.The.Hardware.Software.Interface, Patterson, Hennessy, 2005)
Architektura vs organizacja Architektura komputerów odnosi się do tych atrybutów systemu, które są widoczne dla programisty lub, inaczej mówiąc, tych atrybutów, które mają bezpośredni wpływ na logiczne wykonanie programu. Do takich atrybutów można zaliczyć zbiór instrukcji (ISA), liczba bitów użytych do reprezentowania typów danych (liczb, znaków), mechanizmy I/O czy techniki adresowania pamięci. Organizacja komputerów odnosi się do jednostek przetwarzających (tzw. operacyjnych) i ich wzajemnych połączeń, które realizują przyjęte dla architektury specyfikacje. Atrybuty związane z organizacją komputera to szczegóły sprzętowe, przezroczyste dla programisty, takie jak sygnały sterujące, interfejsy między komputerem a peryferiami, technologie wykorzystane w konstrukcji pamięci operacyjnej.
Definicja architektury ISA Klasy ISA (register mem, load store) Adresowanie pamięci (wyrównywanie (byte, align)) Tryby adresowania (reg, imm, disp) Typy i rozmiar operandów Operacje (zbiory instrukcji) Instrukcje sterowania przepływem Kodowanie ISA (fixed, var) Organizacja (system pamięci, połączenia, CPU -> AMD? Intel) niski poziom abstrakcji Sprzęt (aspekt fizyczny Pentium 4? Mobile Pentium 4)
Warstwy abstrakcji w nowoczesnych systemach komputerowych Zakres zainteresowań architektów (1950-80) Aplikacja Algorytm Język programowania System operacyjny/maszyny wirtualne Zbiór instrukcji (ISA) Mikroarchitektura Rejestry Obwody Urządzenia/Tranzystory Warstwa fizyczna Przetwarzanie równoległe, bezpieczeństwo, Zakres zainteresowań lat 1990 Niezawodność, energia Kierunki badań 2000-.
Idea sześciopoziomowej AK Structured Computer Organization,4th ed. Andrew S. Tanenbaum,
Jakie problemy mogą wystąpić? Algorytmy, języki programowania, kompilatory, systemy operacyjne, biblioteki nie są gotowe do wspierania Thread-Level Parallelism czy Data-Level Parallelism przy 1000 CPU / chip, Architektury też nie są gotowe na 1000 CPU/ chip W odróżnieniu od Instruction-Level Parallelism, cele te nie mogą być osiągnięte przez pojedyncze grupy (architektów czy twórców kompilatorów) Istnieje pilna potrzeba zmian we wszystkich warstwach abstrakcji
Tematyka wykładu 1. Hierarchia pamięci (DRAM, cache, optymalizacja) 2. Rozwój architektur 3. Podstawowe zagadnienia (ISA, microprogramming, potokowość) 4. Zaawansowane przetwarzanie potokowe (scoreboarding, out-of-order) 5. Wydajność systemów, superkomputery 6. Architektury wieloprocesorowe i jawnie równoległe (spójność cache, modele pamięci, synchronizacja) 7. Procesory dla urządzeń mobilnych (PDA)
Droga do przebycia w trakcie wykładu To było omawiane do tej pory To omówimy w dalszej części I na końcu opowiemy o tym
Architektura von Neumanna Structured Computer Organization,4th ed. Andrew S. Tanenbaum,
PC instruction memory registers Data memory Główne bloki funkcjonalne CPU rd rs rt ALU +4 imm 1. Instruction Fetch 2. Decode/ Register Read 3. Execute 4. Memory 5. Reg. Write
Proces wytwarzania procesora Computer.Organization.and.Design The.Hardware.Software.Interface, Patterson, Hennessy, 2005 Intel.com
Ważne bloki funkcjonalne
Główne bloki funkcjonalne Core i7 Computer.Organization.and.Design The.Hardware.Software.Interface, Patterson, Hennessy, 2005