Architektury komputerów

Slides:



Advertisements
Podobne prezentacje
Teoria układów logicznych
Advertisements

Programowanie w PMC.
Wykonał : Marcin Sparniuk
Zarządzanie operacjami
Idea, podstawowe parametry, cechy, charakterystyka
Metody ataku na algorytmy kryptograficzne oparte na informacjach z ulotu elektromagnetycznego Robert Borzęcki.
Magistrale.
Podstawowe składniki funkcjonalne procesora i ich rola.
Pamięci RAM Brodziak Czubak.
Magistrala & mostki PN/PD
Schemat blokowy komputera
Komputer, procesor, rozkaz.
Temat nr 10: System przerwań
Procesory PENTIUM.
Procesory RISC.
Temat : Części komputera
Wieloprocesowy system operacyjny dla komputerów ATARI XL/XE
Budowa Komputera.
Bramki Logiczne.
Co to jest BIOS? Opracowali: Mateusz Dąbrowski Mateusz Nowotnik
Komputer a system komputerowy
Wykonał Piotr Jakubowski 1ET
Cyfrowe układy logiczne
ARCHTEKTURA KOMPUTERA
Zasada działania komputera
Budowa systemu komputerowego
Elementy składowe komputera
Urządzenia wewnętrzne komputera
Autor: Justyna Radomska
Budowa komputera.
Mikroprocesory mgr inż. Sylwia Glińska.
Budowa i rodzaje procesorów.
Mikroprocesory.
Mikroprocesory mgr inż. Sylwia Glińska.
Systemy liczbowe.
POŚREDNIK Jak reprezentowana jest informacja w komputerze? liczby – komputer został wymyślony jako zaawansowane urządzenie służące do wykonywania.
PROCESORY (C) Wiesław Sornat.
Architektura PC.
Budowa komputera ProProgramer.
Elementy zestawu komputerowego
Stało- i zmiennopozycyjna reprezentacja liczb binarnych
W ą t e k (lekki proces) thread.
Systemy rozproszone  Rozdzielenie obliczeń między wiele fizycznych procesorów.  Systemy luźno powiązane – każdy procesor ma lokalną pamięć; procesory.
PODSTAWOWE BRAMKI LOGICZNE
Procesor – charakterystyka elementów systemu. Parametry procesora.
Złożone układy kombinacyjne
BUDOWA I ZASADA DZIAŁANIA
URZĄDZENIA TECHNIKI KOMPUTEROWEJ
Budowa wewnętrzna KOMPUTERA
Własności bramek logicznych RÓZGA DARIUSZ 20061
Procesor, pamięć, przerwania, WE/WY, …
Struktura wewnętrzna mikrokontrolera zamkniętego
Pamięć RAM Pamięć RAM.
Architektury procesorów rdzeniowych mikrokontrolerów.
Pamięć SRAM.
Logiczne układy bistabilne – przerzutniki.
Zasady arytmetyki dwójkowej
Struktura systemu operacyjnego
Analiza porównawcza procesorów Inlet
Tryby adresowania i formaty rozkazów mikroprocesora
Budowa komputera.
Technologie w mikroprocesorach. Wykonywanie rozkazów.
Mikroprocesory w urządzeniach przenośnych. Rdzenie ARM Architektura ARM (ang. Advanced RISC Machine, architektura procesorów typu RISC. Różne wersje rdzeni.
BUDOWA KOMPUTERA.. -płyta główna -procesor -ram-y -dysk twardy -karta graficzna -karta muzyczna -karta sieciowa -wentylator -cd-rom -stacja dyskietek.
Płyta główna. Magistrale I/O
Schemat blokowy komputera
Wstęp do Informatyki - Wykład 6
Podział mikroprocesorów
Budowa komputera..
Format rozkazu Tryby adresowania.
Zapis prezentacji:

Architektury komputerów Procesory Dawid Wawryka © 2010 v2.01

Współbieżność i równoległość Spis treści Lista rozkazów Budowa Produkcja Parametry Częstotliwość Overclocking Układy logiczne Tranzystor Współbieżność i równoległość Technologie Architektury Tendencje rozwojowe

Procesor | Lista rozkazów Spis treści Z ang. CPU (Central Processing Unit) – układ scalony, przetwarza informacje wykonując na nich elementarne operacje (rozkazy). Każdy procesor ma swoją listę rozkazów, które potrafi wykonać. Każdemu rozkazowi odpowiada pewien kod maszynowy (ciąg zer i jedynek). Należy sobie wyobrażać, że ciąg impulsów elektrycznych (ciąg binarny) podanych procesorowi, wpływa na jego stan, np. modyfikując bity zawarte w jego rejestrach - zostają wykonane operacje na danych. W przypadku niektórych modeli istnieją nieudokumentowane rozkazy procesora. Leżą one w kręgu zainteresowań hakerów. Niektóre z nich mają ciekawe lub unikalne cechy. Lista rozkazów jest niezbędna dla programistów wykorzystujących procesor bezpośrednio, np. piszących kompilatory. W procesorach niedostępnych masowo można modyfikować listę rozkazów. Daje to możliwość dostosowania procesora do konkretnych celów uzyskując większą wydajność. Kompilator – program który zamienia (tłumaczy) kod wysokiego poziomu (np. kod programu napisany w języku C++) na kod maszynowy zrozumiały dla procesora.

Procesor |Budowa Spis treści Sercem procesora jest monokryształ krzemu. Krzem jest w IV grupie układu okresowego pierwiastków. Jeśli do monokryształu doprowadzi się niewielką domieszkę metalu V grupy, otrzymamy jeden elektron walencyjny nie powiązany siłami sieci krystalicznej. Wystarczy niewielka energia, aby przenieść ten elektron do pasma przewodnictwa. Na monokryształ jest naniesiona sieć nawet miliarda tranzystorów (techniką fotolitografii). To one tworzą bramki logiczne i układy przetwarzania. Nie bez powodu monokryształ krzemu określa się mianem serca procesora. To on „pompuje” bity danych (operandów) i rozkazów (operacji) kierując je do sieci tranzystorów. Intel znalazł metal, który przy bramie tranzystora może zatrzymać 100-krotnie więcej elektronów niż obecnie stosowany monokryształ krzemu. Niestety informacje na ten temat są objęte ścisłą tajemnicą. W strukturze funkcjonalnej procesora można wyróżnić podstawowe elementy: zespół rejestrów, ogólnego i szczególnego przeznaczenia, do przechowywania danych, rozkazów i wyników obliczeń; jednostka arytmetyczno-logiczna (arytmometr lub ALU - Arithmetic and Logical Unit) wykonuje operacje na liczbach całkowitych; Koprocesor lub FPU (Floating Processing Unit) – wykonuje operacje zmienno-przecinkowe; układ sterujący, który kontroluje przebieg wykonania programu; dodatkowe układy wspomagające procesor w jego działaniu.

Procesor |Produkcja Spis treści Opisem własności półprzewodników zajmuje się fizyka ciała stałego, a szczególnie jej dział nazywany elektroniką kwantową będący ostatnio modną specjalizacją w kręgach naukowych. Krzem występujący powszechnie w postaci piasku jest wstępnie poddawany obróbce termicznej. W gorącym piecu hodowany jest wielki i bardzo czysty (zanieczyszczenia stanowić mogą nie więcej niż 0.00000001%) kryształ. Złożone struktury uzyskuje się wprowadzając do krzemu domieszki, substancje mniej lub bardziej przewodzące. Na płytkę krzemu nakłada się miniaturowe maski, naświetla ultrafioletem i wytrawia strumieniem gorących gazów zawierających pożądane domieszki. Używana obecnie technologia fotolitograficzna pozwala na tworzenie połączeń o szerokościach 1-1.5 mikrometra. Bardziej wyrafinowane techniki to litografia laserowa, lub wykorzystywane eksperymentalnie użycie promieni Roentgena albo promieniowanie synchrotronowe (0.1 mikrometra). Bardzo dobrych efektów spodziewać się można po bezpośredniej implantacji (wstrzykiwaniu) jonów przy pomocy akceleratorów (przyspieszaczy cząstek). Cząstki te wbijane są bezpośrednio w krzem tworząc w nim złożone struktury. Im mniejsza szerokość ścieżki tym wyższa może być częstotliwość. Superkomputery zamiast krzemu mogą wykorzystywać arsenek galu. Jest to materiał pozwalający na budowę obwodów scalonych o większej szybkości niż obwody z krzemu. Interesowała się nim w szczególności firma Cray, produkująca właśnie superkomputery. Wykorzystanie arsenku galu okazało się jednak na tyle drogim rozwiązaniem, że pozycja krzemu nie będzie zagrożona jeszcze przez długie lata.

Procesor | Parametry Spis treści Rozmiar elementów składających się na strukturę CPU określa proces technologiczny. Obecnie wytwarzane są układy o rozmiarach 32 nm. W 2011 r. Intel planuje wdrożyć produkcję opartą na 22 nanometrowej technologii wykonania. Wyższy proces technologiczny, tj. układy o mniejszych rozmiarach to mniejsze zużycie energii, a także niższe napięcie do pracy w określonej częstotliwości. Jeśli długość (liczba bitów) słowa, na którym CPU dokonuje operacji wynosi 64 bity, to mówimy, że procesor jest 64-bitowy. Słowo 32 bitowe może nieść ze sobą 232 różnych informacji, np. adresów komórek pamięci operacyjnej. Każda komórka przechowuje jeden bajt. Zatem procesor 32-bitowy może zaadresować i obsługiwać co najwyżej 232 bajtów pamięci operacyjnej RAM czyli dokładnie 4GB. Tak naprawdę Windows XP 32-bitowy z 4 GB zainstalowanej pamięci operacyjnej zobaczy 3-3,5 GB. Brakujący fragment jest zarezerwowany dla urządzeń magistrali PCI. Możliwość operacji na dłuższym słowie w sposób znaczący przekłada się na wzrost wydajności procesora. IPC (Instructions Per Cycle) oznacza średnią ilość rozkazów wykonanych w jednym cyklu zegarowym (takcie). Termin ten będzie przydatny w dalszych slajdach.

Procesor | Częstotliwość Spis treści Długość słowa określa również liczbę bitów przetworzonych w jednym takcie zegara. Jeden takt zegara to jedna podstawowa operacja, która nie powinna być mylona z rozkazem. Wykonanie rozkazu może wymagać kilku podstawowych operacji (taktów). Taktowanie to dostarczenie przez zegar sygnału elektrycznego (zwykle prostokątnego) o określonej częstotliwości. Wewnętrzna częstotliwość taktowania (cyklu zegarowego) 2 GHz oznacza 2 mld podstawowych operacji na sekundę. Częstotliwość ta jest normalnie określana przez częstotliwość generatora sygnału zegarowego stabilizowaną zazwyczaj rezonatorem kwarcowym. Zewnętrzna częstotliwość taktowania to inaczej częstotliwość magistrali, systemu lub interfejsu. Określa szybkość z jaką procesor ma dostęp do pamięci roboczej (operacyjnej) lub układów wejścia-wyjścia poprzez magistralę systemową. Cykl maszynowy to czas potrzebny na wymianę danych między procesorem a pamięcią lub układem wejścia-wyjścia. Jeden cykl maszynowy może trwać jeden lub kilka taktów (cykli) zegara. Nie należy mylić cyklu maszynowego z cyklem zegara. W 2006 roku firma IBM opracowała układ, który może być taktowany z prędkością 500 GHz przy temperaturze bliskiej absolutnemu zeru. W temperaturze pokojowej częstotliwość spada do 350 GHz, ponieważ wyższa temperatura to wyższy opór przewodników. Częstotliwość może służyć do porównania procesorów jedynie tej samej rodziny. Procesor Intel Pentium D820 (2 x 2.8 GHz) przegrywa z Intel Core 2 Duo T5500 (2 x 1.66 GHz) w wyliczaniu kolejnych liczb pierwszych. Dzieje się tak dlatego, że nie tylko częstotliwość wpływa na wydajność pracy.

Procesor | Overclocking Spis treści Wzór) Wewnętrzna częstotliwość taktowania = Zewnętrzna częstotliwość taktowania * mnożnik. Overclockerzy zalecają podnoszenie zewnętrznej częstotliwości taktowania, gdyż podnosi to ogólną wydajność systemu (wszystkich elementów korzystających z magistrali). Podnoszenie samego mnożnika wpływa jedynie na szybkość operacji wykonywanych przez procesor, a reszta środowiska staje się dla niego wąskim gardłem. Podczas tzw. podkręcania wymuszamy większą częstotliwość pracy magistrali lub wyższą wartość mnożnika. W praktyce takie przyspieszenie pracy powoduje zmniejszenie różnicy pomiędzy zerem a jedynką (jak wiadomo, niskie napięcie to zero, a wysokie to jeden). Wykroczenie poza minimalny dopuszczalny zakres różnicy powoduje powstawanie błędów. Aby temu zapobiec, można podnieść napięcie rdzenia (CPU Core Voltage w zakładce PC Health Status w BIOS-ie), co na powrót zwiększa różnicę pomiędzy zerem a jedynką. Lecz w dalszych konsekwencjach procesor zużywa więcej energii i szybciej się nagrzewa. W wielu przypadkach kluczem do efektywnego overclockingu (podkręcania) jest wydajny system chłodzenia oraz zasilania. Bardzo istotny jest też model płyty głównej. Inne parametry procesorów: ilość rdzeni; rozmiar pamięci podręcznej (Cache); TDP (Thermal Design Power) - maksymalna ilość energii wydzielanej w postaci ciepła w watach; rodzaj dedykowanej podstawki na płycie głównej, np. LGA 1366 (Intel), AM3 (AMD).

