Podstawy info 11

background image

Wstęp do Informatyki

Wykład 11

Jednostka sterująca

Autor: Dr hab. Marek J. Greniewski

background image

Miejsce procesora w

komputerze

background image

Miejsce i rola jednostki sterującej

• Jednostka sterująca (Control Unit) jest częścią składową

procesora.

• Jednostka sterująca - steruje zarówno pracą procesora, jak

również za pośrednictwem wysyłanych na zewnątrz sygnałów
steruje pracą pozostałych modułów komputera.

• Na wejściu jednostki sterującej podawane są sygnały z rejestru

rozkazów (Instruction Register), rejestru znaczników (Flage’s
Register) oraz sygnały sterujące ze źródeł zewnętrznych – np.
sygnałów przerwań (Interapt’s Signals).

• Podstawową funkcjonalnością jednostki sterującej jest

powodowanie występowania sekwencji operacji elementarnych,
zwanych mikrooperacjami, podczas wykonywania cyklu
rozkazów.

background image

Model jednostki sterującej

rejestr rozkazów

jednostka
sterująca

sygnały

sterujące z
magistrali

systemowej

sygnały sterujące do
magistrali systemowej

szyna

sterowania

komputera

flag

i

sta

nu

zegar

sygnały

sterujące
wewnątrz

procesora

background image

Sygnały sterujące pracą jednostki

sterującej

• Zegar

. Dzięki zegarowi działanie jednostki sterującej jest

związane z przebiegiem czasu. Jednostka sterująca powoduje
wykonanie jednej mikrooperacji (lub zbioru jednoczesnych
mikrooperacji) po każdym impulsie zegarowym. Jest to
określane jako czas cyklu zegara.

• Rejestr rozkazów

. Kod bieżącej operacji określa, które

mikrooperacje oraz w jakiej kolejności mają być wykonane.

• Flagi stanu

. Są wykorzystywane przez jednostkę sterującą dla

stanu procesora i wyników poprzednich operacji ALU. Np.
wykonując rozkaz skoku warunkowego - zwiększenie stanu
licznika PC następuje, jedynie wtedy gdy warunek wykonania
skoku nie jest spełniony.

• Magistrala sterowania komputerem

. Magistrala sterowania

stanowi część magistrali systemowej i przekazuje sygnały do
jednostki sterującej, takie jak sygnały przerwania i sygnały
potwierdzeń.

background image

Sygnały sterujące generowane

przez jednostkę sterującą

• Wewnętrzne sygnały sterujące procesora

. Są to

dwa rodzaje sygnałów sterujących:

– Sygnały powodujące przenoszenie danych pomiędzy

rejestrami procesora;

– Sygnały aktywujące określone funkcje ALU.

• Sygnały sterujące wysyłane do magistrali

systemowej

. Również w tym przypadku mamy do

czynienie z dwoma rodzajami sygnałów

sterujących:

– Sygnały sterowania pamięcią;
– Sygnały sterujące modułami wejścia i wyjścia.

background image

Realizacja cyklu pobierania

• Jednostka sterująca uruchamia i śledzi wykonanie etapów cyklu

sterowania.

• Np. jednostka sterowania, w następnym etapie działania będzie

realizować cykl pobierania - w trzech sukcesywnych krokach.

• Krok 1

– przeniesienie zawartości licznika PC do rejestru MAR.

Jednostka sterująca dokonuje tego przez podanie sygnału

sterującego, który otwiera bramki pomiędzy bitami licznika PC i

bitami rejestru MAR.

• Krok 2

– odczytanie słowa z pamięci do MBR i zwiększenie

zawartości licznika PC. Jednostka sterująca dokonuje tego

wysyłając jednocześnie cztery sygnały sterujące:

– Sygnał otwarcia bramek pomiędzy bitami rejestru MAR, a szyną adresową,
– Sygnał sterujący odczytem zawartości komórki pamięci do szyny

sterowania,

– Sygnał sterujący otwarcia bramek pomiędzy bitami szyny danych a

rejestrem MBR,

– Sygnał sterujący do układów logicznych powodujących dodanie 1 do

zawartości rejestru PC i zapisanie wyniku w rejestrze PC.

• Krok 3

– wysłanie sygnałów sterujących, otwierających bramki

pomiędzy bitami rejestrów MBR i IR.

background image

Przykład oddziaływania sygnałów

sterujących

Sygnały sterujące

Fla
gi

c6

c
3

c1

c10

c2

Rejestr IR

Rejestr PC

Rejestr AC

M
B
R

M
A
R

Zegar

AL
U

Jednostka

sterująca

Sygna
ły
steruj
ące

Pobieranie t1: MAR := PC c1,c2, Cykl pośredni t1: MAR := IR(adres) c6,c2
t2: MBR := pamięć PC:= PC + 1 c3, c4 t2: MBR := pamięć c4
t3: IR := MBR c5 t3: IR(adres) := MBR(adres) c5

