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 

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 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

 , 

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

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