Porównaj CISC, RISC, EPIC. CISC Complex Instruction Set

Transkrypt

Porównaj CISC, RISC, EPIC. CISC Complex Instruction Set
Porównaj CISC, RISC, EPIC.
CISC ­ Complex Instruction Set
Computers
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
RISC ­ Reduced Instruction Set
Computers
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.
RISC ­ Reduced Instruction Set
Computers
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
RISC ­ Reduced Instruction Set
Computers
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ł
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.
razy

Podobne dokumenty