Przerwanie
t1: MBR := PC c8
t2: MAR := adres do zachowania c1,c2
PC := adres podprogramu c9, c7,c1
t3: pamięć := MBR c10

c4

Plus

1

c7

c8

c5

c9

background image

Jednostka sterująca z dekoderem

wejścia

Jednostka

sterująca

Rejestr rozkazów IR

Generator

taktowania

Dekoder

t1

t2

tn

c0 c1
cm

Sygnały sterujące

Flagi

Zegar

background image

Sterowanie za pomocą

mikroprogramu

• Termin mikroprogram został wprowadzony przez M.V. Wilkes’a

we wczesnych latach pięćdziesiątych. Wilkes zaproponował

pewien rodzaj systematyki w projektowaniu jednostek

sterujących, który był pewną „ciekawostką”, ale nie mógł

bezpośrednio realizowany ze względu na możliwości ówczesnej

techniki cyfrowej.

• W 1964 roku firma IBM wprowadziła sterowanie

mikroprogramowe w nowo wprowadzonej na rynek serii

komputerów System/360 IBM.

• Notacja służąca do opisu mikroprogramów wygląda jak język

programowania, którym jest w rzeczywistości.

• Każdy wiersz w tej notacji opisuje zbiór jednocześnie

wykonywanych mikrooperacji i jest nazywany mikrorozkazem.

• Sekwencja mikrorozkazów jest nazywana mikroprogramem lub

oprogramowaniem układowym (firmware).

• Oznacza to, że mikroprogram znajduje się pomiędzy sprzętem

komputera – a jego oprogramowaniem.

background image

Zasada działania

mikroprogramu

Powstaje pytanie – „Jak zastosować koncepcję

mikroprogramowania do zbudowania jednostki sterującej?”

Każda mikrooperacja generuje zbiór sygnałów wyjściowych

, tym

samym, każda linia sterowania wyprowadzona z jednostki

sterującej, jest albo włączona przez mikrorozkaz, albo wyłączona.

Stan taki jest reprezentowany przez cyfrę binarną związaną z

daną linią sterowania.

Możemy więc utworzyć słowo sterujące

, w którym każdy bit

reprezentuje jedną linię sterowania.

Każda instrukcja jest realizowana przez zmienną sekwencję

mikrorozkazów, o której z góry trudno jest powiedzieć, jaka jest

jej długość

. Np. czasami wystąpi cykl adresowania pośredniego,

ale również może nie wystąpić.

Poszczególne mikrorozkazy sekwencji umieścimy pod stałymi

adresami w pamięci sterowania

.

Dla zbudowania sekwencji mikrorozkazów, rozszerzmy słowo

sterujące o adres mikrooperacji, którą należy wykonać w ramach

sekwencji oraz o kilka bitów warunków.

Mikrorozkaz uzależniony

od warunku, w przypadku bitu warunku =1 wykona skok pod

wskazany adres, a w przypadku bitu = 0 przejdzie do

mikrorozkazu umieszczonego pod kolejnym adresem.

background image

Format prostego mikrorozkazu

(tzw. mikrorozkaz poziomy)

Adres mikrorozkazu

Warunek skoku:

- bezwarunkowy / warunkowy

- numer flaga (jeśli warunkowy)

- skok przy 0

- skok przy 1

Sygnały sterujące magistralą systemową komputera

Wewnętrzne sygnały sterujące procesorem

background image

Mikrorozkaz poziomy

• Format mikrorozkazu jest następujący:

– Pole zawierające jednym bicie na każdą wewnętrzna (procesorową) linię

sterującą;

– Pole zawierające jednym bicie na każdą linię sterującą magistrali

systemowej;

– Pole warunku – rozróżniające mikrorozkazy bezwarunkowe i warunkowe, a w

przypadku mikrorozkazu warunkowego - wskazujące flagę i kryterium
rozgałęzienia;

– Pole adresu mikrooperacji wykonywanej przy spełnieniu warunku.

• Wykonanie mikrorozkazu powoduje włączenie wszystkich linii

sterowania, którym odpowiada wartość 1 danego bitu oraz
wyłączenie wszystkich linii sterowania, którym odpowiada
wartość 0 danego bitu.

• Jeśli wskazany przez pole warunku – warunek nie jest spełniony,

to następnym do wykonania jest kolejny mikrorozkaz sekwencji.

• Jeśli wskazany przez pole warunku – warunek jest spełniony, to

następnym do wykonania jest mikrorozkaz znajdujący się pod
adresem określonym przez pole adresu.

background image

Mikrorozkaz pionowy

Adres mikrorozkazu

Warunek skoku:

- bezwarunkowy / warunkowy

- numer flaga (jeśli warunkowy)

- skok przy 0

- skok przy 1