Procesor | Overclocking cd. Spis treści Obecnie (2010) niemal wszystkie dostępne na rynku procesory dysponują sporym zapasem mocy, co wynika z dopracowania technologii ich produkcji. Mówi się o dobrych czasach dla overclockerów. Platformy procesorów Intel) LGA 775 – Zewnętrzna częstotliwość taktowania określona przez magistralę FSB (Front Side Bus) obecnie już nie stosowanej. LGA 1156 – W tej i następnej nie mówi się o FSB, ale o QPI (QuickPath Interconnect) LGA 1366 – To w podstawce LGA 1366 instaluje się obecnie najwydajniejsze procesory dla desktopów. FSB a QPI) FSB jest połączeniem liniowym. Składa się z linii adresowych, danych oraz sterowania. Szyna danych FSB jest jednokierunkowa i nadaje się w praktyce jedynie do połączenia procesora z kontrolerem pamięci (zwykle zlokalizowanym w mostku północnym chipsetu). QPI bazuje na połączeniu typu P2P (Point to point). Połączenie jest dwukierunkowe, ale nie musi być symetryczne. QPI może służyć nie tylko do połączeń między procesorem a chipsetem, lecz także pomiędzy kilkoma procesorami, np. w serwerach. Intelowski QPI odpowiada AMD-owskiemu łączu HT (HyperTransport). QPI oraz HT charakteryzują się większą przepustowością oraz niższymi opóźnieniami. Na tę chwilę FSB oficjalnie pracuje maksymalnie z częstotliwością 400 MHz, co przy transferowaniu 4 bajtów (32 bitów) w jednym takcie daje efektywną częstotliwość 1600 MHz. P2P – model komunikacji, który gwarantuje obu stronom równe prawa.

