Architektura procesora Intel Itanium (IA64) Paweł Pisarczyk Instytut Informatyki, Politechnika Warszawska Pawel.Pisarczyk@ii.pw.edu.



Podobne dokumenty
Programowanie w asemblerze Środowiska 64-bitowe

Programowanie w asemblerze Środowiska 64-bitowe

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

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

Architektura mikroprocesorów TEO 2009/2010

Materiały do wykładu. 4. Mikroprocesor. Marcin Peczarski. Instytut Informatyki Uniwersytet Warszawski

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

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

SYSTEMY OPERACYJNE WYKŁAD 1 INTEGRACJA ZE SPRZĘTEM

4 Literatura. c Dr inż. Ignacy Pardyka (Inf.UJK) ASK MP.01 Rok akad. 2011/ / 24

Projektowanie. Projektowanie mikroprocesorów

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

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

Układ wykonawczy, instrukcje i adresowanie. Dariusz Chaberski

Mikroprocesory rodziny INTEL 80x86

Procesory rodziny x86. Dariusz Chaberski

Architektura komputerów

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

Podstawy Techniki Mikroprocesorowej

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

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

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

Procesory Blackfin. Część 1

2 Literatura. c Dr inż. Ignacy Pardyka (Inf.UJK) ASK MP.02 Rok akad. 2011/ / 24

Architektura komputerów

Architektura komputerów egzamin końcowy

Architektura komputerów

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

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

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

Programowanie Niskopoziomowe

Budowa Mikrokomputera

Architektura systemów komputerowych. Konstrukcja i zasada działania mikroprocesora

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

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

Architektura komputerów

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]

Architektura Systemów Komputerowych

Oprogramowanie komputerów wer. 9

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

Architektura, oprogramowanie i uytkowanie klastra PCSS. Marek Zawadzki <mzawadzk@man.poznan.pl>

Programowanie Niskopoziomowe

CPU. Architektura FLAGS Bit: dr Paweł Kowalczyk; DPTNS, KFCS UŁ. SI 16 bit. 16 bit. 16 bit.

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

Architektura komputerów

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.

Wprowadzenie. Klastry komputerowe. Superkomputery. informatyka +

Wprowadzenie do obsługi systemów obliczeniowych PCSS

Architektura komputerów

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

Architektura Komputerów

PRZEWODNIK PO PRZEDMIOCIE

Programowanie Niskopoziomowe

002 Opcode Strony projektu:

Składowanie, archiwizacja i obliczenia modelowe dla monitorowania środowiska Morza Bałtyckiego

Architektura potokowa RISC

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

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

3.Przeglądarchitektur

Metody Realizacji Języków Programowania

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

Wykład 2. Mikrokontrolery z rdzeniami ARM

Architektura systemów komputerowych Laboratorium 14 Symulator SMS32 Implementacja algorytmów

Architektura systemów komputerowych. Lista instrukcji procesora

Wykład 2. Mikrokontrolery z rdzeniami ARM

16. Taksonomia Flynn'a.

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

Wydajność obliczeń a architektura procesorów

PROGRAMOWANIE NISKOPOZIOMOWE

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

Algorytmy i Struktury Danych

O superkomputerach. Marek Grabowski

Wprowadzenie do architektury komputerów. Model programowy procesora i jego struktura Procesory CISC i RISC

Księgarnia PWN: Włodzimierz Stanisławski, Damian Raczyński - Programowanie systemowe mikroprocesorów rodziny x86

PROGRAMOWANIE NISKOPOZIOMOWE. Systemy liczbowe. Pamięć PN.01. c Dr inż. Ignacy Pardyka. Rok akad. 2011/2012

Obliczenia Wysokiej Wydajności

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

Struktura i działanie jednostki centralnej

architektura komputerów w. 4 Realizacja sterowania

Organizacja typowego mikroprocesora

System obliczeniowy laboratorium oraz. mnożenia macierzy