Sygnały sterujące magistralą systemową komputera

Wewnętrzne sygnały sterujące procesorem

dekoder

Ciąg bitów sterujących

zespołami bramek

Kod funkcji

Transfer

background image

Organizacja

pamięci

sterującej

Podprogram cyklu adresowania pośredniego

Ostatni mikrorozkaz: skok do wykonania

Podprogram cyklu pobierania

Ostatni mikrorozkaz: skok do cyklu adresowania

pośredniego lub wykonywania

Podprogram cyklu przerwania

Ostatni mikrorozkaz: skok do pobierania

Początek cyklu wykonywania

Skok do podprogramu wg. kodu operacji

Podprogram AND

Ostatni mikrorozkaz: skok do cyklu

pobierania lub przerwania

Podprogram ADD

Ostatni mikrorozkaz: skok do cyklu

pobierania lub przerwania

Podprogram IOF

Ostatni mikrorozkaz: skok do cyklu

pobierania lub przerwania

Kierunek wzrostu
wartości adresów
pamięci sterującej

background image

Mikroprogramowa jednostka

sterująca

Zegar

Odczyt

Wewnętrzne sygnały procesora

Sygnały sterujące magistrali

Rejestr rozkazów

Dekoder

Buforowy rejestr sterowania

Dekoder

Pamięć

sterująca

Rejestr adresu sterowania

Układy

logiczne

szeregow

ania

Sterowanie następnym

adresem

Fla
gi

Odcz
yt

Jednostka sterująca

Uwaga:

Dekoder wyjściowy,
jest stosowany tylko
w przypadku
zastosowania
mikrorozkazów
pionowych

background image

Działanie jednostki sterującej

1. W celu wykonania rozkazu szeregująca jednostka logiczna

wydaje rozkaz pamięci sterującej odczyt.

2. Słowo (mikrorozkaz), którego adres został umieszczony w

rejestrze sterowania, jest wczytane do buforowego rejestru

sterowania.

3. Zawartość rejestru buforowego sterowania generuje sygnały

sterujące oraz przesyła część adresową słowa do logicznej

jednostki szeregowania.

4. Logiczna jednostka szeregowania ładuje nowy adres do

rejestru adresu sterowania na podstawie informacji o

następnym adresie przesłanej z buforowego rejestru

sterowania wraz z uwzględnieniem stanu flag. Zależnie od

stanu flag – podejmowana jest jedna z trzech decyzji:

Przejście do następnego rozkazu

. Dodanie 1 do rejestru adresu

sterowania.

Skok do następnego programu standardowego w wyniku mikrorozkazu

skokowego

. Ładowanie pola adresu buforowego rejestru sterowania do

rejestru adresu sterowania.

Skok do programu standardowego kodu maszynowego

. Ładowanie

rejestru adresu sterowania na podstawie kodu operacji znajdującego się

w rejestrze rozkazów (IR).

background image

Zalety i wady sterowania

mikroprogramowego

• Główną zaletą mikroprogramowanej jednostki sterującej

jest istotne uproszczenie projektowania logicznego

.

• Rozwiązanie mikroprogramowe jest zarówno tańsze, jak

i bardziej odporne na błędy.

• Układowa jednostka sterująca musi zawierać

skomplikowane układy logiczne w celu zapewnienia

szeregowania wielu mikrooperacji w cyklu rozkazu.

• Dekodery i logiczna jednostka szeregowania

mikroprogramowej jednostki sterującej – są bardzo

prostymi układami kombinacyjnymi.

• Główną wadą mikroprogramowej jednostki sterującej

jest to, że jest ona nieco wolniejsza od jednostki

układowej wykonanej w równorzędnej technologii

.

• Mimo powyższej wady, we współczesnych procesorach

dominują mikroprogramowe jednostki sterujące.

background image

Metody generowania adresu

mikrorozkazu

• Metody jawne:

– Dwupolowa (czyli

dwa alternatywne
adresy)

– Rozgałęzienie

bezwarunkowe lub
warunkowe

– Zmienny format

mikroinstrukcji

• Metody niejawne:

– Odwzorowanie
– Dodawanie
– Sterowanie

szczątkowe.

background image

Przetwarzanie

wieloprocesorowe

w tym architektury

równoległe

background image

Przetwarzanie

wieloprocesorowe

• Luźno powiązane systemy wieloprocesorowe

. System taki

stanowi zbiór stosunkowo autonomicznych jednostek, przy

czym każdy procesor ma własną pamięć główną i kanały

wejścia-wyjścia. W tym kontekście jest często stosowany

termin systemy wielokomputerowe.

• Procesory wyspecjalizowane funkcjonalnie

. Chodzi o jednostki

takie, jak procesory wejścia-wyjścia. W tym przypadku

istnieje główny procesor o ogólnym przeznaczeniu oraz

