efektywność =
Sterowanie {pamięć mikrokodu) zawiera układ szeregowania operacji i pamięć ROM mikrokodów. Układ steruje potokami stałoprzecinkowymi, zmiennoprzecinkowym, obsługą wyjątków, pułapek i przerwań. Podwojona stałoprzecinkowa jednostka arytmetyczno-logiczna ALU pracuje jednak z pojedynczym plikiem rejestrowym
Układ stronicowania jest załączany ustawieniem bitu PO w rejestrze CRO i zawiera osobne bufory dla każdej pamięci podręcznej. Każdy bufor antycypacji translacji umożliwia jednoczesną obsługę dwóch adresów liniowych czyli jednoczesną translację adresu strony dla obu potoków Układ umożliwia obsługę stron o rozmiarze 4kB (12 bitowy adres na stronie, dwupoziomowa translacja adresu strony) łub 4MB (22 bitowy adres na stronie, 10 bitowy adres strony, translacja adresu jednopoziomowa)..
Jednostka zmiennoprzecinkowa ma 3 osobne bloki dodawania, mnożenia i dzielenia, co pozwała przyspieszyć wykonanie złożonych instrukcji zmiennoprzecinkowych.
Potokowe wykonanie instrukcji
Elementami struktury funkcjonalnej procesora Pentium wpływającymi na szybkość przetwarzania sa
• dedykowana pamięć podręczna kodu
• blok antycypacji pobierania kodu
• układ prognozy skoku
• podwojona potokowa jednostka stałoprzecinkowa
• połolowa jednostka zmiennoprzecinkowa
Linia kodu pobrana z pamięci podręcznej kodu łub w przypadku chybienia z pamięci zewnętrznej (podręcznej lub głównej) jest przepisywana do aktywnej kolejki rozkazów. Pobranie jednej linii z pamięci podręcznej (32 bajty) następuje każdorazowo, gdy w Ki for ze jest dość wolnego miejsca. 64-bajiowa pojemność każdego bufora zapewnia wyeliminowanie zwłoki w pobieraniu kodów kolejnych instrukcji.
Dwie kolejne instrukcje z początku bufora FIFO (kolejki) są przesyłane jednocześnie do układów wstępnego dekodowania Dl obu potoków i w razie stwierdzenia możliwości jednoczesnego wykonania są kierowane współbieżnie do obu potoków. Instrukcje wykonywane współbieżnie są synchronizowane. Wstrzymanie któregokolwiek z potoków powoduje jednoczesne wstrzymanie drugiego potoku. Jeśli instrukcje muszą być wykonane sekwencyjnie, wówczas usuwana jest instrukcja z jwtoku V i kierowana ponownie do potoku U wraz z kolejną instrukcja kierowaną do potoku V.
Jeżeli którakolwiek z jednocześnie dekodowanych instrukcji jest instrukcją rozgałęzienia naslępuje uaktywnienie układu prognozy rozgałęzienia (branch prediction) Jeśli rozgałęzienie jest przewidywane, to bufor kolejki jest przełączany i kolejne instrukcje, począwszy od adresu docelowego rozgałęzienia są kierowane do innej kolejki
Jeśli prognoza była trafna, lo kolejne instrukcje są pobierane do bloków wstępnego dekodowania z aktywnej kolejki. Jeśli jednak prognoza była błędna, co zostaje stwierdzone dopiero w fazie wykonania rozkazu, wówczas i kolejne instrukcje, począwszy od adresu docelowego rozgałęzienia są kierowane do innej kolejki
Jeśli prognoza była trafna, lo kolejne instrukcje są pobierane do bloków wstępnego dekodowania z aktywnej kolejki. Jeśli jednak prognoza była błędna, co zostaje stwierdzone dopiero w fazie wykonania rozkazu, wówczas i kolejne instrukcje, począwszy od adresu docelowego rozgałęzienia są kierowane do innej kolejki.
Jeśli prognoza była trafna, lo kolejne instrukcje są pobierane do bloków wstępnego dekodowania z aktywnej kolejki. Jeśli jednak prognoza była błędna, co zostaje stwierdzone dopiero w fazie wykonania rozkazu, wówczas i kolejne instrukcje, począwszy od adresu docelowego rozgałęzienia są kierowane do innej kolejki.
Jeśli prognoza była trafna, to kolejne instrukcje są pobierane do bloków wstępnego dekodowania z aktywnej kolejki Jeśli jednak prognoza była błędna, co zostaje stwierdzone dopiero w fazie wykonania rozkazu, wówczas musi nastąpić ponowne przełączenie kolejek, opróżnienie kolejki błędnie wypełnionej oraz kolejnych rozkazów z drugiej kolejki (zostały one umieszczone lam przed przełączeniem). W takim wypadku potok U (V) musi być wstrzymany na 3 (4) takty (instrukcje w fazach Dl, D2 oraz EX powinny być unieważnione) Podobna sytuacja występuje przy nieprawidłowej prognozie braku skoku. Powstaje wtedy dodatkowa zwłoka na wypełnienie aktywnej kolejki nowymi instrukcjami Po wykonaniu rozkazu rozgałęzienia, niezależnie od trafności prognozy, w układzie prognozy następuje uaktualnienie historii skoków
Prognoza skoku jest dokonywana na podstawie zawartości bufora adresów docelowy ch rozgałęzień BTB {branek target buffer) Bufor len jest czlerodrożną pamięcią monitorującą (Inok-aside) o 256 wejściach Każde wejście zawiera:
• bit ważności wejścia
• dwa bity historii rozgałęzienia
• adres źródłowy rozkazu rozgałęzienia
Szansa rozgałęzienia jest kodowana na parze bitów, której przypisywane są odpowiednio poziomy:
• bardzo prawdopodobny (strongfy taken. ST)
• prawdopodobny {weakly taken, WT)
• małoprawdopodobny {weakly not taken,WNT)
• nieprawdopodobny {strongly not taken, SNT)
Rozgałęzienie jest prognozowane przy wyższych poziomach szansy wykonania (prawdopodobny lub bardzo prawdopodobny). Wykonanie skoku powoduje podwyższenie, nic wykonanie obniżenie poziomu szansy jego wystąpienia (jeśli jest to możliwe). Gdy adres jest wpisany BTB, pierwszą prognozą jest „nieprawdopodobny” (SNT). nawei w przypadku skoku bezwarunkowego. Po pierwszym wykonaniu rozgałęzienia adres rozkazu rozgałęzienia jest wpisywany do bufora a bity historii ustawiane jako „bardzo prawdopodobny” (ST) Trafna pierwsza prognoza nie wystąpienia rozgałęzienia nie powoduje wpisu do bufora
Miarami oceny systemów równoległych są przyśpieszenie i efektywność Przez przyśpieszenie będziemy rozumieli iloraz czasu wykonania pewnego zadania na un i procesorze (maszynie wyposażonej w jeden procesor) do czasu wykonania tego zadania na komputerze wieloprocesorowym.
r
t
gdzie K jest czasem wykonania zadania na uniproccsor/.e (maszynie wyposażonej w jeden procesor} a lm jest czasem wykonania tego samego 2ndania nn maszynie wieloprocesorowej
Przyjęte założenia:
• la sama technologia wykonania wszystkich procesorów
• maksymalne przyspieszenie - liniowe
Przez efektywność systemu wieloprocesorowego będziemy rozumieli iloraz przyspieszenia przez ilość procesorów.
N
gdzie jV oznacza ilość procesorów w systemie wieloprocesorowym Opis wybranych klas komputerów
2.1 Maszyny typu SIMD - cechy szcz.ególne.
• działają na wektorach danych
• każdy procesor ma swój rejestr adresowy
Program na maszynę typu SIMD składa się zazwyczaj z części sekwencyjnej i części, która może być zrównoleglona.
2.2 M1MD
Architektura M1MD wykorzystywana jest przy budowie mainfratneów (superkomputerów), które często służą jako serwery plików, systemy on-linc, lub są wykorzystywane do obliczeń naukowo-projektowych.
Wśród komputerów o architekturze M1MD można wyróżnić komputery w których procesory są przyłączone do wspólnej magistrali i pamięci (maszyny typu SMP - Symetrie MuhiProcesor) i komputery gdzie procesory są połączone siecią połączeń (maszyny typu MIT - Masiv!y Paraller Pmceson).
2.2 t SMP
Typowa ilość procesorów w komercyjnych systemach SMP waha się od 2 do 32 Dużą zaletą łych systemów jest łatwość implementacji wspólnej przestrzeni adresowej, gdyż systemy te posiadają wspólną pamięć. Z kolei dużą wadą tych systemów jest nieskalowalność wynikająca z wąsktego gardła (bottle neck) jakim jest przepustowość magistrali rXxlalkowo w systemach tych każdy procesor ma swoją pamięć podręczną która zawiera kopie wspólnej pamięci Konieczne zatem jest podglądanie (snooping) wszystkich transferów na magistrali umożliwiające wychwycenie modyfikowanych linii, których kopie aktualnie znajdują się w cache’u danego procesora w celu unieważnienia tych linii.
Typową strategią zapisu w razie trafienia linii w pamięci podręcznej jest zapis zwrotny (wriie back) Realizuje się także strategię nazywaną write Inualielote, która polega na tym, że procesor, który chce zapisać lokalną kopię linii , przed zapisem wystawia na magistialę sygnał „imalidate" unieważniający wszystkie inne lokalne kopie tej linii a następnie realizuje zapis Próba odczytu zmodyfikowanej linii przez inny procesor spowoduje błąd ponieważ linia została wcześniej unieważniona i konieczny jest odczyt bezpośrednio z pamięci głównej, która wcześniej musi zostać zaktualizowana (strategia write hack).
Obsługa sekcji krytycznej.
Mechanizm synchronizacji dostępu poszczególnych procesorów (procesów) do wspólnych danych wymaga niepodzielnej operacji swap zapewnianej na poziomie hardware'u i jest zazwyczaj realizowany metodą aktywnego czekania (busy waiting).
2.2.2 MPP
W systemach z siecią połączeń ilość węzłów (procesorów) waha się między 30 a 1024. Sieć połączeń realizuje komunikację między węzłami (procesorami). W systemach MPP przestrzeń adresowa może być oddzielna dla każdego procesora lub wspólna i wówczas mówimy pamięci typu DSM (Distrihutet Shared Memory). Istnieje wiele możliwych sposobów połączenia procesorów między sobą a najbardziej popularne to:
• gnd
• 2D torus
• pierścień
• hupereube
Do opisu sieci połączeń służą następujące wielkości:
• stopień, definiowany jako ilość połączeń dochodzących do każdego procesora
• średnica, definiowana jako odległość najdalszych węzłów sieci
• przekrój definiowany jako minimalna ilość połączeń, którą można podżielić sieć na dwie równe części.
Wykład 10- Transputery Taksonomia Flynna Przetwarzanie informacji można opisać jako przenikanie strumieni przetwarzanych i strumieni napływających danych W klasycznym modełu von Neumana, strumień in strumień danych są pojedyncze. Źródłem synchronizacji jest strumień instrukcji, które żądają |
łodzaj sieci |
Stopień |
Średnica |
Przekrój | |||
Pełna |
.*ć każdy z każdym |
N-l |
1 |
(tI | |||
nslrukcji trakcji i danych. |
pierścień |
2 |
N .2. |
2 | |||
instrukcji (Insiruction stream) operujących na widu strumieniach danych (Data snram) instrukcji może być pojedynczy (Single) łub wielokrotny (Multiple). Złożenia tych sm podstawą klasyfikacji Flvnna. Klasyfikacja ta obejmuje tylko komputery svnchro przepływem rozkazów W taksonomii tej komputer o architekturze klasycznej jest maszyną typu SISI Insiruction Single Data) W maszynach typu SIMD (Single Insiruction Multiple Data) (Miltiple Insiruction Multiple Data), zwanych także komputerami równoległymi, każdy danych jest przetw arzany przez inną jednostkę wykonawczą. Generalnie Flynn podzielił kom cztery grupy: |
Strumień nieni są |
grid |
4 |
2(Vy-i) |
Jn | ||
(Single MIMD |
2D toras |
4 |
JŁ 2 |
2J~N | |||
strumień )utery na |
hypereube |
log2 N |
log2 N |
N 2 |
SłSD - ( Single Insiruction Single Dala) SIMD - {Single Insiruction Multiple Dota) MISD - (Multiple Insiruction Single Data) MIMD - (Multiple Insiruction Multiple Dota)
gdzie N - ilość procesorów.
Przykładem komercyjnego systemu MPP może być Cray T3D do budowy którego wykorzystano procesory Alpha DEC, 150 Mflops (do 2048 procesorów), każdy procesor posiada 64