Procesor | Overclocking cd. Spis treści Podkręcanie przez podniesienie wartości mnożnika W BIOS-ie płyty głównej (prawdopodobnie w zakładce Advanced Frequency Settings lub Advanced CPU Core Features) należy odnaleźć CPU Clock Ratio, oraz zwiększyć jego wartość. Niestety wiele modeli procesorów ma zablokowaną tą wartość. Strategia podkręcania Najmniejszymi krokami. Każdy krok należy gruntownie przetestować (mocno obciążyć procesor na dłuższy czas i sprawdzić czy nie zawiesi to jego pracy). Należy koniecznie się upewnić, że aktywne jest ostrzeganie o wysokiej temperaturze procesora (Zakładka PC Health Status). Po odnalezieniu maksymalnych wartości, powrócić do tych poprzedzających. Pamiętajmy, że to zazwyczaj te słabsze procesory lepiej się podkręca, gdyż są takim samym kawałkiem krzemu jak ich droższe odpowiedniki. Dobry zasilacz może znacząco pomóc w podkręcaniu. Większa moc wymaga większego zasilania. Podkręcanie przez podniesienie zewnętrznej częstotliwości taktowania Zewnętrzną częstotliwość taktowania często określa się mianem Base Clock (BCLK) – wartości bazowej. W przypadku magistrali FSB sprawa jest prosta. Jej częstotliwość można podnieść w tych zakładkach, gdzie szukaliśmy CPU Clock Ratio. Skupmy się na podkręcaniu magistrali QPI i HT. Wraz z podnoszeniem wartości BCLK zwiększać się będzie także częstotliwość pracy łącza QPI i pamięci RAM. Na szczęście pamięć również dysponuje własnym mnożnikiem, który należy ustawiać tak, by pracowała w swoich ustawieniach nominalnych, dających pewność, że nie zdestabilizuje to systemu. Podobnie jest z częstotliwością QPI, tyle że zazwyczaj ustawienie mnożnika jest mocno ograniczone. W razie niestabilności można podnieść wartości napięcia dla szyny QPI oraz chipsetu. To również należy robić bardzo ostrożnie. Przekroczenie pewnych dopuszczalnych wartości może doprowadzić do obniżenia wydajności układu, w końcu go spalając. Czasem obniżenie mnożnika procesora odblokowuje wyższe wartości BCLK. Warto z tego skorzystać, gdyż lepiej podnieść ogólną wydajność systemu, aniżeli samego procesora. Większość z opisanych tu opcji należy szukać w zakładkach Advanced Frequency Settings, Advanced CPU Core Features, Advanced Memory Settings oraz PC Health Status.