wyspecjalizowane procesory, które są sterowane przez

główny procesor i wykonują dla niego usługi.

• Silnie powiązane systemy wieloprocesorowe

. System taki

obejmuje zbiór procesorów o wspólnej pamięci głównej,

działający pod zintegrowaną kontrolą systemu operacyjnego.

• Systemy z przetwarzaniem równoległym

. Silnie powiązane

systemy wieloprocesorowe, które mogą współpracować,

pracując równolegle nad jednym zadaniem.

background image

Silnie powiązany system

wieloprocesorowy

1. System obejmuje dwa lub więcej podobnych procesorów o

ogólnym przeznaczeniu i o porównywalnych możliwościach.

2. Wszystkie procesory mają dostęp do tej samej (wspólnej)

pamięci globalnej. Mogą też posiadać pamięci lokalne
(własne).

3. Wszystkie procesory dzielą się dostępem do urządzeń

wejścia-wyjścia za pośrednictwem tych samych kanałów,
albo przez różne kanały umożliwiające dostęp do tych
samych urządzeń.

4. System jest sterowany przez zintegrowany system

operacyjny, zapewniający współpracę pomiędzy
procesorami i ich programami na poziomie zadania,
procesu, pliku i elementu danych.

Uwaga: silnie powiązany system wieloprocesorowy, często
nazywany jest

wielo-procesorem

.

background image

Schemat blokowy silnie

powiązanego systemu

wieloprocesorowego

Układ połączeń

silnie powiązanego

systemu

wieloprocesorowego

Procesor

Procesor

Procesor

We-wy

We-wy

We-wy

Pamięć główna

background image

Sposoby łączenia procesorów z

pamięcią współdzieloną

• Należą do nich, między innymi:

– magistrala z podziałem czasu,
– zastosowanie pamięci wieloportowej,
– wykorzystanie przełącznika

krzyżowego, dającego bezpośrednie

połączenie każdego modułu z

każdym.

background image

Organizacja magistrali z podziałem

czasu

(a) podstawowa; (b) z pamięcią podręczną

(a)

We-wy

Pamięć

Procesor

Magistrala systemowa

Procesor

Pamięć

We-wy

We-wy

Pamięć

Procesor

z

pamięcią

podręczną

Magistrala systemowa

Procesor

z

pamięcią

podręczną

Pamięć

We-wy

(b)

background image

Magistrala z podziałem czasu

Magistrala składa się z trzech grup linii:

szyny sterowania

szyny adresowej

szyny danych.

1. Adresowanie

. Musi istnieć możliwość rozróżniania modułów

na magistrali w celu określenia źródła danych i zlewu

danych.

2. Arbitraż

. Dowolny moduł wejścia-wyjścia może okresowo

funkcjonować jako jednostka nadrzędna. Mechanizm

arbitrażu pomiędzy jednostkami rywalizującymi o

sterowanie magistralą, korzystający z zadanego schematu

nadawania priorytetów.

3. Podział czasu

. Gdy jeden z modułów steruje magistralą,

pozostałe są odłączone i muszą w razie konieczności

zawiesić działanie, do czasu uzyskania dostępu do

magistrali.

Uwaga: struktura i interfejsy magistrali silnie powiązanego

systemu wieloprocesorowego, są w zasadzie takie same jak

w systemie jedno-procesorowym.

background image

Zalety i wady magistrali

w stosunku do innych rozwiązań

• Prostota

. Jest to najprostsze rozwiązanie organizacji

wieloprocesorowej. Interfejs fizyczny, adresowanie, arbitraż i

układy logiczne podziału czasu w każdym procesorze

pozostają takie same, jak w systemie jedno-procesorowym.

• Elastyczność

. Łatwo jest na ogół rozszerzyć system przez

dołączenie następnych procesorów do magistrali.

• Niezawodność

. Magistrala jest w zasadzie układem pasywnym

i uszkodzenie któregokolwiek z dołączonych urządzeń nie

powinno spowodować uszkodzenia całego systemu.

• Wady

. Główną wadą organizacji magistralowej jest w zasadzie

ograniczona wydajność. Wszystkie odniesienia do pamięci

przechodzą wspólną magistralą, wobec tego szybkość

systemu jest ograniczona cyklem zegara. W celu poprawienia

wydajności należy wyposażyć każdy z procesorów w dużą

pamięć podręczną. Co z kolei komplikuje projekt.

background image

Pamięć wieloportowa

We-wy

Pamięć

Procesor

z

pamięcią

podręczną

Pamięć

Pamięć

Procesor

z

pamięcią

podręczną

We-wy

background image

Pamięć wieloportowa

• Rozwiązanie z pamięcią wieloportową jest bardziej złożone od

magistrali

, wymaga bowiem dodania do systemu pamięci dość

dużej liczby układów logicznych.

• Rozwiązanie to,

