Click here to load reader
Feb 28, 2019
dr Artur Bartoszewski
Architektura
systemw
komputerowych
1
Procesor cz II
2
Rejestry procesora dostpne programowo
AX Akumulator
Zawiera jeden z operandw
dziaania i do niego przekazywany
jest wynik
BX,CX,DX,EX,HX,LX rejestry robocze (uniwersalne)
SP - wskanik stosu F - rejestr znacznikw
PC - licznik rozkazw
3
Rejestry procesora dostpne programowo
Licznikiem rozkazw (PC) nazywamy rejestr mikroprocesora
zawierajcy adres komrki pamici, w ktrej przechowywany jest
rozkaz przeznaczony do wykonywania jako nastpny
Stosem nazywany wyrniony obszar pamici uywany wedug
nastpujcych regu:
1. informacja zapisywana jest do kolejnych komrek, adnego
adresu nie wolno pomin,
2. odczyt informacji nastpuje w kolejnoci odwrotnej do zapisu,
3. informuje odczytujemy z ostatnio zapisanej komrki, natomiast
zapisujemy do pierwszej wolnej.
4
5
Stos
Stosem nazywany wyrniony obszar pamici uywany wedug
nastpujcych regu:
1. Informacja zapisywana jest do kolejnych komrek, adnego
adresu nie wolno pomin,
2. Odczyt informacji nastpuje w kolejnoci odwrotnej do zapisu,
3. Informuje odczytujemy z ostatnio zapisanej komrki, natomiast
zapisujemy do pierwszej wolnej.
Stos jest rodzajem pamici (buforem) typu LIFO (ang. Last In First Out).
Stos ma stay wymiar i pooenie w pamici. Konieczna jest wic
tylko znajomo adresu pierwszej wolnej komrki stosu
(wierzchoka stosu). Do tego suy rejestr SP - wskanik stosu.
Stos
6
Rejestry procesora dostpne programowo
Na stosie zapamitywane s stany rejestrw w trakcie przeczania si procesora pomidzy rnymi wtkami (zadaniami).
Gdy procesor wykonuje program, w jego rejestrach znajduj si istotne informacje wyniki czstkowe wykonywanych operacji, adres nastpnego rozkazu czekajcego na wykonanie i wiele innych.
Przeczenie si na obsug innego programu, czy te przejcie do jednej z procedur obsugi przerwa (umoliwiajcych midzy innymi obsug urzdze wejcia-wyjcia), wymaga usunicia tych danych i zastpienia ich nowymi.
Poprzednia zawarto rejestrw zapamitywana jest na stosie i moe by pniej przywrcona.
Procesor odkada na stos zawarto rejestrw w okrelonej kolejnoci, a odczytuje w kolejnoci odwrotnej, dziki temu nie ma potrzeby zapisywania z ktrego rejestru pochodzia kada warto.
7
Rejestry procesora dostpne programowo
Stos przechowuje take adresy powrotw przy wywoaniu podporocedur. Dziki budowie stosu (kolejki LIFO) zapamitywane s adresy oraz, niejako automatycznie, ich kolejno.
8
Wykorzystanie stosu do wywoania podprogramw
9
Zasada przetwarzania potokowego
Przypomnienie:
cykl rozkazowy skada si z wielu faz
w najprostszej wersji z fazy pobrania i wykonania
rozkazu
10
Zasada przetwarzania potokowego (ang. Pipelining)
Jeeli w procesorze wydzieli dwa stanowiska obsugi" - jedno dla
pobierania rozkazw, a drugie dla ich wykonywania (rys), wwczas
mona rwnoczenie realizowa obie fazy cyklu rozkazowego:
pobieranie nastpnego rozkazu odbywa si w czasie, gdy jest
wykonywany rozkaz poprzedni . Takie dziaanie, analogiczne do
obrbki na tamie produkcyjnej, nazywa si potokowym (pipeline).
11
Dwustopniowy potok rozkazw
Zakadajc, e czas trwania kadej fazy cyklu jest taki sam,
uzyskuje si dwukrotne skrcenie czasu koczenia kolejnych
rozkazw (uzyskiwania wynikw), mimo e sumaryczny czas
cyklu pozostaje niezmieniony.
12
Powody przestojw w przetwarzaniu
potokowym
Wystpienie w programie rozgazie zalenych od efektw
poprzedzajcej operacji (skokw warunkowych) - w takim
przypadku kolejny pobrany rozkaz moe okaza si nieprzydatny i
trzeba pobiera inny, wskazany przez wykonywany rozkaz skoku.
Nastpuje wwczas oprnienie potoku (flush) powodujce
chwilowy przestj jednostki wykonawczej,
Z kolei przestoje jednostki pobierajcej rozkazy pojawiaj si
wtedy, gdy samo wykonanie rozkazu wymaga kontaktu z pamici
dla odczytania lub zapisania argumentw.
13
Potoki wielostopniowe
Wspczesne procesory stosuj wielostopniowe
przetwarzanie potokowe (liczba stopni wynosi od
kilku do kilkunastu), a dla zredukowania strat
wydajnoci wprowadza si rozwizania sprztowo-
programowe, takie jak rwnoczesny dostp do
pamici rozkazw i pamici danych czy
dynamiczne przewidywanie skokw.
14
Potok piciostopniowy
Dla potoku piciostopniowego (stosowanego midzy innymi w procesorze
Intel Pentium) wyrniamy nastpujce fazy:
1. IF (ang. instruction fetch) faza pobierania procesor pobiera rozkaz
z I-Cache (ang. Instruction Cache),czyli bloku pamici podrcznej
zawierajcego instrukcje.
2. ID (ang. instruction decode) faza dekodowania blok dekodowan
rozpoznaje rozkaz, na jego podstawie generuje instrukcje sterujce
do bloku wykonawczego oraz inicjuje pobranie argumentw operacji,
3. EX (ang. execute) faza wykonania w fazie tej jednostka
arytmetyczno-logiczna wykonuje odpowiednie dziaania na
dostarczonych do niej danych,
4. MA (ang. memory access) operacje na pamici procesor pobiera
dane z pamici D-Cache (ang. Data Cache), czyli bloku pamici
podrcznej zawierajcej dane.
5. WB (ang. write back) zapis do rejestrw wyniki zapisane s do
akumulatora lub wskazanego rejestru
Kada z wymienionych faz wykonywana jest w osobnym bloku procesora. 15
Potok piciostopniowy
W kadym cyklu jest przetwarzanych jednoczenie 5
rozkazw znajdujcych si na rnych etapach realizacji (a
kolejne rozkazy s koczone w kadym takcie zegara. 16
Konflikty w przetwarzaniu potokowym
Idea przetwarzania potokowego opiera si na zaoeniu, e
instrukcje programu zapisane s w pamici operacyjnej pod
kolejnymi adresami i mog by wykonywane rwnolegle,
niezalenie od siebie. Zaoenie to sprawdza si dla ponad 90%
dowolnego kodu.
W kadym jednak programie zdarzaj si sytuacj, w ktrych
mechanizm przetwarzania potokowo nie dziaa w peni wydajnie.
Sytuacje takie nazywamy konfliktami przetwarzania potokowego.
Wyrniamy trzy rodzaje konfliktw:
1. konflikty sterowania,
2. konflikty danych,
3. konflikty zasobw.
17
Konflikty w przetwarzaniu potokowym
Konflikty sterowania (ang. control hazadr) to zaburzenia sekwencji
wykonywanego programu wywoane przez rozgazienia programu.
Instrukcje programu zapisane s zwykle w kolejno po sobie
nastpujcych komrkach pamici. Dziki temu procesor
moe, jeszcze w trakcie wykonywania poprzedniej instrukcji,
pobra nastpn, znajdujc si pod kolejnym adresem.
Pojawienie si instrukcji skoku oznacza jednak, e nastpne
polecenie powinno by pobrane z cakiem innego miejsca w
pamici.
18
Konflikty w przetwarzaniu potokowym
Konflikty sterowania powoduje to konieczno zapenienia kolejki
rozkazw od nowa i skutkuje strat kilku taktw.
Rozkaz skoku
Moment, w ktrym rozkaz
skoku zostaje rozpoznany
(zdekodowany i wykonany)
Strata co najmniej
dwch taktw
19
Konflikty w przetwarzaniu potokowym
Jednym z rozwiza sprztowych optymalizujcych prac
procesora jest bufor adresu docelowego BTB (ang. branch target
buffer), sucy do przewidywania skokw.
Mechanizm BTB prbuje przewidzie, czy program wykona
skok, a nastpnie pobiera odpowiednie instrukcje.
Wykorzystywane s dwie metody prognozowania skokw
prognozowanie statyczne, oparte na analizie kodu rozkazu i
rozpoznawaniu skokw bezwarunkowych
dynamiczne, oparte na historii przetwarzania i analizie
szansy wykonania rozgazienia.
20
Konflikty w przetwarzaniu potokowym
Konflikt zasobw (ang. structural hazard). Powstaje on wwczas,
gdy rozkazy bdce przetwarzane w rnych etapach kolejki
jednoczenie sigaj do tych samych zasobw komputera (pamici
operacyjnej, czy te ukadw wejcia-wyjcia).
Przykadem moe by tu sytuacja, gdy rozkaz bdcy w trakcie
przetwarzania pobiera dane z pamici operacyjnej (stopie
MA), a kolejny rozkaz ma by wanie w tym momencie
pobierany (stopie IF).
21
Konflikty w przetwarzaniu potokowym
RAM
ROZKAZ
DANA
Poniewa dwa sowa (kolejny rozkaz i dana dla
rozkazu wczeniejszego) nie mog by
rwnoczenie pobrane z pamici operacyjnej
w kolejce nastpiby przestj.
22
Konflikty w przetwarzaniu potokowym
RAM
ROZKAZ
DANA
D-CACHE
I-CACHE
ROZKAZ
DANA
Rozwizaniem tego problemu jest
rozdzielenie pamici L1 Cache (pami
podrczna procesora pierwszego poziomu)
na pami danych (D-Cache) i pami
rozkazw (I-Cache).
L1- CACHE
23
Konflikty w przetwarzaniu potokowym
Konflikt danych (data hazard) Pojawiaj si one gdy dwa,
przetwarzane w rnych stopniach kolejki, rozkazy korzystaj z tej
samej danej .
Na przykad po wykonaniu pary rozkazw:
a 1 + 2;