Procesor | Overclocking cd. Spis treści Chłodzenie – klucz do efektywnego podkręcania. Ważniejszym (o ile nie najważniejszym) czynnikiem decydującym o podkręcaniu są także możliwości płyty głównej. Częstotliwość = BCLK * mnożnik (często nie można go podnieść) Napięcie – podnieść w przypadku braku stabilności. Nie przekraczać 110% wartości nominalnej. Q P I Napięcie. Częstotliwość QPI = BCLK * mnożnik QPI (często nie można go podnieść) Zaleca się nie zmieniać napięcia zasilania pamięci ani ogólnej częstotliwości pracy. Napięcie – uwagi jw. Chipset – mostek północny Chipset również ma swój mnożnik. Kontroler pamięci. Najnowsze linie procesorów, mają go wbudowanego w siebie, co podnosi wydajność pracy. Chłodzenie. Częstotliwość = BCLK * mnożnik

Procesor | Układy logiczne Spis treści Zalecane jest przerobienie wstępu do logiki przed dalszą lekturą. Najpopularniejszym dziś elementem konstrukcyjnym układów scalonych są tranzystory MOS. CMOS to nazwa technologii wytwarzania układów scalonych wykorzystujących tranzystory MOS. Tranzystory są połączone w taki sposób, że w określonym stanie logicznym przewodzi tylko jeden z nich. Dzięki temu układ statycznie nie pobiera żadnej mocy, prócz niewielkiego prądu wyłączenia tranzystora. Układ dwóch tranzystorów MOS pozwala zapisać jeden bit informacji. Układy CMOS są proste i tanie w produkcji. Umożliwiają uzyskanie bardzo dużych gęstości upakowania tranzystorów. Bramka logiczna jako obwód elektroniczny wykorzystuje prawa elektroniki i fizyki do realizacji funkcji logicznej. To przy pomocy funkcji logicznych bity danych są przetwarzane. Bramki logiczne wykorzystują algebrę Boole’a, gdzie wszystkie dane i wyniki są zapisane przy pomocy zer i jedynek. Większość bramek jest dwuargumentowa, tzn. posiadają dwa wejścia do których przykładamy napięcie. Na wyjściu pojawia się wynik, tj. wartość funkcji dla podanych argumentów.