pozwala na uzyskanie znacznie wyższej

wydajności

, ponieważ każdy z procesorów ma własną ścieżkę

dostępu do pamięci.

• Dodatkową zaletą rozwiązania wieloportowego

jest możliwość

skonfigurowania części pamięci jako pamięci „własnych” jednego

lub kilku procesorów i / lub modułów wejścia-wyjścia

. Możliwość

ta pozwala na poprawę zabezpieczenia przed nieuprawnionym

dostępem oraz na przechowywanie podprogramów regeneracji

w obszarach pamięci, które nie mogą modyfikowane przez inne

procesory.

• Sterowanie pamięciami podręcznymi powinno być realizowane

metodą jednoczesnego zapisu

, ponieważ nie ma innych środków

informowania pozostałych procesorów o aktualizacji pamięci.

background image

Centralna jednostka sterująca

Centralna jednostka sterująca silnie powiązanego systemu
wielo-procesorowego – kieruje przepływem oddzielnych
strumieni danych pomiędzy niezależnymi modułami:

Procesorami

,

Modułami pamięci

,

Modułami wejścia-wyjścia

.

Centralna jednostka sterująca silnie powiązanego systemu
wielo-procesorowego może również buforować
zapotrzebowania, dokonywać arbitrażu i realizować
taktowanie. Przekazuje również wiadomości dotyczące
stanu i sterowania pomiędzy procesorami,
a także zawiadamiać o aktualizacji pamięci podręcznych.

Struktura oparta o centralną jednostkę sterującą , była
powszechnie stosowana w systemach wieloprocesorowych
klasy

mainframe

, takich jak S/370 IBM.

background image

Wieloprocesorowe systemy

operacyjne

• W przypadku silnie powiązanego systemu

wieloprocesorowego użytkownik widzi jeden system

operacyjny sterujący zasobami systemu.

• Silnie powiązany system wieloprocesorowy wygląda jak

wieloprogramowy system jednoprocesorowy. W obu

przypadkach może być jednocześnie aktywizowanych wiele

zadań i procesów, a rolą systemu operacyjnego jest

planowanie ich wykonania oraz przydzielanie zasobów.

• Identyfikowanych jest siedem funkcji wieloprocesorowego

systemu operacyjnego:

Przydzielanie zasobów i zarządzanie niemi,
Ochrona tablic i danych,
Zapobieganie zakleszczaniu systemu,
Zakończenia awaryjne,

Równoważenie obciążenie wejścia-wyjścia,
Równoważenie obciążeń procesorów,
Rekonfiguracja.

background image

Wieloprocesorowe systemy

operacyjne

• Trzy ostatnie funkcje występują jedynie w systemach

wieloprocesorowych

• Silnie powiązane wielo-procesory prowadzą jedną wspólną

kolejkę krótko-okresową zadań, z której trafiają do wybranego,

aktualnie dostępnego procesora.

• System operacyjny zawsze jest na jednym konkretnym

procesorze, pełniącym wówczas rolę procesora nadrzędnego,

którego jednostka sterująca pełni funkcję centralnej jednostki

sterującej wielo-procesora.

• Procesor nadrzędny jest odpowiedzialny za planowanie zadań

oraz prowadzenia kolejek zadań.

• Każdy z procesorów podległych, gdy wymaga obsługi (np.

wywołania wejścia-wyjścia) musi wysyłać zgłoszenia do

procesora nadrzędnego, a następnie czekać na obsługę.

• Rozwiązywanie konfliktów jest uproszczone, ponieważ procesor

nadrzędny kontroluje wszystkie zasoby pamięci oraz wejścia

wyjścia.

• Rozwiązanie to ma dwie wady: (1) uszkodzenie procesora

nadrzędnego unieruchamia cały system, (2) procesor nadrzędny

może stać się wąskim gardłem wydajności.

background image

Organizacja wielo-procesora

IBM 3033

złożonego z pary komputerów S/370 IBM

Procesor

Kanały

Pamięć

podręczna

Procesor

Kanały

Pamięć

podręczna

Jednostka

komunikacyjna

wielo-procesora

Moduły

pamięci

background image

Spójność pamięci podręcznych

• We współczesnych systemach wieloprocesorowych z każdym

procesorem jest zwykle związana jedno- lub dwupoziomowa
pamięć podręczna.

• Organizacja taka jest niezbędna dla uzyskania rozsądnej

wydajności.

• Powoduje ona powstanie tzw. problemu spójności pamięci

podręcznej (

cache coherence

).

• Istota tego problemu jest następująca: wiele kopii tych samych

danych może jednocześnie występować w różnych pamięciach
podręcznych oraz jeśli procesory mogą swobodnie aktualizować
własne kopie, to w wyniku może powstać niespójny obraz pamięci.

• Istnieje kilka różnych rozwiązań mających na celu zapewnienie

