Top Banner

Click here to load reader

Architektura komputerów; procesor część Procesor cz... · PDF fileRejestry procesora dostępne programowo Licznikiem rozkazów (PC) nazywamy rejestr mikroprocesora...

Feb 28, 2019

ReportDownload

Documents

donguyet

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;