Procesor | Układy logiczne cd. Spis treści Bramka buforująca BUF: We Wy 1 Bramka negacji NOT: We Wy 1 Bramka alternatywy (sumy logicznej) OR: We 1 We 2 Wy 1 Bramka koniunkcji (iloczynu logicznego) AND: We 1 We 2 Wy 1

Procesor | Układy logiczne cd. Spis treści Bramka XOR: (Alternatywy wykluczającej) We 1 We 2 Wy 1 We 1 We 2 Wy 1 Bramka XNOR: Bramka NOR: (Binegacji) Bramka NAND: We 1 We 2 Wy 1 We 1 We 2 Wy 1

Procesor | Układy logiczne cd. Spis treści Podsumowanie) P Q P AND Q P NAND Q P OR Q P NOR Q P XOR Q P XNOR Q 1 Funkcja AND jest prawdziwa  oba argumenty są prawdziwe. Funkcja OR jest prawdziwa  przynajmniej jeden argument jest prawdziwy. Funkcja XOR jest prawdziwa  dokładnie jeden argument jest prawdziwy. Funkcje NAND, NOR oraz XNOR są zaprzeczeniami odpowiednio AND, OR, XOR. Ich symbole różnią się kółkiem na wyjściu lub kółkami na wejściach. Bramki NAND oraz NOR nazywamy funkcjonalnie pełnymi, ponieważ przy ich użyciu można zbudować układ realizujący dowolną funkcję logiczną. Dowolną bramkę logiczną można też skonstruować za pomocą pary bramek, np. za pomocą OR i NOT lub AND i NOT. Układy takie nazywamy układami zupełnymi.

Procesor | Układy logiczne cd. Spis treści Klucz jest elementem trójkońcówkowym składającym się z dwóch równoważnych linii danych A i B oraz jednego wejścia sterującego C. Kiedy C=0 to klucz jest w stanie normalnym. Kiedy C=1 to klucz jest aktywny. Klucz normalnie otwarty w stanie normalnym nie przewodzi. Węzły A i B są rozwarte. Klucz normalnie zamknięty w stanie normalnym przewodzi. Węzły A i B są zwarte. W algebrze kluczy klucz ma wartość „prawda” jeśli przewodzi. Sygnały C1 i C2 są argumentami funkcji AND. Jeśli oba są równe 1, to zostaną zamknięte oba klucze. Na wejściu A1 jest przyłożone napięcie o wartości 1. Na wyjściu B2 odczytujemy wartość funkcji (wynik), która jest prawdziwa  gdy oba argumenty C1 i C2 są prawdziwe.

Procesor | Tranzystor Spis treści Tranzystor stanowi fizyczną realizację klucza trójkońcówkowego. Jego zasadę działania określa mechanika kwantowa.

Współbieżność i równoległość | Potokowość Spis treści Potokowość to technika budowy procesorów. Określa sposób przetwarzania rozkazów przez procesor. Oto graficzna interpretacja tego sposobu: Oś czasu Jedna pozioma linia oznacza jedną instrukcję. Każda instrukcja jest dzielona na elementarne części (tutaj oznaczone jako IF, ID, EX, MEM i WB). Części zaznaczone na zielono są wykonywane jednocześnie przez różne jednostki wykonawcze w jednym potoku. Jednostki nie pozostają bezczynne, tylko natychmiast rozpoczynają obsługę kolejnej instrukcji, nawet jeśli pierwsza nie została ukończona. Zostanie ona dokończona przez inne jednostki wykonawcze. W pewnym momencie na każdy cykl zegara będzie przypadać jedna ukończona instrukcja. Na powyższym rysunku dopiero po 5 cyklu schodzi w całości ukończona pierwsza instrukcja. W 6 cyklu otrzymamy ukończoną drugą instrukcję. Potokowość ma sens jedynie w przypadku jednakowych lub podobnych instrukcji przetwarzających różne dane. W szczególności chodzi tu o pętle.

Współbieżność i równoległość cd. Spis treści Potokowość często przedstawia się jak taśmę produkcyjną. W istocie jest to trafne porównanie. Jeśli wszystkie instrukcje są jednakowe, to wykonanie jednej z nich wymaga przejścia przez wszystkie, potrzebne stopnie (etapy) potoku. Ze względu na jednoczesną pracę wszystkich stopni, wykonywanych jest wiele instrukcji, z których każda jest w innym stadium wykonania. Wątek to ciąg instrukcji. Wielowątkowość to cecha systemu operacyjnego - Nie wszystkie elementy układu wykonawczego są jednakowo wykorzystywane przez jeden wątek. W czasie bezczynności mogą one wykonywać obliczenia dla innego wątku. Potokowość wykorzystuje regularność instrukcji, a wielowątkowość bezczynność niektórych jednostek. Hyper-threading (hiperwątkowość) to implementacja wielowątkowości opracowana przez firmę Intel. Hyper-threading dawała średnie rezultaty. W niektórych programach można było uzyskać wzrost wydajności o ok. 30%, ale czasem wielowątkowość spowalniała pracę. Stąd Intel zrezygnował z tej technologii w architekturze Intel Core. Jej unowocześnioną wersję zastosowano na powrót w architekturze Nehalem. Superskalarność to wykonywanie w jednym cyklu więcej niż jednej instrukcji, co sprowadza się po prostu do kilku jednostek wykonawczych (kilku potoków).