spójności pamięci podręcznych.

• Najczęściej stosowanym rozwiązaniem jest protokół MESI. Pewna

wersja tegoż protokółu jest stosowna w procesorach Pentium i
PowerPC.

background image

Protokół MESI

Pamięć podręczna danych zawiera w swoim wskaźniku 2

bity stanu dla każdego wiersza pamięci podręcznej.

Każdy wiersz pamięci podręcznej danych może

znajdować się w jednym z czterech stanów:

1. Zmodyfikowany

. Wiersz pamięci podręcznej został

zmodyfikowany (różni się od odpowiednika w pamięci głównej) i

jest osiągalny tylko w pamięci podręcznej.

2. Wyłączny

. Wiersz pamięci podręcznej jest taki sam, jak w pamięci

głównej i nie występuje w innych pamięciach podręcznych.

3. Wspólny

. Wiersz pamięci podręcznej jest taki sam, jak w pamięci

głównej i może występować w innej pamięci podręcznej.

4. Nieważny

. Wiersz pamięci podręcznej nie zawiera danych

ważnych.

Rozróżniamy cztery możliwości wyniku działania:

Chybienie odczytu.

Trafienie odczytu.

Chybienie zapisu.

Trafienie zapisu.

background image

Chybienie odczytu

Gdy w lokalnej pamięci podręcznej następuje chybienie

odczytu, procesor inicjuje odczyt z pamięci głównej

wiersza zawierającego brakujący adres.

Procesor umieszcza sygnał na magistrali alarmujący

wszystkie pozostałe procesory / pamięci podręczne,

żeby śledziły transakcje.

Wynikają stąd następujące możliwe sytuacje:

1. Jeśli jeden z procesorów ma czystą (niezmodyfikowaną od czasu

odczytu z pamięci głównej) kopię wiersza w stanie

wyłącznym

,

to sygnalizuje w odpowiedzi, że dysponuje tym wierszem.

Odpowiadający procesor zmienia stan swojej kopii z

wyłącznego

na

wspólny

.

2. Jeśli jeden lub więcej procesorów ma czystą kopie wiersza w

stanie

wspólnym

to każdy z nich sygnalizuje ten stan. Procesor

dysponujący kopią przejmuje sterowanie magistralą i zapisuje

zmodyfikowany wiersz w pamięci głównej.

3. Jeśli jeden z procesorów ma

zmodyfikowaną

kopię wiersza, to

sygnalizuje procesorowi inicjującemu celowość ponownej próby.

4. Jeśli żadna inna pamięć podręczna nie ma kopii

wiersza

, to w

odpowiedzi nie są przesyłane żadne sygnały.

W sytuacjach 1, 2 i 3 procesor inicjujący wczytuje wiersz

i zmienia jego stan w pamięci podręcznej na

wspólny

. W

sytuacji 4 procesor inicjujący wczytuje wiersz i zmienia

jego stan w pamięci podręcznej na

wyłączny

.

background image

Trafienie odczytu

• Gdy następuje trafienie odczytu wiersza w

lokalnej pamięci podręcznej procesora, to
następuje odczytanie wymaganych danych i
nie następuje zmiana stanu.

background image

Chybienie zapisu

Gdy następuje chybienie zapisu w lokalnej pamięci
podręcznej, procesor inicjuje odczyt z pamięci głównej
potrzebnego wiersza do swojej pamięci podręcznej.

Odczyt z pamięci głównej jest poprzedzony sygnałem
podanym na magistralę – odczyt bez zamiaru
modyfikacji. Wówczas możliwe są dwa scenariusze:

1. Jedna z pozostałych pamięci podręcznych zawiera

zmodyfikowaną

kopię wiersza. W tym przypadku

zaalarmowany procesor sygnalizuje procesorowi inicjującemu
powyższy fakt i zmienia stan wiersza na

nieważny

. Po

dokonaniu zapisu w pamięci głównej przez procesor inicjujący,
zmodyfikowany wiersz danych w pamięci głównej – jest
przepisywany do pamięci podręcznej procesora.

2. Żadna z pozostałych pamięci podręcznych niema

zmodyfikowanej

kopii wiersza. Wówczas następuje zapisanie

wiersza danych w pamięci głównej.

background image

Trafienie zapisu

Gdy następuje trafienie zapisu do wiersza w

pamięci podręcznej, wynik zależy od bieżącego

stanu tego wiersza w pamięci podręcznej:

1. Wspólny

. Przed przeprowadzeniem aktualizacji procesor

musi uzyskać prawo wyłączności dostępu do wiersza.

Procesor sygnalizuje ten fakt za pośrednictwem

magistrali. Każdy procesor, który ma wspólną kopię

wiersza w swojej pamięci podręcznej, zmienia stan

wiersza ze

wspólnego

na

nieważny

. Następnie procesor