3.Przeglądarchitektur

Ćwiczenie nr 6. Programowanie mieszane

Sprzętowe wspomaganie pamięci wirtualnej

ARCHITEKTURA PROCESORA,

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

Procesory. Schemat budowy procesora

Praktycznie całe zamieszanie dotyczące konwencji wywoływania funkcji kręci się w okół wskaźnika stosu.

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

Wybrane zagadnienia elektroniki współczesnej

Architektura komputerów. Asembler procesorów rodziny x86

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

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

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

, " _/'--- " ~ n\l f.4e ' v. ,,v P-J.. ~ v v lu J. ... j -:;.",II. ,""", ",,> I->~" re. dr. f It41I r> ~ '<Q., M-c 'le...,,e. b,n '" u /.

Programowanie niskopoziomowe

SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE

Architektura mikroprocesorów z rdzeniem ColdFire

System mikroprocesorowy i peryferia. Dariusz Chaberski

Architektura komputerów

Transkrypt:

Architektura procesora Intel Itanium (IA64) Paweł Pisarczyk Pawel.Pisarczyk@ii.pw.edu.pl

Plan prezentacji Wprowadzenie Model programowy EPIC Mikroarchitektura procesora Itanium W ybrane mechanizmy procesora Porównanie wydajności procesorów IA32 i IA64 Oprogramowanie Obliczeniowe klastry PC Podsumowanie

Kierunki rozwoju mikroprocesorów Zwiększenie prędkości wykonania instrukcji Przetwarzanie dużych zbiorów danych - SIMD Zwielokrotnienie ścieżek wykonania (np. Hyper Threading, wielordzeniowość)

Rodzaje procesorów Procesory wektorowe NEC SX-6 Procesory Cray (Cray X1) Procesory RISC MIPS R8000 IBM Power4 Alpha 21164 Procesory CISC Intel Xeon (IA32) AMD Opteron (x86-64) Procesory EPIC Intel Itanium (IA64)

Architektura EPIC EPIC - Explicitly Parallel Instruction Computing Architektura wprowadzona w roku 2001 w procesorze Itanium (Merced) Zwielokrotnione jednostki wykonawcze Równoległe wykonanie instrukcji Duża liczba rejestrów, zestaw prostych, ortogonalnych instrukcji Ciężar optymalizacji wykonania przeniesiony na kompilator

RISC, CISC vs EPIC Instrukcje Instrukcje bundle bundle bundle IFU IFU RISC lub CISC EPIC

Procesor Itanium2 Architektura 64-o bitowa typu EPIC - VLIW, nowy model programowy - IA64 W ykonanie do sześciu instrukcji w jednym cyklu zegara Silnie zwielokrotnione jednostki wykonawcze Bardzo duża liczba rejestrów roboczych Mechanizmy zwiększające efektywność wykonania kodu Możliwość wykonania kodu IA32

Środowisko wykonania IA32 RM IA32 PM IA32 VM86 IA64 interrupt, exception interrupt, exception, epc IA64 system

Hierarchia pamięci cache

Jednostki funkcjonalne jednostka DCU (Data Cache Unit): 4 porty pamięci - 2 porty typu store, 2 porty typu load arytmetyka stałopozycyjna: 6 jednostek ALU0-5, jednostka ISHIFT arytmetyka zmiennopozycyjna: 2 jednostki FMAC (dodawaniemnożenie), 2 jednostki FMISC (pozostałe operacje) instrukcje multimedialne: 6 jednostek wektorowych PALU0-5, 2 jednostki shift PSMU0-1, jednostka mnożenia równoległego PMUL, jednostka zliczająca POPCNT skoki: 3 jednostki skoków

Rejestry aplikacyjne 128 rejestrów ogólnego przeznaczenia: gr0-127 128 rejestrów zmiennopozycyjnych: fr0-127 64 rejestry predykatów: pr0-63 8 rejestrów skoków: br0-br7 128 rejestrów aplikacyjnych: ar0-ar127 rejestry CPUID rejestry danych PMU rejestr IP, CFM i UM