Współbieżność i równoległość cd. Spis treści Współbieżność a równoległość) Współbieżność to przetwarzanie gdzie wiele zadań jest wykonywanych naraz. Obserwujemy podział czasu procesora, np. w ciągu 3 milisekund jedna jest przeznaczona na obsługę programu A. Kolejna na program B i ostatnia na program C. Taki cykl 3 milisekund oczywiście cały czas się powtarza, co daje złudzenie, że programy A, B i C są wykonywane równolegle. Równoległość polega na niezależnym i jednoczesnym rozwiązywaniu problemów. Współbieżność i równoległość to jedno z podstawowych założeń przy budowie wydajnych systemów. Czasami program może być konstruowany bardzo dziwnie by wymusić zachowanie współbieżne lub równoległe. Istnieje związek pomiędzy architekturą, algorytmem i problemem obliczeniowym. Na pierwszym slajdzie po spisie treści wspomniano, że modyfikacja listy rozkazów pod konkretny problem przyspieszy jego rozwiązanie. Obecnie procesory cechuje wielordzeniowość. Każdy rdzeń może niezależnie od pozostałych zająć się konkretnym problemem. Ale przetwarzanie równoległe przyspiesza jedynie tą współbieżną część programu, tzn. nie zwiększa szybkości działania programu całkowicie sekwencyjnego (czyli takiego, w którym każda instrukcja musi zostać wykonana jedna po drugiej). Najbardziej problematycznym w dzisiejszych czasach jest przetwarzanie macierzy, co wiąże się zazwyczaj z naprzemiennym dodawaniem i mnożeniem. Dlatego współczesne procesory są kilku drożne, tj. w ALU są jednostki odpowiedzialne za dodawanie i mnożenie osobno.

Współbieżność i równoległość cd. Spis treści VLIW (Very Long Instruction Word) to nazwa technologii architektur procesorów charakteryzująca się maksymalnym zredukowaniem mechanizmów zwiększających równoległość w strukturze logicznej procesora. Całą złożoność przepływu sterowania w procesorze przerzucono na kompilator. Przejście na taką strategię wymagało podania procesorowi odpowiednich informacji sterujących. Kompilator musi więc grupować instrukcje w „paczki” – bardzo długie słowa, stanowiące jeden rozkaz. Jedna taka paczka zawiera zestaw instrukcji, które mają zostać wykonane równolegle oraz informacje dla jakich jednostek wykonawczych są one przeznaczone. Modele programowania równoległego) Z pamięcią rozproszoną – zalecany, jeśli korzystamy z wielu komputerów z wieloma procesorami. Rozwiązanie bardziej pracowite dla programisty, ale istotnie skracające czas oczekiwania. Trudność polega na tym, że wyniki jednego ciągu instrukcji mogą wpływać na inny ciąg, a nie są dla niego dostępne. Programista musi sam opracować wymianę komunikatów pomiędzy procesami. Z pamięcią wspólną (Shared Virtual Memory) – łatwiejszy w implementacji, ale wyniki są mniej spektakularne. Stopień komunikacji między procesami określa ich granulacja (drobnoziarnistość). Wysoka granulacja procesów to duża ilość komunikatów pomiędzy nimi.

Procesor | Technologie Spis treści Technologia (tu) określa typ instrukcji i sposób ich realizacji. Różne architektury procesorów są oparte o daną technologię, stąd zwykło się mówić np. „architektura RISC”. Wyróżniamy trzy podstawowe technologie: CISC (Complex Instruction Set Computers) – charakteryzuje się występowaniem złożonych i specjalistycznych rozkazów, przez co aparat dekodujący rozkazy był bardzo skomplikowany. Instrukcje potrzebują na wykonanie od kilku do kilkunastu cykli zegara. Lista rozkazów była złożona i obszerna. Programy dla procesorów tej technologii były mniejszego rozmiaru, co w czasie zastosowania CISC było istotne (era komputerów o małej pamięci masowej). RISC (Reduced Instruction Set Computers) – założeniem tej technologii jest zredukowanie listy rozkazów do niezbędnego minimum, oraz uproszczenie każdego z nich. Uprościło to znacznie dekoder rozkazów, a programiście dało większą kontrolę nad programem. Wszystko to kosztem zwiększenia objętości kodu źródłowego programu, co jednak w czasach pojemnych pamięci masowych nie stanowi problemu. RISC zwiększyło także rozmiar rejestrów, co zmniejszyło ilość odwołań do pamięci. Obecnie popularne procesory Intela z punktu widzenia programisty są widziane 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. EPIC (Explicitly Parallel Instruction Computing) – najnowsza technologia oparta na równoległości. Wykorzystuje technologię VLIW, przez co równoległość jest definiowana już podczas kompilacji programu – jawne programowanie równoległe. Odpowiednia konstrukcja kompilatora umożliwia analizę relacji pomiędzy instrukcjami a danymi. Występuje jawne planowanie opóźnień wykonania, ładowania pamięci, dostępu do cache itp. co daje lepsze rozplanowanie wykonania zadania. Ponieważ wiele dzieje się na poziomie kompilacji, sama architektura procesora jest w zasadzie uproszczona. Tranzystory mogły zostać przeznaczone na rozbudowę pamięci czy zwiększenie liczby jednostek wykonawczych. Każda instrukcja przekazywana do jednostek wykonawczych jest znakowana jako tzw. absolutna (niezależna od innych) lub predykowana.