inicjujący dokonuje aktualizacji i zmienia stan kopii

wiersza ze

wspólnego

na

zmodyfikowany

.

2. Wyłączny

. Procesor ma wyłączną kontrolę nad wierszem,

więc przeprowadza aktualizację i zmienia stan wiersza

danych ze

wyłącznego

na

zmodyfikowany

.

3. Zmodyfikowany

. Procesor ma wyłączną kontrolę nad

wierszem i wiersz ten ma stan

zmodyfikowany

, więc

dokonuje aktualizacji.

background image

Graf protokołu MESI

Nieważny

Wyłączny

Zmodyfi-

kowany

Wspólny

background image

Procesory wektorowe

- trzy główne kategorie

• ALU z przetwarzaniem potokowym.

• Równoległe ALU, każde z przetwarzaniem

potokowym.

• Równoległe procesory.

background image

Jednostki wektorowe ALU

Przykład czterech etapów wykonywania

operacji dodawania

zmiennoprzecinkowego

Porównywanie

wykładników

Normalizacja

wyniku

Dodawanie

mantys

Przesuwanie

mantysy

C

S

A

N

background image

Komputer wektorowy

ALU z przetwarzaniem

potokowym

Pamięć

Bank rejestrów

wejściowych

Bank rejestrów

wyjściowych

ALU z przetwarzaniem

potokowym

background image

Jednostka wektorowa ALU

C

S

A

N

z

i

x

i

y

i

background image

Działanie

ALU z przetwarzaniem

potokowym

C S A N

C S A N

C S A N

C S A N

C S A N

x

1

, y

1

x

2

,

y

2

x

3

,

y

3

x

4

, y

4

x

5

,

y

5

z

1

z

2

z

3

z

4

z

5

background image

Komputer wektorowy

równoległe ALU

Pamięć

ALU

ALU

ALU

Bank rejestrów

wejściowych

Bank rejestrów

wyjściowych

background image

Przetwarzanie potokowe trzy

równoległe ALU

C

S

A

N

z

i+3

x

i+3

y

i+3

C

S

A

N

z

i+2

x

i+2

y

i+2

C

S

A

N

z

i+1

x

i+1

y

i+

1

background image

Działanie systemu trzy równoległe

ALU z przetwarzaniem potokowym

C S A N

C S A N

C S A N

C S A N

C S A N

x

1

, y

1

x

4

,

y

4

x

7

,

y

7

x

10

, y

10

x

13

,

y

13

z

1

z

4

z

7

z

10

z

13

C S A N

C S A N

C S A N

C S A N

C S A N

x

3

, y

3

x

6

, y

6

x

9

, y

9

x

12

, y

12

x

15

, y

15

z

3

z

6

z

9

z

12

z

15

C S A N

C S A N

C S A N

C S A N

C S A N

x

2

, y

2

x

5

,

y

5

x

8

,

y

8

x

11

, y

11

x

14

,

y

14

z

2

z

5

z

8

z

11

z

14

background image

Komputer wektorowy -

rejestry

• Kluczowym urządzeniem komputera wektorowego są

rejestry, a dokładniej mówiąc

bank rejestrów

.

• Efektywna organizacja komputera wektorowego wymaga

maksymalizacji

udziału operacji – działających na na

zasadzie rejestr rejestr

. Dodatkowo operacje na rejestrach

powinny być łączone w tzw. łańcuchy (

operation chaining

).

• Przykładami takich komputerów wektorowych są

komputery CRAY oraz IBM 3090.

• Ten ostatni z wymienionych komputerów jest wyposażony

w

bank złożony z 8 grup rejestrów 64 bitowych, gdzie

każda grupa zawiera 128 słów

, oraz specjalnych rejestrów:

maski wektorowej, rejestru stanu wektora oraz licznika.

background image

IBM 3090 z urządzeniem

wektorowym

Pamięć główna

Pamięć

podręczna

Dekoder

instrukcji

Procesor

skalarny

Procesor

wektorowy

Rejestry

skalarne

Rejestry

wektorowe

Składowe wektora

Rozkazy wektorowe

Rozkazy skalarne

Wartości skalarne

CPU 3090

Urządzenie wektorowe

background image

Taksonomia organizacji

komputerów

Pojedyncza jednostka sterująca

Wiele jednostek sterujących

Komputery ALU Równoległe Wielo-
procesor Procesory
jednoprocesorowe z przetwarzaniem ALU
równoległe
potokowym

background image

Schemat klasyfikacji Flynna

SISD – jeden strumień rozkazów i jeden strumień danych
SIMD – jeden strumień rozkazów i wiele strumieni danych
MISD – wiele strumieni rozkazów i jeden strumień danych (nie występuje)
MIMD – wiele strumieni rozkazów i wiele strumieni danych

background image

Schemat klasyfikacji Duncana

background image

Procesor wektorowy SIMD