Rejestry systemowe 8 rejestrów regionów: rr0-rr7 Minimalnie 16 rejestrów kluczy ochrony: pkr0-pkrn Rejestry TLB: itr0-itrn, itc0-itcn, dtr0-dtcn Rejestry uruchomieniowe: ibr0-ibrn, dbr0-dbrn Rejestry konfiguracyjne PMU: pmc0-pmcn Rejestry sterujące: cr0-crn Rejestr PSR (Processor Status Register)

Format instrukcji Slot 2 Slot 1 Slot 0 T 127 86 45 4 1 0

Przykład kodu maszynowego {.mfi add r32=1,r33 fcvt.xf f39=f35 nop.i 0 } {.mfi nop.m 0 fma.d.s1 f36=f41,f1,f0 nop.i 0 ;; } {.mfi nop.m 0 (p23) fcmp.gt.s0 p22,p0=f8,f38 nop.i 0 } {.mmb nop.m 0 setf.sig f32=r32 (p23) br.wtop.dptk.b1_3 ;; }

Mechanizmy ochrony Cztery poziomy ochrony 0-3 (poziom 0 najbardziej uprzywilejowany) Rejestry systemowe dostępne są wyłącznie na poziomie 0 Ochrona oparta o klucze i domeny ochrony + atrybuty stron Przejścia między poziomami ochrony po wystąpieniu przerwania (wyjątku) lub za pośrednictwem instrukcji epc i stron typu prominent Oddzielny atrybut wykonywalności strony

Zarządzanie pamięcią Dwa tryby adresowania: adresowanie fizyczne i wirtualne Pamięć wirtualna oparta o stronicowanie i regiony pamięci Możliwość realizacji modelu pamięci MAS lub SAS Płaska, liniowa przestrzeń adresowa 63-bitowy adres fizyczny Strony wielkości od 4 KB do 4 GB Zestaw rejestrów sterujących TLB Tablica stron stanowi rozszerzenie TLB Brak konieczności wymiatania TLB

Stronicowanie VRN 63 60 Region registers region ID + size VPN Przestrzenie wirtualne (2 24 ) Offset Pamięć fizyczna region ID key VRN VPN rights PPN

Rejestry predykatów if (r1) r2 = r3 + r4; else r7 = r6 - r5; cmp.ne p1,p2 = r1, 0;; [p1] add r2 = r3, r4 [p2] sub r7 = r6, r5

Wywołanie funkcji IA32 test(a, b); push eax push edx call test add esp, 8 ; b ; a int test(int a, int b) { int c = a; return c; } push ebp mov ebp, esp sub esp, 4h mov eax, dword ptr [ebp + 8] mov dword ptr [ebp - 4], eax mov eax, dword ptr [ebp - 4] mov esp, ebp pop ebp ret

Wywołanie funkcji IA64 (RSE) test(a); // Call test(a), 'a' is in R32 1: (p0) br.call b0=test int test(int a) { int c = a; return c; } 2:.proc 3: test: // Set up register stack 4: alloc r4=ar.pfs,1,1,1,2 // int c = a 5: (p0) mov r33=r32 6: ;; // return c 7: (p0) mov r34=r33 8: (p0) mov ar.pfs=r4 9: (p0) br.ret.sptk.few b0 10:.endp

Mapowanie rejestrów (RSE) Rejestry fizyczne gr32 gr33 gr34 Ramka stosu test() gr35 Ramka stosu funkcji wywołującej Input r32 gr36 r32 Output Local r33 gr37 Output r34 gr38 gr39 gr40 gr41

PAL, SAL, EFI System operacyjny EFI SAL PAL Procesor Sprzęt