Procesor | Technologie cd. Spis treści Predykcja to inaczej prognozowanie. Zastosowana by móc przewidywać w którą stronę pójdzie program z rozgałęzieniami (warunkowy) co w założeniu ma przyspieszyć jego wykonanie. Predykcja usuwa rozgałęzienia i umożliwia równoległe przetwarzanie. Dzisiejsze procesory zawierają coraz doskonalsze aparaty spekulacji odpowiedzialne za predykcję. Technika ta jest w szczególności stosowana w technologii EPIC. Predykcja wspomaga potokowość, ponieważ przewiduje odstępy od regularności w programach. A teraz trochę historii (kolejne 3 terminy choć stare, uchodzą za ważne w informatyce): MMX (MultiMedia eXtensions lub Matrix Math eXtensions) to zestaw 57 instrukcji dla procesorów Pentium i zgodnych. Rozkazy MMX mogą realizować działania logiczne i arytmetyczne na liczbach całkowitych. Programy wykorzystujące rozkazy MMX były o wiele szybsze od analogicznych programów wykorzystujących zwykłe rozkazy procesora. Jednak należy mieć na uwadze, iż MMX jest przeznaczony do szczególnych zastosowań, gdzie przetwarzane są duże ilości danych przez jeden określony algorytm (Single Instruction Multiple Data – SIMD) - a więc na ogół będzie to obróbka dźwięku i obrazu. SSE (Streaming SIMD Extenstions) to zestaw 51 instrukcji wprowadzony w 1999 roku po raz pierwszy w procesorach Intel Pentium III. SSE daje przede wszystkim możliwość wykonywania działań zmiennoprzecinkowych na 4 elementowych wektorach liczb pojedynczej precyzji. Rozszerzeniem tego zestawu jest SSE2, 3 oraz 4. 3DNow! - rozszerzenie architektury procesorów x86 stworzone przez firmę AMD, znacznie zwiększające wydajność obliczeń zmiennoprzecinkowych, potrzebnych do odtwarzania grafiki trójwymiarowej i multimediów. Zawiera zestaw 21 nowych instrukcji zmiennoprzecinkowych typu SIMD. Dzięki tej innowacyjnej technologii AMD zyskało dużą popularność wśród europejskich graczy. Drugie rozszerzenie nosi nazwę 3DNow! Professional zawierające dodatkowo wszystkie instrukcje intelowskiego SSE i wprowadzono je w procesorach serii Athlon XP.

Procesor | Architektury Spis treści Mówiąc o procesorach możemy omawiać ich parametry, budowę, zastosowane technologie. Wspominamy o rodzinie lub linii procesorów. W szczególności mówimy o rodzinie (nazwie kodowej rdzenia) procesorów, generacji, danej architekturze bazującej na pewnych technologiach. Np. Intel Core 2 Quad Q6600 (bardzo dobrze się go podkręca ) to generacja Intel Core 2 o architekturze Intel Core z rdzeniem Kentsfield. Wykonany jest w technologii RISC/EPIC. Podsumowując) O budowie, produkcji i parametrach procesora mówi jego proces technologiczny. Technologia określa tu typ instrukcji i sposób ich realizacji (słownikowa def. technologii jest dużo bardziej ogólna). W oparciu o daną technologię powstają architektury określające jeszcze dokładniej budowę procesorów oraz ich parametry i osiągi. Mówimy, że architektura implementuje daną technologię. Mówimy o technologii CISC, RISC, EPIC wykorzystującej VLIW, co oznacza, że procesor wykonuje rozkazy w pewien ustalony sposób. Powiemy, że procesor wykorzystuję technologię potokowości, wielowątkowości, superskalarności, SSE3, które wprowadzając pewne usprawnienia zwiększają wydajność pracy. Na stronie http://www.top500.org można przeglądać listy najwydajniejszych komputerów na świecie. W 2010 roku najlepszy komputer w Polsce zajął 161 miejsce. Mowa tu o ACK Cyfronet AGH w Krakowie. Ponad 400 z tych 500 maszyn wykorzystuje procesory Intela, stąd następne slajdy będą dotyczyły architektur intelowskich.