• Procesor zawiera kilka identycznych elementów

przetwarzających (processing element - PE), z
których każdy ma lokalną lub podręczną pamięć
(M) do przechowywania argumentów przed
obliczeniami i po ich wykonaniu.

• Główny układ sterujący pobiera rozkazy z pamięci

głównej i dekoduje je. Jeśli są to rozkazy
wektorowe, to przekazuje je do wszystkich
elementów przetwarzających.

• Każdy element przetwarzający wykonuje te same

obliczenia synchronicznie z innymi na swoich
lokalnych danych.

background image

Procesor wektorowy SIMD

background image

Procesor wektorowy SIMD

W celu wykonania, np. dodawania wektorów
C := A + B

– gdzie A i B są odpowiednio wektorami (a

1

, a

2

, ... ,

a

n

) oraz

– (b

1

, b

2

, ... , b

n

),

jednostka sterująca ładuje do każdego
modułu pamięci M

i

argumenty a

i

oraz b

i

, a

następnie - zleca wszystkim elementom
przetwarzającym wykonanie rozkazu

C := A + B.

background image

Komputer sterowany danymi

Graf zależności danych programu obliczającego wyrażenie (3*a + 4*b)

background image

Komputer sterowany danymi

• Każdy węzeł pracuje niezależnie,

wykonując konkretne operacje
natychmiast po otrzymaniu wszystkich
argumentów.

• Wynik jest przekazywany do następnego

węzła albo węzłów grafu.

• Liczba węzłów, które mogą być

„odpalane” jednocześnie, zależy od
organizacji sprzętu.

background image

Pierścieniowa struktura

implementacji przepływu

danych

background image

• Systemy wieloprocesorowe MIMD zawierają wiele

niezależnych procesorów, które działają na
oddzielnych strumieniach danych, wykorzystując
oddzielne strumienie rozkazów.

• Wyróżnia się dwa modele architektury:

silnie powiązany - procesory uzyskują dostęp do

rozkazów i danych za pośrednictwem globalnej
współdzielonej pamięci,

luźno powiązany - każdy procesor ma dużą pamięć

lokalną, które może używać przy dostępie do większości
swoich rozkazów i danych,

• Procesory wymieniają dane i przesyłając

komunikaty.

Architektury systemów MIMD

background image

Topologia połączeń MIMD

1. Pierścień procesorów

. Jeśli komunikacja wzdłuż pierścienia

jest dwukierunkowa, to maksymalna odległość między

dwoma dowolnymi węzłami n-węzłowego pierścienia wynosi

n/2. Taka topologa jest odpowiednia dla stosunkowo

niewielkiej liczby procesorów przy minimalnej komunikacji

danych.

2. Siatka procesorów

. Najprostszą formą siatki jest

dwuwymiarowa matryca, w której każdy jest połączony z

czterema sąsiadami. Zasięg komunikacji w prostej matrycy

wynosi 2(n-1). Jest to dobra organizacja dla realizacji

algorytmów działania na macierzach.

3. Drzewo procesorów

(np. tzw. klastry).

4. Hyper-sześcian procesorów

. Topologia hypersześcienna

używa N =2

n

procesorów ułożonych w postaci n-

wymiarowego sześcianu, w którym każdy węzeł ma n = log

2

N

dwukierunkowych powiązań z sąsiednimi węzłami. Zasięg

komunikacyjny takkiego hypersześcianu wynosi n.

background image

Systemy wieloprocesorowe o

architekturze hyper-sześcianu

Przykład 4-wymiarowego hyper-sześcianu

background image

Łączność w warunkach najgorszego

przypadku

Liczba węzłów

Siatka

Hyper-sześcian

16

6 skoków

4 skoki

256

30 skoków

8 skoków

1024

62 skoki

10 skoków

2048

126 skoków

11 skoków

16384

254 skoki

16 skoków


Document Outline


Wyszukiwarka

Podobne podstrony:
Psychologiczne podstawy edukacji 11
Teoretyczne podstawy ksztalcenia ( 11
Podstawy neurofizjologii# 11 2011
Podstawowe info dot amortyzacji
Podstawy prawoznawstwa 11 2013 Wykłady
podstawy przedsiebiorczosci( 11
Podstawowe?finicje zarządzanie (11)
Teoretyczne podstawy ksztalcenia 11
podstawy zarządzania, 1-11
Zaliczenie podstawy dowodzenia 11 Tutak
Diagnoza autyzmu podstawowe info, PEDAGOGIKA i PSYCHOLOGIA, AUTYZM
Podstawy prawa, 11 2013
Podstawy info 3
Podstawy info 7
Podstawy info 9
Podstawy info 8
Kurs podstawowy Pytania 11
Teoretyczne podstawy ksztalcenia  11
Notatki Podstawy prawoznawstwa 11 2012

więcej podobnych podstron