Twoim problemem jest to, że powszechną NICOŚĆ mylisz z osobistą PUSTKĄ
SMP (Symmetric Multiprocessor)
û Sprzętowa architektura komputera
û Dwa lub więcej procesorów o podobnych możliwościach
û Wspólna pamięć główna i urządzenia we-wy
û Czas dostępu do pamięci taki sam (!) dla każdego procesora
û Wszystkie procesory mogą realizować te same funkcje (stąd symmetric)
û Sterowanie przez zintegrowany system operacyjny
û Możliwość stopniowej rozbudowy
û Uszkodzenie jednego procesora powoduje tylko obniżenie wydajności
û Obsługa współdzielenia zasobów poprzez magistralę
NUMA
û Rodzaj architektury
û Charakteryzuje się niejednorodnym dostępem do pamięci (czas dostępu dla różnych procesorów jest różny)
û Ma to służyć polepszeniu efektywności i nie przeciążaniu magistrali (według twórców dla aplikacji reprezentatywnych, które posiadają większość danych lokalnie w cache działa wydajniej niż SMP)
û Wady: słaba przenoszalność pomiędzy SMP a (CC)-NUMA, dostępność
MESI
û Główne rozwiązanie problemu spójności pamięci podręcznych (jeden procesor aktualizuje cache, inne procesory wówczas mają nieaktualne dane – stąd problem)
û Każdy cache znakowany przez 2 bity stanu:
zmodyfikowany – wiersz w cache został zmodyfikowany i jest osiągalny tylko tam,
wyłączny – wiersz w cache jest identyczny jak ten w głównej pamięci i nie występuje w innych cache,
wspólny – wiersz w cache taki sam jak w pamięci i głównej i może występować w innych pamięciach,
nieważny – wiersz w cache nie zawiera danych ważnych
û możliwości operacji na danych: chybienie / trafienie odczytu / zapisu
Failover i Failback
û FO (przejmowania danych) - w odniesieniu do klastrów: funkcja przełączania aplikacji i zasobów danych z systemu uszkodzonego do inne go systemu w klastrze
û FB (przywracanie) – w odniesieniu do klastrów: funkcja przywracania aplikacji i zasobów danych do systemu początkowego, gdy zostanie on naprawiony
Klaster
û Alternatywna dla SMP i NUMA
û Bardziej wydajny i dostępny – stosowany w serwerach
û Grupa połączonych kompletnych (mogących funkcjonować w oderwaniu od klastra) komputerów (nazywanych węzłami), tworzących zasób obliczeniowy imitujący jedną maszynę
û Możliwe jest tworzenie bardzo dużych klastrów przewyższających możliwościami największe samodzielne jednostki
û Istnieje możliwość nieinwazyjnego stopniowego powiększania klastra
û Każdy węzeł klastra jest kompletny – jego odłączenie nie powoduje uszkodzenia systemu
û Bardzo dobry stosunek cena / wydajność
û Rodzaje:
rezerwa bierna – pseudoklaster, istnieje dodatkowy serwer, który włącza się dopiero gdy serwer główny pada (przestaje wysyłać sygnał „bicia serca”)
dodatkowy czynny serwer – bardziej złożony, dodatkowy serwer nie „śpi” i również przetwarza dane
odrębne serwery – serwery pracują na oddzielnych dyskach, większa dostępność, większe obciążenie łącza (ciągłe kopiowanie danych)
serwery połączone z dyskami – praca na wspólnym dysku + własne dyski, mniejsze obciążenie łącza, wymaga tworzenia kopii RAID
serwery współużytkujące dyski – wiele serwerów ma jednocześnie dostęp do dysków, wymaga mechanizmów blokowania, niskie obciążenie łącza
û Duży plus klastrów to zasadnicza jednolitość: sterowania, interfejsów, przestrzeni pamięci, hierarchii plików ...itd.
CISC
û Architektura mikroprocesorów o pełnej liście rozkazów
û Dużo ilość, skomplikowanych (zajmujących kilka cyklów procesora) rozkazów
û Duża liczba trybów adresowania (5 do 20), powolny dekoder adresów
û Projektowane głównie po to, by zapewnić odpowiednią współpracę z językami wysokiego poziomu, dążono do uproszczenia kompilatorów i lepszej wydajności
û Stosowane dawniej również ze względów ekonomicznych – teoretycznie programy na architekturę CISC zajmowały mniej miejsca w pamięci, co było bardzo cenne
û Wolniejsze od architektur typu RISC, bo jest duża liczba odwołań do danych w pamięci
û Mniejsza liczba rejestrów
û Różna długość rozkazów
û Łatwiejsze programowanie, krótsze programy
û Droższe w budowie i eksploatacji
û Na każdy rozkaz składa się mikroprogram złożony z mikrooperacji/mikrorozkazów (a każdy mikrorozkaz zawiera sekwencję bitów, która reprezentuje mikrooperację sterującą przemieszczaniem informacji między różnymi podzespołami i rejestrami procesora);
RISC
û Duża liczba rejestrów – operacje typu z rejestru do rejestru, implikują dużo szybsze działanie niż pobieranie danych z pamięci podręcznej
û W dużych rejestrach zmienne lokalne, także globalne – szybsze wykonywanie rozkazów
û Krótkie, proste rozkazy – łatwe do implementacji w procesorze, a jednocześnie będące podstawowym budulcem programów (wykorzystywane w ponad 90% przypadków)
û Jeden rozkaz na jeden cykl – przyspieszenie działania
û Proste tryby adresowania i ich niewielka liczba
û Architektura load-store
û Intensywne wykorzystanie przetwarzania potokowego
û Proste formaty rozkazów
û Rozkazy mają jednakową długość, brak adresowania pośredniego, brak operacji łączących ładowanie / zapis z arytmetyką
û Przykłady realizacji:
MIPS – dodatkowe ALU,która mogłaby współpracować z istniejącymi. Potok wykorzystywany do aktywowania więcej niż jednej operacji. Ciężar zapewnienia poprawności wykonania spoczywa na kompilatorze; usprawnienie obliczeń
SPARC –otwarta architektura RISC, zysk z wyrzucenia sprzętu ze środka procesora a dołączenia wielu rejestrów generalnego przeznaczenia. przełączanie kontekstów, okno z rejestrami, dużo rejestrów
ARM – brak zagospodarowania wolnego miejsca (po redukcji rozkazów) – mniejsza jednostka (zmniejszenie struktury) – mniejsze zużycie energii, mniej wydalanego ciepła – możliwe wyższe obroty –czyli praca z wysokimi częstotliwościami
POWERPC – podobne do MIPS, dodatkowe bloki funkcjonalne (dla floatów np.); rozdzielamy pewne typy operacji i wykonujemy je na oddzielnych jednostkach, aby zrównoleglić obliczenia.
û Porównywanie RISC i CISC jest o tyle niezasadne, iż obie technologie od jakiegoś czasu przenikają się, wpływają na siebie i uzupełniają się
Urządzenie Sterujące
û Jeden z elementu funkcjonalnego obrazu komputera
û Zarządza zasobami komputera i koordynuje działanie jego składników funkcjonalnych w zależności od wprowadzonych poleceń
û Jednostka sterująca CPU – steruje działaniem komputera, składa się z: układów logicznego sterowania, rejestrów i dekoderów jednostki sterującej i pamięci sterującej
Schemat Funkcjonalny Komputera
· Komputer realizuje 4 podstawowe funkcje: przetwarzanie danych, przechowywanie danych, przenoszenie danych, sterowanie
· Jeżeli komputer otrzymuje dane od urządzenia bezpośrednio podłączonego do niego – to jest to proces we-wy, a urządzenie nazywa się peryferyjnym
· Jeżeli przenoszenie danych odbywa się na duże odległości, to proces ten nazywamy transmisją danych
· W komputerze wyróżnia się 4 podstawowe elementy: CPU, pamięć główna, wejście-wyjście i magistrala systemowa
RAID
· Schemat projektowania baz danych dla pamięci wielodyskowych
· Ma zwiększać wydajność (w pewnym sensie także pojemność całościową) pamięci dyskowych, a także polepszać bezpieczeństwo danych
· Jest to zespół fizycznie istniejących napędów dyskowych, widzianych przez OS jako jeden napęd logiczny
· Dane są rozproszone, tworzą tablice
· Implementuje przechowywanie danych o parzystości, co gwarantuje odzyskiwanie danych w wypadku awarii któregoś z napędów
· Istnieje siedem poziomów RAID:
RAID 0 – nie przewiduje redundancji, stos w celu poprawienia wydajności i pojemności, dane rozproszone na wszystkich dyskach w postaci pasków, zwiększa szybkość transferu we-wy
RAID 1 – redundancja osiąga przez powielanie wszystkich danych, takie same dane są równolegle na dwóch dyskach – szybszy odczyt, w razie awarii każde dane posiadają kopię na drugim dysku, wady: wolniejszy zapis i koszt
RAID 2 – dostęp do danych – równoległy, stosowany jest kod Hamminga, mniej kosztowny niż RAID 1, ale nadal kosztowny, stosowany dla tablic o dużej zawodności
· RAID 3 – analogiczny do RAID 2, wymaga tylko jednego dysku redundancyjnego, dostęp równoległy, wykorzystuje obliczanie bitów parzystości (redundancja implementowana za pomocą funkcji XOR)
RAID 4 – dostęp do danych – niezależny, każdy dysk działa niezależnie, mogą być obsługiwane równolegle, dobry w sytuacji, gdy potrzeba szybkich odpowiedzi na żądania we-wy a niekoniecznie dużego transferu, gorsza wydajność zapisu, paski parzystości znajdują się na jednym dysku (wąskie gardło)
RAID 5 – podobny do RAID 4, jednak paski parzystości są rozproszone na wszystkich dyskach
RAID 6 – znaczne polepszenie dostępności, parzystość obliczana jest podwójne, jednak dzieje się to kosztem wydajności i szybkości zapisu
INTEL 8086
· Mikroprocesor ogólnego przeznaczenia
· Dużo bardziej zaawansowany, niż 8080
· 16-bitowy mikroprocesor
· Szersza ścieżka danych, większe rejestry, podręczna pamięć rozkazów
· Mechanizmy pracy wieloprocesorowej
· Segmentacja pamięci
· Rozszerzone możliwości adresowania operandów
· Adresowanie natychmiastowe, rejestrowe, bezpośrednie, pośrednie, indeksowe i bazowe
· Wprowadzenie układu kolejki (pamiętanie 6 bajtów z pamięci w czasie zajętości procesora)
· 2 części: jednostka wykonawcza, zespół łącza z magistralą systemową
· Rozkazy: arytmetyczno-logiczne, przesłań, skoków, obsługi pętli, wywołań i powrotów z podprogramu, dotyczące rejestrów segmentowych ,wykonujące operacje na ciągach słów, wejścia/wyjścia i inne
PIC (16F84A)
· Jednoukładowy komputer stosowany w systemach wbudowanych
· Architektura RISC
· Należy podłączyć do niego zegar i zasilanie
· Zawiera 68 8-bitowych rejestrów, stos (8 wierszy 13-bitowych, ma do niego dostęp licznik programu),
· Peryferyjne: pamięć EEPROM, TIMER, I/O Ports
· Ostatni wpis ze stosu jest wpisywany do Program Counter
· Zbudowany wg paradygmatu von Neumanna, jednak w architekturze Harvardzkiej – gwarantuje to większą szybkość – równoległe pobieranie danych i instrukcji
· Stała długość instrukcji – 14 bitów
WDM
û Typ sterowników typu PnP stosowany od Windowsa 98
û następna VxD, obejmuje wsparciem Windowsy 98- Vista
û Wyróżnia się 4 rodzaje (driver funkcyjny – główny driver, najczęściej napisany przez producenta i niezbędny do działania urządzenia) :
class driver – sterownik funkcyjny, mogący operować na dużej liczbie urządzeń tego samego typu (nie ma potrzeby pisania oddzielnych driverów dla każdej wersji urządzenia), w ujęciu programistycznym class driver może służyć jako baza dla bardziej specjalizowanych sterowników np. typu miniport (udostępnia interfejs)
miniport driver – sterownik funkcyjny do obsługi USB, SCSI, Audio i urządzeń sieciowych
bus driver – sterownik do obsługi magistral, może służyć jako kontroler, adapter czy mostek, może obsługiwać więcej niż jedną magistralę danego typu, używany jest do obsługi choćby USB, PCI, SCSI, FireWire...
filter driver – mogą dodawać i modyfikować funkcje obecnych już sterowników, nie muszą być związane z urządzeniem,
û Wady: wygórowane wymagania dla nauki WDM, brak odpowiedniej współpracy z systemem zasilania, brak wsparcia dla sterowników pisanych czysto w user-mode
Scoreboarding
û Algorytm stosowany w procesorach superskalarnych
û Umożliwia synchronizację potoku i zabezpiecza przed hazardem RAW (wartość nim zostanie zapisana przez poprzednią instrukcję, jest już odczytana przez następną)
û Polega na identyfikowaniu rejestrów procesora jako: ważnych i nieważnych
û Odczyt możliwy jest tylko z ważnego rejestru
û Rejestr oznaczany jest jako nieważny, gdy instrukcja mająca zapisać coś do tego rejestru opuszcza fazę odczytu
û Wówczas inne instrukcje nie mają prawa korzystania z danego rejestru
û Gdy instrukcja opuszcza fazę zapisu, rejestr oznaczany jest jako ważny i dane z rejestru są „odblokowywane” dla innych instrukcji
Algorytm Zastępowania Stron
û Stosowany w stronicowaniu, jako element obsługi braku strony
û W momencie, gdy brakuje wolnych ramek w pamięci należy zwolnić jedną z ramek poprzez zapisanie znajdującej się w niej strony na dysk
û Taki zapis można dokonać tylko wówczas gdy odpowiedni bit (modyfikacji) w ramce jest ustawiony na 1
û Szukaniem strony, która ma być usunięta z pamięci i zapisana na dysk zajmują się różne algorytmy:
FIFO – usuwamy stronę najdłużej znajdującą się w pamięci, prosty, łatwy w implementacji, zagrożenie to błędy - np. anomalia Beladiego
Algorytm Optymalny – usuwamy stronę najdłużej nieużywaną, idealny – teoretyczny – niemożliwy do implementacji
LRU – usuwamy stronę, która nie by...