Procesor | Architektury cd. Spis treści X86 (IA-32) to architektura od Intela zawierająca pewien zestaw instrukcji. To AMD pierwszy rozwinął ten zestaw o instrukcje 64-bitowe tworząc AMD64. W intelowskiej architekturze X86-64 są nałożone dodatkowe instrukcje umożliwiające obsługę 32- i 64-bitowych aplikacji. W rozwiązaniach serwerowych Intel stawia na IA-64 (Intel Architecture) od podstaw przygotowaną do pracy z 64-bitowymi instrukcjami. Architektura Intel NetBurst obejmowała procesory Intel Pentium 4 oraz serwerową linię Xeon. Posiada wydłużony do 20 etapów potok przetwarzania – zwiększa to znacząco wydajność procesora pozwalając na stosowanie wysokich częstotliwości (technologia hiperpotokowa). Charakteryzuje się dużym zużyciem energii. Architektura Intel Core cechuje się niskim zużyciem energii (przez zredukowanie wysokich częstotliwości – zamiast jednej długiej jednostki potokowej, kilka krótszych – postawiono na równoległość) oraz zastosowaniem instrukcji 64-bitowych. Generacja Intel Core 2 kładzie nacisk na zwiększenie ilości pamięci podręcznej oraz liczby rdzeni. Sporym ulepszeniem w stosunku do dwurdzeniowych procesorów Pentium 4 jest zastosowanie wspólnej pamięci cache dla obu rdzeni procesora - nie jest konieczna wymiana komunikatów. Architektura Nehalem obejmuje generacje Core i3, Core i5 oraz Core i7. Architektura ta jest implementacją architektury x86-64. Cechy charakterystyczne Nehalem to zintegrowany dwukanałowy kontroler pamięci DDR3 (dostęp do pamięci jest bezpośredni i nie przechodzi przez chipset), zintegrowany GPU (Graphics Processing Unit) dedykowany obliczeniom graficznym, na powrót zastosowanie technologii Hyper-threading, nowa szyna systemowa QPI oraz siedem nowych instrukcji SSE4.

Procesor | Architektury cd. Spis treści Architektura serwerowa Itanium choć była klasy IA-64 wydajność jej procesorów była zawodem. Architekturę opracowała firma Intel przy współpracy z Hewlett-Packard. Itanium 2 stosuje technologię EPIC z aparatami spekulacji. Itanium 2 jest bardziej dopracowanym rozwiązaniem od swojego poprzednika i nie sprawia już zawodu, wręcz daje powody do dumy. Zaawansowany programista może w pełni wykorzystać jego zasoby sprzętowe, gdyż EPIC przekazuje zarządzanie jednostkami wykonawczymi kompilatorowi. Intel stosuje strategię: w jednym roku zmiana procesu technologicznego, w następnym architektury. Unika w ten sposób niestabilizacji obu czynników. Intel jest twórcą także kompilatorów o wysokim stopniu optymalizacji dla swoich architektur. http://developer.intel.com/software/products/perflib

Procesor | Tendencje rozwojowe Spis treści Prawo Moore’a – co 2 lata liczba tranzystorów podwaja się dążąc ku mikroprocesorowi z miliardem tranzystorów. Jak widzimy prawo Moore’a ma swoją datę ważności, co więcej magiczna liczba „miliard” stała się już rzeczywistością, dlatego obecnie podaje się zmodyfikowaną wersję tego prawa: „Liczba rdzeni podwaja się co 2 lata”. Obecnie liczba tranzystorów oczywiście zwiększa się, ale nie przekłada się to na częstotliwość, ani liczbę rozkazów na cykl. Rozbudowywania jest pamięć podręczna oraz liczba rdzeni. Korzystając z informacji już wcześniej przedstawionych można wywnioskować, że przyszłość nie będzie szła ścieżką zwiększania częstotliwości. Powody: wyższa częstotliwość to większe zużycie energii i nagrzewanie układów. Poza tym nie można zwiększać częstotliwości w nieskończoność, ze względu na fizyczne możliwości produkcji (ścieżki osiągają szerokości kilku średnic atomów). Współczesnym trendem rozwojowym jest podnoszenie liczby rdzeni oraz pojemności pamięci podręcznej. Dostęp do pamięci podręcznej jest stukrotnie szybszy niż do pamięci operacyjnej. Lokalność danych jest więc kluczem do efektywnego przetwarzania. Procesy złożone będą rozbijane na jak najwięcej składowych równoległych. Zamiast więc jednej jednostki o dużej mocy, będzie stosowanych kilka o mniejszej częstotliwości. Architektura 64-bitowa na dobre zadomowi się w Desktopach, natomiast w serwerach zostanie wyparta przez systemy 128-bitowe. Potokowość, wielowątkowość i superskalarność są już podstawowymi technologiami, bez których nie obejdzie się żaden procesor. Obsesja na punkcie lokalności sprawia, że procesory nie potrzebują już chipsetów do komunikowania się z pamięcią, a obliczenia multimedialne potrzebne w trybie natychmiastowym wykonują same zamiast wysyłać je do karty graficznej. Zintegrowane systemy RAS służące odtworzeniu pracy po awarii zapewniać będą ciągłość pracy. Procesory serwerowe Xeon z serii Nehalem-EX Overview będą posiadały 8 rdzeni i nawet 24 MB pamięci podręcznej. Platforma Play-Station 3 dysponuje dziewięcioma rdzeniami. Eksperymentalna architektura Intel Polaris będzie obsługiwać aż 80 rdzeni.