Architektura komputerów Architektura komputerów

Transkrypt

Architektura komputerów Architektura komputerów
Wykład jest przygotowany dla IV semestru
kierunku Elektronika i Telekomunikacja.
Studia I stopnia
Dr inż. Małgorzata Langer
Architektura
komputerów
Prezentacja multimedialna
współfinansowana przez Unię Europejską
w ramach Europejskiego Funduszu Społecznego
w projekcie
„Innowacyjna dydaktyka bez ograniczeń
– zintegrowany rozwój Politechniki Łódzkiej –
zarządzanie Uczelnią,
nowoczesna oferta edukacyjna
i wzmacniania zdolności do zatrudniania
osób niepełnosprawnych”
Zadanie nr 30 – Dostosowanie kierunku Elektronika i Telekomunikacja
do potrzeb rynku pracy i gospodarki opartej na wiedzy
90-924 Łódź, ul. Żeromskiego 116,
tel. 042 631 28 83
www.kapitalludzki.p.lodz.pl
Prezentacja multimedialna współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego
Rozszerzone funkcje i algorytmy procesorów
•
•
•
•
•
•
Algorytmy szybkiego liczenia
Przetwarzanie równoległe
Nakładki systemu
Bufory instrukcji i wykorzystanie pamięci podręcznej
Przerwania
Pamięć dzielona
Architektura komputerów, część 9
2
Prezentacja multimedialna współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego
Przyśpieszenie dodawania i odejmowania
• Pseudo-równoległy sumator musi czekać na przetworzenie
przeniesienia do najbardziej znaczącego bitu (tzw. Ripple).
Rozwiązaniem jest algorytm CARRY LOOK-AHEAD (CLA)
• Dla każdych 2 bitów o tej samej wadze (ai; bi) można zdefiniować
funkcje:
- generuj Gi= ai . bi (przeniesienie jest generowane tylko dla
(ai . bi )=1
- Pi = ai + bi (suma logiczna)
Suma dla każdego bitu: Si=Pi + Ci-1
(C – przeniesienie)
Przeniesienie dla każdego bitu: Ci = Gi + PiCi-1
• G i P są generowane symultanicznie; jeżeli są dostępne wszystkie
sygnały wejściowe Ci-1 w jednym kroku oblicza się wszystkie Si ;
podobnie Ci – czyli dodawanie dowolnie długich liczb – w 3 krokach
Architektura komputerów, część 9
3
Prezentacja multimedialna współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego
Mnożenie
• Mnożenie zasadniczo jest wielokrotnym dodawaniem – bardzo
wolne
• W systemach binarnych mnożenie przez potęgę 2 można zastąpić
przesuwaniem w rejestrze
• Szybszy od wielokrotnego dodawania może być system
porównywalny z „pisemnym mnożeniem”:
1 0 1 1 x 1 1 0 1 daje cząstkowe iloczyny:
1011
0000
1011
1011
10001111
ILOCZYN
Każdy niezerowy iloczyn cząstkowy – to przesunięcie w lewo
Architektura komputerów, część 9
4
Prezentacja multimedialna współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego
Dzielenie
• Jest to wielokrotne odejmowanie – wolne
• Można je zastąpić przesuwaniem i dodawaniem
• Załóżmy, że dzielimy liczby całkowite: X (dzielna) przez Y (dzielnik),
uzyskując n-bitowy iloraz (Q) i resztę R;
reszta spełnia warunek 0 < R < Y
• Przykładowy algorytm:
Trial & error - z lewej strony dzielnej dopisujemy n-1 zer i
odejmujemy (podpisując od lewej strony) dzielnik; jeżeli wynik jest
ujemny – dodajemy go z powrotem i najbardziej znaczący
bit ilorazu = 0, jeżeli dodatni =1 i nie dodajemy; przesuwamy
dzielnik w prawo, aż najmniej znaczące bity
dzielnika i dzielnej będą w tej samej kolumnie
• Inny algorytm: Nonrestoring division
Architektura komputerów, część 9
5
Prezentacja multimedialna współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego
Algorytmy typu ‘pipelining’ (przesyłanie potokowe; kanały
pośredniczące)
• Przykład: dodawanie liczb zmiennoprzecinkowych
(0.5 x 10-3) + (0.75 x 10-2) =
krok pierwszy: wyrównanie wykładników: 0.05 x 10-2 + 0.75 x 10-2
krok drugi: dodanie mantysy: = 0.80 x 10-2
jeżeli mantysa byłaby większa niż 1, trzeba byłoby dodać krok trzeci
– normalizacja mantysy
• PIPELINE – każdy z tych trzech kroków otrzymuje swoje oddzielne
sygnały sterujące i posiada rejestry do przechowywania danych
pomiędzy krokami; kiedy operandy wędrują do kroku następnego –
w kroku poprzednim mogą już być przetwarzane następne liczby!
• Przy N krokach przyspieszenie wynosi 3N/(3+N-1)
Architektura komputerów, część 9
6
Prezentacja multimedialna współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego
VLIW – very long instruction word
• W architekturach VLIW bardzo długie słowo może zawierać kilka (4
do 8) instrukcji. Po pobraniu słowa, instrukcje te mogą być
rozdzielone pomiędzy różne obwody, do przetworzenia
równoległego (procesory superskalarne, takie jak Pentium)
• Przykład: dodawanie iloczynów (cząstkowe składniki – iloczyny –
mogą być obliczane równolegle)
• Architektury takie wymagają bardzo złożonych kompilatorów; jeżeli
zmieni się konfiguracja sprzętu – NALEŻY DOKONAĆ PONOWNEJ
KOMPILACJI
Architektura komputerów, część 9
7
Prezentacja multimedialna współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego
Koprocesor
• Dodatkowy procesor, mający zaimplementowane sprzętowo funkcje
algebraiczne i niektóre logiczne, co znacznie przyspiesza ich
wykonywanie
Procesory peryferyjne
• Przejmują większość czynności związanych z I/O
Architektura komputerów, część 9
8
Prezentacja multimedialna współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego
Systemy wieloprocesorowe
•
Struktura Cray X-MP/4
Architektura komputerów, część 9
9
Prezentacja multimedialna współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego
Przyspieszenie cyklu instrukcji
• Cykl czasowy procesora (czas głównego cyklu – major cycle time)
zależy od czasu transferu rejestrów w strukturze magistrali. Jeżeli
jest kilka magistrali, można jednocześnie obsługiwać kilka rejestrów,
co implikuje SYMULTANICZNE GENEROWANIE SYGNAŁÓW
STERUJĄCYCH
• W synchronicznych HCU (Hardwired Control Unit) cykl procesora
jest zdefiniowany przez najwolniejszy transfer rejestru. Nawet
najszybszy transfer zajmie więc tyle samo czasu – pełen cykl
• W asynchronicznych – zakończenie jednego transferu uruchamia
następny, dlatego asynchroniczny HCU może być szybszy niż
synchroniczny (jednak jest dużo trudniejszy w zaprojektowaniu i
wykorzystywaniu, dlatego w praktyce używa się synchronicznych)
• MCU (Microprogrammed CU) jest jeszcze wolniejszy, bo czas
wykonania mikroinstrukcji to suma czasu cyklu procesora plus czas
dostępu do CROM
Architektura komputerów, część 9
10
Prezentacja multimedialna współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego
Nakładanie się instrukcji
•
•
•
Procesor może wykonywać fazę pobierania następnej instrukcji, gdy
odbywa się faza wykonywania poprzedniej
Skoro instrukcja wymaga działania trzech faz: pobrać – zdekodować (lub
obliczyć adres) – wykonać; jednostka sterująca musi posiadać trzy
niezależne moduły – po jednym dla każdej fazy – wtedy można nakładać na
siebie przetwarzanie instrukcji; czasem występuje więcej faz, np. ‘prefetch’
– pobieranie do pamięci cache
Jest to struktura w algorytmie pipeline
I1
I2
I3
E1
E2
E3
E4
D1
D2
D3
D4
D5
F2
F3
F4
F5
F6
WYKONAJ (execute)
DEKODUJ
POBIERZ (fetch)
F1
t1
t2
t3
t4
t5
I4
t6
. . . Zakończone cykle instrukcji
. . . czas
Architektura komputerów, część 9
11
Prezentacja multimedialna współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego
Nakładanie się instrukcji
• Optymalnie od trzeciego cyklu czasowego (t3) kanał (pipeline) jest
pełny i na każdy przedział czasowy zostaje zakończona jedna
instrukcja
• W praktyce nie zawsze można dokonywać każdej instrukcji w
jednakowym czasie i potrzebne są rejestry tymczasowe
• Jeżeli instrukcje są wykonywane w innej kolejności niż pojawiają się
w programie (instrukcje rozgałęzione, instrukcje skoku), należy albo
unieważnić instrukcje, które po takiej instrukcji już weszły w fazę
pobierania lub dekodowania (często stosowane przy instrukcji
warunkowej, bo przecież warunek do skoku może nie zostać
spełniony i „strumień popłynie dalej”), albo nie pobierać instrukcji po
pojawieniu się instrukcji wyboru, dopóki nie będzie znany adres
następnej instrukcji
Architektura komputerów, część 9
12
Prezentacja multimedialna współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego
...
• Problemy pojawiające się przy równoległym wykonywaniu podczas
instrukcji rozgałęzionych nazywane są control hazards
• Dla równoległego wykonywania instrukcji (architektury
superskalarne) potrzebne są algorytmy optymalizacji sterowania
• Opisane mechanizmy nakładania się faz stosowane są również
w MCU, często współpracującymi ze strukturami RISC
• Stosowane są pipeline z 6 fazami wykonywania instrukcji: FETCH
(FI) – DECODE (DI) - CALCULATE ADDRESS (CA) – FETCH
OPERANDS (FO) – EXECUTE (EX) – STORE RESULTS (ST)
• Sterownik kanału musi oszacować wymagania np. na ilość
rejestrów, zanim instrukcja wejdzie do struktury pipeline, aby
uniknąć kolizji (structural hazards)
Architektura komputerów, część 9
13
Prezentacja multimedialna współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego
...
• Data interlocks – jeżeli dane dzielone są pomiędzy fazy w pipeline; tzn
nie można dokonać obliczenia jeżeli jeden z etapów pracuje na danym
zasobie a drugi musi czekać na zakończenie tej operacji.
• Przykład:
Sekwencja instrukcji
wykonywana jest w schemacie pipeline:
Architektura komputerów, część 9
14
Prezentacja multimedialna współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego
Hazard danych
• MPY pobiera operand R2 w cyklu 6, gdy instrukcja LOAD jest
dopiero wykonywana, pobierze więc błędne dane!
• Rozwiązanie: wewnętrzne przekierowanie (internal forwarding)
danych (mechanizm odczytu kieruje R2 do ALU RÓWNOCZEŚNIE
z zapisem do R2,
• Hazard danych występuje w sąsiadujących instrukcjach read/write;
write/read; albo write/write , które przy równoległym wykonywaniu
mogą zmienić kolejność i współdzielony zasób jest błędny dla
instrukcji, która miała być wykonana jako pierwsza a została
wyprzedzona przez instrukcję następną, lub instrukcja odczytu,
która miała nastąpić po zapisie, pobiera zawartość jeszcze nie
zmienionego zapisem zasobu.
Architektura komputerów, część 9
15
Prezentacja multimedialna współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego
Gałęzie warunkowe
• Przewidywanie gałęzi (Branch Prediction) - podczas kompilacji
zostają przewidziane dwie tymczasowe ścieżki - sekwencje
instrukcji – jedna dla warunku spełnionego i druga dla
niespełnionego aż do znacznika końca pętli. Po dojściu do
znacznika wyniki tymczasowe stają się stałe lub są odrzucane
(algorytm stosowany w procesorach Intel)
• Opóźnione wejście w gałęzie (Delayed Branching) – (stosowane
w MCU, zwłaszcza w RISC) – instrukcja docelowa (po wyborze) jest
tylko pobrana, a wykonywane są wszystkie następne i dopiero po
nich docelowa wchodzi w fazę wykonywania. Kompilator zmienia
kolejność instrukcji w przypadku instrukcji rozgałęzionych tak, aby
znalazła się jeszcze wcześniej w pipeline niż w programie.
Zmniejsza to później czas koniecznego opóźnienia, gdy trzeba
czekać na wynik warunku
Architektura komputerów, część 9
16
Prezentacja multimedialna współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego
Gałęzie warunkowe . . .
• Bufor przewidywania gałęzi – mały bufor pamięci, indeksowany
adresem instrukcji rozgałęzienia. Zawiera 1 bit na instrukcję
wskazujący, czy gałąź została wybrana, czy nie. Kanał pobiera
kolejną instrukcję w oparciu o ten bit przewidywania. Idealnie
byłoby, gdyby bufor był wystarczająco duży, aby 1 bit przypadał na
każdą warunkową instrukcję w programie. W praktyce jest to
nierealne i ponieważ do jednego bitu jest przypisanych więcej
instrukcji warunkowych, może to stać się powodem błędów. Inna
nazwa bufora – Tabela historii dekodowania
• Technika historii gałęzi – w tabeli historii przechowuje się
najbardziej prawdopodobny (domyślny) adres przeznaczenia dla
każdej gałęzi (na przykład wybrany przy ostatnim wykonywaniu
programu) i po pobraniu instrukcji wyboru, dalsze wykonywanie
przebiega tą gałęzią, z dużą szansą na sukces.
Architektura komputerów, część 9
17
Prezentacja multimedialna współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego
Przerwania
• Ponieważ wiele instrukcji jednocześnie jest wykonywanych w
sposób nakładkowy, sprzęt i oprogramowanie do obsługi przerwań
jest dość skomplikowane.
• Precyzyjny system przerwań – jeżeli instrukcja nr I generuje
przerwanie - wykonywane są wszystkie instrukcje, które zostały już
pobrane i są w kanałach (czyli I-1 ; I-2 itd...) a wstrzymane te, które
są następne (I+1 ; I+2, ..). Ale przy systemie opóźnionego wejścia w
gałęzie, kolejność instrukcji może być „przemieszana”.
Zrestartowane muszą zostać również gałęzie wstrzymane. To
wymusza utrzymywanie wielu liczników programów. Dodatkowo
kilka instrukcji może jednocześnie generować przerwania, których
kolejność wykonywania może być różna (rozwiązanie – stosuje się
wektor stanu dla każdej instrukcji w kanale)
Architektura komputerów, część 9
18
Prezentacja multimedialna współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego
Odroczenie instrukcji (Instruction Deferral)
• Technika, która zapobiega konfliktowi danych w kanale. Przetwarza
się tak wiele instrukcji, jak jest możliwe na bieżąco i odracza się ich
zakończenie aż do rozwiązania konfliktu danych. Całościowy
przepływ instrukcji jest większy niż całkowite opóźnianie wszystkich
możliwych etapów w kanale
Architektura komputerów, część 9
19
Prezentacja multimedialna współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego
Tryby pracy procesora
• Kernel mode – (tryb jądra systemu) – tryb najwyższego
uprzywilejowania w systemie; OS (w „najbardziej wewnętrznym
jądrze”) ma dostęp i może zmienić dowolny rejestr. OS przełącza
się w tryb jądra przy obsłudze błędu lub wyjątku
• Supervisor mode – (tryb nadzoru) – mniej przywilejów,
wykorzystywany do mniej krytycznych części OS. Przeznaczony dla
systemów warstwowych – „prawdziwe” jądro OS pracuje w trybie
jądra, a pozostałe części (warstwy) OS - w trybie nadzoru; OS ma
również dostęp do pamięci użytkowników, ale nie do adresów
zastrzeżonych dla trybu Kernel
• User mode – (tryb użytkownika) – najmniej uprzywilejowany –
zapobiega wzajemnemu przeszkadzaniu sobie przez użytkowników,
nie ma dostępu do zastrzeżonych adresów
Architektura komputerów, część 9
20
Prezentacja multimedialna współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego
Przetwarzanie równoległe
• Jeżeli aplikacja pozwala na opracowanie algorytmów przetwarzania
ze stopniem równoległości A, język kodowania algorytmu na stopień
L, kompilatory pozostają przy stopniu równoległości C a struktura
sprzętu czyli konstrukcja maszyny pozwala na H, aby
przetwarzanie było najbardziej wydajne, musi być spełniona
relacja:
H>C>L>A
Architektura komputerów, część 9
21
Prezentacja multimedialna współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego
Podział komputerów ze względu na ilość strumieni
• SISD (Single Instruction stream, Single Data stream) – pojedynczy
strumień i instrukcji i danych; maszyny jednostrumieniowe, zawsze
z jednym procesorem
• SIMD (Single Instruction, Multiple Data) - pojedynczy strumień i
instrukcji i wiele strumieni danych – architektury, które posiadają
wiele koprocesorów sterowanych przez jedną jednostkę sterującą
(inna nazwa – procesory wektorowe, procesory macierzowe)
• MISD (Multiple Instruction, Single Data) – pojedynczy strumień
danych jest pod jednoczesnym działaniem wielu strumieni instrukcji
(m.in. wszystkie systemy pipeline)
• MIMD (Multiple Instruction, Multiple Data) – wiele procesorów
(systemy wieloprocesorowe), każdy wykonuje swój strumień
instrukcji i przetwarza swój strumień danych, alokowanych do niego,
albo jeden procesor ale z pełnymi równoległymi kanałami i
równoległymi I/O
Architektura komputerów, część 9
22
Prezentacja multimedialna współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego
MISD - struktura
Architektura komputerów, część 9
23
Prezentacja multimedialna współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego
SIMD - struktura
Architektura komputerów, część 9
24
Prezentacja multimedialna współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego
Wiele strumieni danych – zagadnienia sieci lokalnych
• Protokoły routingu – statyczne i dynamiczne
Routing to mechanizm, który ustanawia ścieżkę pomiędzy dwoma
węzłami transmisji komunikatów
Ścieżka może być ustanawiana na transmisję – dedykowana
(przełączalna – fizyczne połączenie na całą transmisję), lub na
pakiet
W węźle pakiety mogą być wstawiane w bufor (z różną obsługą
kolejek) przed następnym skokiem
• Topologie sieci (drzewo, pierścień, gwiazda, sieć połączeń z
najbliższymi sąsiadami, sieć zupełna i niezupełna, …)
topologie statyczne i dynamiczne
• Połączenia magistralą i matrycą
Architektura komputerów, część 9
25
Prezentacja multimedialna współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego
MIMD - struktura
Architektura komputerów, część 9
26
Prezentacja multimedialna współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego
MIMD . . .
• Po awarii jednego z procesorów (fizycznych lub logicznych), jego
obciążenie przejmuje inny procesor – większa niezawodność i
odporność na awarie globalne
• Praca n procesorów nawet przy pełnym obciążeniu nie jest n razy
szybsza niż jednego, gdyż dochodzi czas:
- komunikacji pomiędzy procesorami
- synchronizacji pracy (przy równoległym wykonywaniu niektórych
instrukcji)
- pusty – tracony (niektóre procesory muszą poczekać na inne)
- układania pracy procesora (scheduling) – czyli alokacja zadań dla
procesora
• Sekwencja zadań wykonywanych przez jeden procesor tworzy
WĄTEK (thread)
Architektura komputerów, część 9
27
Prezentacja multimedialna współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego
Architektura dzielonej pamięci
Architektura komputerów, część 9
28
Prezentacja multimedialna współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego
Architektura przepływu danych
• Obliczenia są ‘data-driven’
(gdy dane – operandy są
dostępne) lub ‘control – driven’
(instrukcje wywołują
pobieranie danych)
• Data – driven wymaga
gotowych funkcjonalnych
jednostek – wykonujących
określone działania
• Obok: obliczanie pierwiastków
równania kwadratowego, jeżeli
podane są a, b, c
Architektura komputerów, część 9
29
Prezentacja multimedialna współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego
Architektura maszyny sterowanej przepływem danych
Architektura komputerów, część 9
30
KONIEC CZĘŚCI DZIEWIĄTEJ
Prezentacja multimedialna
współfinansowana przez Unię Europejską
w ramach Europejskiego Funduszu Społecznego
w projekcie
Dr inż. Małgorzata Langer
Architektura
komputerów
„Innowacyjna dydaktyka bez ograniczeń
– zintegrowany rozwój Politechniki Łódzkiej –
zarządzanie Uczelnią,
nowoczesna oferta edukacyjna
i wzmacniania zdolności do zatrudniania
osób niepełnosprawnych”
Zadanie nr 30 – Dostosowanie kierunku Elektronika i Telekomunikacja
do potrzeb rynku pracy i gospodarki opartej na wiedzy
90-924 Łódź, ul. Żeromskiego 116,
tel. 042 631 28 83
www.kapitalludzki.p.lodz.pl

Podobne dokumenty