Testy IA64 Testy przy pomocy istniejących aplikacji (Povray, Scilab, John the Ripper etc.) Opracowanie prostego testowego programu, uniemożliwiającego stosowanie powszechnych metod optymalizacji (pomijanie obliczeń, rozwijanie pętli itp.) Kompilacja przy pomocy GNU CC i Intel ICC

Kod testowy...... for (k = 0; k < 1 000 000 000; k++) { v *= k / A + k * B - C; }...... return v;

Wyniki (czas obliczeń INT) sekundy 70 60 50 40 30 20 IA32 2.2 GHz GCC IA64 1.5 GHz GCC IA64 1.5 GHz ICC 10 0 brak optymalizacji

Wyniki (czas obliczeń INT) sekundy 1,4 1,2 1 0,8 0,6 0,4 IA32 2.2 GHz GCC IA64 1.5 GHz GCC IA64 1.5 GHz ICC 0,2 0 O1 O2

Wyniki (czas obliczeń FLOAT) sekundy 600 500 400 300 200 IA32 2.2 GHz GCC IA64 1.5 GHz GCC IA64 1.5 GHz ICC 100 0 brak optymalizacji

Wyniki (czas obliczeń FLOAT) sekundy 14 12 10 8 6 4 IA32 2.2 GHz GCC IA64 1.5 GHz GCC IA64 1.5 GHz ICC 2 0 O1 O2

Oprogramowanie Systemy operacyjne: MS W indows 2003, GNU/Linux, HP- UX Kompilatory: GNU CC, Intel ICC, G77, Intel Fortran itp. Narzędzia do profilowania kodu i monitorowania wydajności: VTUNE, Vampire Biblioteki numeryczne: HP MLIB, Intel MKL, Intel IPP, NAG Narzędzia OpenSource stworzone w ramach Gelato (np. perfmon i pm-utils)

Obliczeniowe klastry PC W ykorzystanie popularnych technologii (np. PC IA32) W ęzły połączone przy pomocy sieci Ethernet, Myrinet, QsNET Popularne systemy operacyjne (np. Linux, BSD, W indows) Do prowadzenia obliczeń wykorzystywane są specjalne środowiska programowe (MOSIX, Beowulf, Quadrics RMS, PVM) i biblioteki (MPI, PVM)

Cechy połączeń międzywęzłowych Minimalizacja opóźnień i czasu przekazywania komunikatów Specjalizowana topologia połączeń (hiperkostka, torus, hierarchiczne drzewo) Uporządkowany sposób dostępu do medium Duża przepływność kanału komunikacyjnego (2GB/s) Pełne wykorzystanie pasma magistrali lokalnej, odciążenie procesora głównego Przykłady sieci - Myrinet, InfiniBand, Quadrics QsNET (ELAN2)

Topologia połączeń Fat Tree Rysunek z Overview of Recent Supercomputers 2003 Aad J. van der Steen, Jack J. Dongarra, http://www.top500.org

Klastry Aplikacje Middleware Biblioteki systemowe Biblioteki systemowe Jądro Jądro

Przykłady rozwiązań - klastry Linux Networx/Quadrics Procesor: Intel Xeon 2.4 GHz Liczba procesorów: 2304 Komunikacja: QsNet ELAN3 System operacyjny: Linux + RMS + Lustre Maksymalna wydajność: 7.6 TFLOPS 3 komputer w rankingu TOP500 Zbudowany dla LLNL w 2002 roku

Podsumowanie Itanium wymaga odpowiednich kompilatorów oraz narzędzi do monitorowania wydajności i profilowania kodu - projekt Gelato (HP Labs, CERN, NCSA,...) Trzykrotnie efektywniejszy model programowy w stosunku do IA32 Nowy model programowy IA64, pozbawiony ograniczeń IA32 Odejście od przestarzałej architektury PC Istnieje możliwość przeniesienia systemu Phoenix na IA64 w celu szczegółowego poznania nowej architektury i walidacji systemu