OAK W8 Potok, superskalar

background image

1

Wyższa Szkoła Informatyki Stosowanej i Zarządzania

Organizacja i Architektura

Komputerów

Przetwarzanie potokowe.

Architektury superskalarne

background image

2

Wyższa Szkoła Informatyki Stosowanej i Zarządzania

Pipelining – wprowadzenie

z

Pipelining: technika wykonywania ciągu

instrukcji, w której kilka kolejnych

instrukcji jest wykonywanych

równolegle

z

Przykład: pralnia

z

Ania, Basia, Celina i Dorota

mają po kompletnym ładunku odzieży,

do prania, wysuszenia i wyprasowania

z

Pranie trwa 30 minut

z

Suszenie zajmuje 40 minut

z

Prasowanie trwa 20 minut

A

B

C D

background image

3

Wyższa Szkoła Informatyki Stosowanej i Zarządzania

Wersja 1 – pralnia sekwencyjna

A

B

C

D

30 40 20 30 40 20 30 40 20 30 40 20

6

7

8

9

10

11

północ

czas

Kolejno

ść

zada

ń

z

Sekwencyjne pranie 4 ładunków zajmuje 6 godzin

background image

4

Wyższa Szkoła Informatyki Stosowanej i Zarządzania

Wersja 2 – pralnia potokowa

A

B

C

D

6

7

8

9

10

11

północ

czas

30 40 40 40 40 20

• Metoda „start ASAP”

• Pranie 4 ładunków

zajmuje 3,5 godziny

• Speedup 6/3,5 = 1,7

K

ol

ej

no

ść

za

da

ń

background image

5

Wyższa Szkoła Informatyki Stosowanej i Zarządzania

Pipelining – wnioski

z

Pipelining nie zmienia czasu wykonania pojedynczej instrukcji

(

latency

), wpływa natomiast na czas wykonania ciągu instrukcji

(

throughput

)

z

Częstość z jaką pracuje potok jest ograniczona przez czas pracy

najwolniejszego stopnia w potoku (

slowest pipeline stage

)

z

Wiele instrukcji jest wykonywanych równolegle (

instruction level

parallelism

)

z

Potencjalne zwiększenie wydajności jest tym większe, im większa jest

liczba stopni w potoku

z

Duże zróżnicowanie czasu trwania operacji w poszczególnych

stopniach ogranicza wzrost wydajności

z

Czas potrzebny na napełnienie potoku i opróżnienie go ogranicza

wzrost wydajności

background image

6

Wyższa Szkoła Informatyki Stosowanej i Zarządzania

Wnioski

cd.

z

Architektura RISC zapewnia lepsze wykorzystanie
możliwości przetwarzania potokowego niż architektura
CISC. W architekturze RISC:

instrukcje mają taką samą długość

większość operacji dotyczy rejestrów

odwołania do pamięci, które mogą ewentualnie powodować
kolizje są rzadsze i występują tylko w przypadku specjalnie do
tego celu używanych instrukcji load i store

z

W architekturze CISC instrukcje mają różną długość,
występuje bogactwo sposobów adresowania danych w
pamięci

background image

7

Wyższa Szkoła Informatyki Stosowanej i Zarządzania

Cykl

prefetch

z

Najprostsza wersja przetwarzania potokowego

z

Pobranie kolejnej instrukcji (cykl

fetch

) wymaga

dostępu do pamięci

z

Wykonanie instrukcji zazwyczaj nie wymaga

dostępu do pamięci

z

Wniosek: można pobrać następną instrukcję z

pamięci podczas wykonywania poprzedniej

instrukcji

z

Metoda nazywana „pobraniem wstępnym” -

instruction prefetch

background image

8

Wyższa Szkoła Informatyki Stosowanej i Zarządzania

Prefetch

cd.

z

Wprowadzenie cyklu prefetch poprawia wydajność (ale
nie podwaja):

pobranie kodu operacji trwa zwykle krócej niż faza wykonania

z

może pobierać więcej niż jeden rozkaz w fazie prefetch?

każdy rozkaz skoku powoduje utratę korzyści z fazy prefetch

z

Wnioski są niejednoznaczne:

z jednej strony korzystnie byłoby zwiększyć liczbę stopni w
potoku

z drugiej jednak długi potok w przypadku skoku musi być
opróżniony i napełniony od nowa

background image

9

Wyższa Szkoła Informatyki Stosowanej i Zarządzania

Punkt wyjścia – brak potoku

Układ

kombinacyjny

R

E

G

300ps

30ps

Clock

latency = 330ps
throughput = 3.12 GOPS

System
bez potoku
(przykład)

Op1

Op2

Op3

??

Czas

Każda operacja musi być zakończona zanim zacznie się

wykonywanie następnej operacji

W podanym przykładzie czas wykonania operacji wynosi 330ps

background image

10

Wyższa Szkoła Informatyki Stosowanej i Zarządzania

Potok 3-stopniowy

Wykonanie kolejnych instrukcji

zaczyna się co120ps

3 instrukcje są wykonywane

równolegle

Czas oczekiwania na

wykonanie instrukcji wzrósł z

330ps do 360ps, ale

przepustowość wzrosła z 3.12

do 8.33 GOPS

R

E

G

Clock

układ
komb.

R

E

G

układ
komb.

R

E

G

układ
komb.

100ps

20ps

100ps

20ps

100ps

20ps

latency = 360ps
throughput = 8.33 GOPS

Czas

Op1

Op2

Op3

??

Op4

background image

11

Wyższa Szkoła Informatyki Stosowanej i Zarządzania

Diagramy czasowe

z

Bez potoku

Kolejna operacja nie może się zacząć przed zakończeniem

poprzedniej

z

3-stopniowy potok

Do 3 instrukcji wykonuje się równolegle

Time

OP1
OP2
OP3

Time

A

B

C

A

B

C

A

B

C

OP1
OP2
OP3

A, B, C – fazy wykonania
instrukcji

background image

12

Wyższa Szkoła Informatyki Stosowanej i Zarządzania

Ograniczenie – różnice opóźnień

R

e
g

Clock

R

e
g

Comb.

logic

B

R

e
g

Comb.

logic

C

50 ps

20 ps

150 ps

20 ps

100 ps

20 ps

latency = 510 ps
throughput = 5.88 GOPS

Comb.

logic

A

Time

OP1
OP2
OP3

A

B

C

A

B

C

A

B

C

Przepustowość ograniczona przez najwolniejszy stopień

Pozostałe (szybsze) stopnie są przez znaczny czas bezczynne

Należy dążyć do budowy potoku o zbliżonych czasach operacji

w poszczególnych stopniach

background image

13

Wyższa Szkoła Informatyki Stosowanej i Zarządzania

Głęboki potok – problemy

latency = 420 ps, throughput = 14.29 GOPS

Clock

R

e
g

Comb.

logic

50 ps 20 ps

R

e
g

Comb.

logic

50 ps 20 ps

R

e
g

Comb.

logic

50 ps 20 ps

R

e
g

Comb.

logic

50 ps 20 ps

R

e
g

Comb.

logic

50 ps 20 ps

R

e
g

Comb.

logic

50 ps 20 ps

W miarę wydłużania (zwiększania głębokości) potoku opóźnienia

rejestrów stają się coraz bardziej znaczące

Procentowy udział czasu opóźnienia rejestrów w potoku:

z

1-stopień: 6.25%

z

3-stopnie: 16.67%

z

6-stopni: 28.57%

Problem ma duże znaczenie, ponieważ współczesne procesory

o dużej wydajności mają coraz głębsze potoki

background image

14

Wyższa Szkoła Informatyki Stosowanej i Zarządzania

Cykl wykonania instrukcji

background image

15

Wyższa Szkoła Informatyki Stosowanej i Zarządzania

Typowe 6 stopni potoku

z

Pobranie instrukcji (fetch instruction - FI)

z

Dekodowanie instrukcji (decode instruction - DI)

z

Obliczenie adresu argumentu (calculate operand – CO)

z

Pobranie argumentu (fetch operand – FO)

z

Wykonanie instrukcji (execute instruction - EI)

z

Zapis wyniku (write - WO)

background image

16

Wyższa Szkoła Informatyki Stosowanej i Zarządzania

Potok 6-stopniowy

background image

17

Wyższa Szkoła Informatyki Stosowanej i Zarządzania

Instrukcja skoku

Rozkaz 3 – rozgałęzienie warunkowe
do rozkazu 15

Zawartość potoku, która musi
być usunięta

background image

18

Wyższa Szkoła Informatyki Stosowanej i Zarządzania

Skoki a potok

z

Warianty przetwarzania potokowego w
przypadku instrukcji skoków (branch):

Multiple Streams

– dwa potoki; w przypadku rozgałęzienia

każdy z potoków jest ładowany kodem odpowiadającym
wykonaniu bądź niewykonaniu skoku; metoda zawodna w
przypadku skoków wielokrotnych

Prefetch Branch Target

– kod z obu dróg rozgałęzienia jest

ładowany do potoku i przechowywany aż do chwili wykonania
skoku; metoda zastosowana w IBM 360/91

Loop buffer

– instrukcje są pobierane do małej szybkiej pamięci

działającej podobnie jak cache, ale sterowanej przez układ
sterowania potokiem; metoda efektywna w przypadku pętli
obejmujących niewiele instrukcji; zastosowana w Cray-1

background image

19

Wyższa Szkoła Informatyki Stosowanej i Zarządzania

Skoki a potok

cd.

z

Warianty przetwarzania potokowego w
przypadku instrukcji skoków (branch):

Delayed Branching

– opóźnianie skoku; metoda szeregowania

instrukcji poprzedzających i następujących po skoku
wykonywana w trakcie kompilacji; kompilator stara się
przenieść instrukcje poprzedzające skok i umieścić je za
skokiem; dzięki temu w przypadku skoku potok nie musi być
opróżniany i instrukcje mogą być wykonywane nadal; w takim
przypadku wykonanie skoku jest wstrzymywane aż do
zakończenia wykonania przestawionych instrukcji

Branch Prediction

– przewidywanie skoków; najbardziej

popularna i najbardziej efektywna metoda stosowana we
współczesnych procesorach

background image

20

Wyższa Szkoła Informatyki Stosowanej i Zarządzania

Adres

Normal

Delayed

100

LOAD A,X

LOAD A,X

101

ADD A,1

ADD A,1

102

JUMP 105

JUMP

106

103

ADD B,A

NOP

104

SUB B,C

ADD B,A

105

STORE Z,A SUB B,C

106

STORE Z,A

• W tym przykładzie kompilator wstawia po rozkazie skoku JUMP

jedną instrukcję pustą (one delay slot). Jest nią instrukcja NOP
(no operation – nic nie rób)

• Wykorzystano język asemblera hipotetycznego procesora, dla

uproszczenia założono, że każda instrukcja zajmuje 1 słowo

Opóźnianie skoków - przykład

one delay slot

background image

21

Wyższa Szkoła Informatyki Stosowanej i Zarządzania

Opóźnianie skoków

cd.

Można ulepszyć program z poprzedniego slajdu dokonując przestawienia
instrukcji. Należy zauważyć, że ADD A,1 zawsze dodaje 1 do akumulatora
A, zatem instrukcja ta może być przesunięta przez kompilator i użyta w
miejsce NOP

Adres

Normal

Delayed

Optimized

100

LOAD A,X

LOAD A,X

LOAD A,X

101

ADD A,1

ADD A,1

JUMP

105

102

JUMP 105

JUMP

106

ADD A,1

103

ADD B,A

NOP

ADD B,A

104

SUB B,C

ADD B,A

SUB B,C

105

STORE Z,A SUB B,C

STORE Z,A

106

STORE Z,A

background image

22

Wyższa Szkoła Informatyki Stosowanej i Zarządzania

Efektywność opóźniania skoków

z

W porównaniu z normalnym szeregowaniem rozkazów nic nie

tracimy, a możemy zyskać

z

Dobry kompilator zapewnia następującą efektywność przy opóźnianiu

skoków:

około 60% slotów zostaje wypełnionych

około 80% instrukcji umieszczonych w slotach jest przydatnych w

dalszym wykonywaniu programu

łącznie 48% (60% x 80%) wszystkich slotów jest wykorzystanych

z korzyścią dla wydajności systemu

z

Zalety i wady metody opóźniania skoków

Zaleta: optymalizacja kompilatora ma wpływ na pracę pipeliningu

Wada: w nowoczesnych procesorach z głębokim potokiem (deep

pipeline) metoda opóźniania skoków jest mało skuteczna

background image

23

Wyższa Szkoła Informatyki Stosowanej i Zarządzania

Przewidywanie skoków

z

Metody statyczne

Zakładamy, że skok nie będzie nigdy wykonany

z

Metoda – branch never will be taken

z

Do potoku pobiera się zawsze instrukcję następującą po skoku

z

Metoda stosowana w procesorach Motorola 68020 i VAX 11/780

Zakładamy, że skok będzie zawsze wykonany

z

Metoda – branch always will be taken

z

Do potoku pobiera się instrukcję wskazywaną przez adres skoku

(branch target)

O tym czy skok będzie, czy też nie będzie wykonany

wnioskujemy na podstawie rodzaju skoku (kodu operacji)

z

Przesłanką metody jest spostrzeżenie, że pewne rodzaje skoków

są wykonywane z dużym, a inne z małym prawdopodobieństwem

z

Badania pokazują, że można uzyskać nawet 75% sukcesów

background image

24

Wyższa Szkoła Informatyki Stosowanej i Zarządzania

Przewidywanie skoków

z

Metody dynamiczne

Prognoza skoku jest ustalana dynamicznie, w trakcie
wykonania programu

Przewidywanie jest wykonywane na podstawie
historii każdego skoku zapisanej w tablicy historii
skoków BTB (branch target buffer)

BTB składa się zwykle z 128 – 1024 rekordów o
postaci:

Adres instrukcji

Adres skoku (target)

Stan

background image

25

Wyższa Szkoła Informatyki Stosowanej i Zarządzania

Predykcja skoków – diagram BTB

Stan: 11

Stan: 01

Stan: 00

Stan: 10

Przykładowe
kodowanie
stanów:

00 – mocna hipoteza

o braku skoku

01 – słaba hipoteza

o braku skoku

10 – słaba hipoteza

o skoku

11 – mocna hipoteza

o skoku

background image

26

Wyższa Szkoła Informatyki Stosowanej i Zarządzania

Rozmiar BTB

Im większy jest rozmiar BTB (czyli im więcej rekordów
mieści tablica), tym bardziej trafne jest przewidywanie
skoków

Średnia liczba

Rozmiar BTB

trafnych prognoz [%]

16 40

32 50
64 65
128 72
256

78

512

80

1024 85
2048

87

background image

27

Wyższa Szkoła Informatyki Stosowanej i Zarządzania

Głębokość potoku

z

Wyniki badań pokazują, że istnieje teoretyczna
optymalna wartość głębokości potoku równa około 8
stopni

z jednej strony im głębszy potok, tym lepiej działa równoległe
przetwarzanie instrukcji

z drugiej strony głęboki potok w przypadku źle przewidzianego
skoku powoduje dużą stratę czasu (branch penalty)

z

W nowych procesorach stosuje się ulepszone warianty
przetwarzania potokowego (hyperpipeline) dostosowane
do pracy z bardzo szybkim zegarem

w takich procesorach optymalna głębokość potoku jest większa
i dochodzi nawet do 20 (przykład – Pentium 4)

background image

28

Wyższa Szkoła Informatyki Stosowanej i Zarządzania

Głębokość potoku

cd.

Liczba stopni przetwarzania danych typu integer w potokach
popularnych procesorów

CPU

liczba stopni w potoku

P

5

MMX

6

P-Pro

12

P-II

12

P-III

10

P-4

20

M1-2

7

K5

7

K6

6

K7

11

P – Pentium
M – Cyrix
K – AMD

background image

29

Wyższa Szkoła Informatyki Stosowanej i Zarządzania

Zjawisko hazardu

z

Równoległe przetwarzanie instrukcji w potoku prowadzi często do
niekorzystnych zjawisk nazywanych hazardem. Hazard polega na
braku możliwości wykonania instrukcji w przewidzianym dla niej
cyklu. Wyróżnia się trzy rodzaje hazardu:

1.

Hazard zasobów

(structural hazard) – kiedy dwie instrukcje odwołują

się do tych samych zasobów

2.

Hazard danych

(data hazard) – kiedy wykonanie instrukcji zależy od

wyniku wcześniejszej, nie zakończonej jeszcze instrukcji znajdującej
się w potoku

3.

Hazard sterowania

(control hazard) – przy przetwarzaniu instrukcji

skoków i innych instrukcji zmieniających stan licznika rozkazów (np.
wywołania podprogramów)

z

Hazard sterowania został omówiony już wcześniej – teraz
zajmiemy się hazardem zasobów i danych

background image

30

Wyższa Szkoła Informatyki Stosowanej i Zarządzania

Zjawisko hazardu

cd.

z

Podstawowym sposobem rozwiązywania problemów
wynikających z hazardu jest chwilowe zatrzymanie
potoku na jeden lub więcej cykli zegara. W tym celu do
potoku wprowadza się tzw. przegrody (stalls), które są
faktycznie operacjami pustymi („bubbles”)

z

Przegrody wpływają oczywiście na zmniejszenie
wydajności CPU

z

Ze względu na występowanie zjawisk hazardu
rzeczywista wydajność CPU jest zawsze mniejsza od
wydajności teoretycznej, obliczonej przy założeniu że
hazardy nie występują

background image

31

Wyższa Szkoła Informatyki Stosowanej i Zarządzania

Hazard zasobów

z

Nazywany też hazardem strukturalnym lub konfliktem

zasobów (resource conflict)

z

Powodem hazardu tego typu jest jednoczesne żądanie

dostępu do tego samego zasobu (zwykle pamięci) przez

dwa różne stopnie potoku

z

Typowy hazard zasobów występuje, gdy jedna z

instrukcji wykonuje ładowanie danych z pamięci podczas

gdy inna ma być w tym samym cyklu ładowana

(instruction fetch)

z

Rozwiązanie polega na wprowadzeniu jednej (lub kilku

przegród). W efekcie wzrasta CPI i spada wydajność

procesora

background image

32

Wyższa Szkoła Informatyki Stosowanej i Zarządzania

Hazard zasobów - przykład

czas (cykle zegara)

Mem

Load

Instr 1

Instr 2

Instr 3

Instr 4

ALU

Mem

Reg

Mem

Reg

ALU

Mem

Reg

Mem

Reg

ALU

Mem

Reg

Mem

Reg

ALU

Reg

Mem

Reg

ALU

Mem

Reg

Mem

Reg

Żądanie odczytu z pamięci

Cykl IF instr 3

Kolejne instrukcje

background image

33

Wyższa Szkoła Informatyki Stosowanej i Zarządzania

Hazard zasobów – przykład

cd.

czas (cykle zegara)

Mem

Load

Instr 1

Instr 2

Instr 3

ALU

Mem

Reg

Mem

Reg

ALU

Mem

Reg

Mem

Reg

ALU

Mem

Reg

Mem

Reg

ALU

Reg

Mem

Reg

Kolejne instrukcje

stall

background image

34

Wyższa Szkoła Informatyki Stosowanej i Zarządzania

Hazard danych

z

Hazard danych występuje, ponieważ potok zmienia
kolejność

operacji odczytu/zapisu argumentów w

stosunku do kolejności, w jakiej te operacje występują w
sekwencyjnym zapisie programu

z

Przykład:

add

ax

,bx

mov

cx,

ax

Instrukcja

mov

cx,ax

ma pobrać zawartość akumulatora

ax

, podczas gdy potok jeszcze nie określił tej zawartości

w poprzedniej instrukcji dodawania

background image

35

Wyższa Szkoła Informatyki Stosowanej i Zarządzania

Hazard typu RAW

z

Wyróżnia się trzy typy (rodzaje) hazardu danych: RAW,
WAR i WAW:

z

Hazard RAW (read after write) występuje gdy pojawi się
żądanie odczytu danych przed zakończeniem ich zapisu

z

Przykład (taki sam jak na poprzednim slajdzie)

add

ax

,bx

mov

cx,

ax

background image

36

Wyższa Szkoła Informatyki Stosowanej i Zarządzania

Hazard typu WAR

z

Hazard WAR (write after read) występuje gdy pojawi się

żądanie zapisu danych przed zakończeniem ich odczytu

z

Przykład:

mov

bx,

ax

add

ax

,cx

z

CPU chce zapisać do akumulatora ax nową wartość

równą sumie ax+cx, podczas gdy instrukcja przesłania

mov jeszcze nie odczytała starej zawartości ax i nie

przesłała jej do rejestru bx

background image

37

Wyższa Szkoła Informatyki Stosowanej i Zarządzania

Hazard typu WAW

z

Hazard WAW (write after write) występuje gdy pojawi się

żądanie zapisu danych przed zakończeniem wcześniejszej

operacji zapisu

z

Przykład:

mov

ax

,[mem]

add

ax

,bx

z

CPU chce zapisać do akumulatora ax nową wartość równą

sumie ax+bx, podczas gdy poprzednia instrukcja nie

zdążyła jeszcze pobrać do ax zawartości komórki pamięci

[mem]

background image

38

Wyższa Szkoła Informatyki Stosowanej i Zarządzania

Problem

z

Czy może powstać hazard danych RAR (read after read) ?

z

Przykład:

add

bx,ax

mov

cx,ax

z

Odpowiedź: taka sytuacja nie powoduje hazardu danych,

ponieważ zawartość rejestru ax nie zmienia się. Może

natomiast wystąpić konflikt równoczesnego dostępu

(hazard zasobów). Problem można rozwiązać stosując

rejestry typu dual-port

background image

39

Wyższa Szkoła Informatyki Stosowanej i Zarządzania

Zapobieganie hazardom danych

z

Najprostszą metodą jest, jak poprzednio, zatrzymywanie
potoku (stalls)

metoda ta obniża wydajność CPU i jest stosowana w
ostateczności

z

Szeregowanie statyczne

(static scheduling)

wykonywane programowo podczas kompilacji

polega na zmianie kolejności instrukcji, tak aby zlikwidować
hazardy

likwidacja hazardów nie zawsze jest możliwa

dobre kompilatory potrafią usunąć znaczną część potencjalnych
hazardów danych

background image

40

Wyższa Szkoła Informatyki Stosowanej i Zarządzania

Szeregowanie statyczne

z

Przykład:

Kod oryginalny

Kod po uszeregowaniu

add

ax

,15

add

ax,15

mov

cx,

ax

mov

[mem],bx

mov

[mem],bx

mov

cx,ax

z

Zmiana kolejności instrukcji nie wpływa na działanie
programu

z

Hazard RAW został zlikwidowany, ponieważ instrukcja
dodawania zdąży być wykonana przed pobraniem
argumentu przez instrukcję przesłania ax do cx

background image

41

Wyższa Szkoła Informatyki Stosowanej i Zarządzania

Szeregowanie dynamiczne

z

Dynamic scheduling – wspólna nazwa technik

polegających na usuwaniu problemów z hazardem

danych w trakcie wykonywania programu, a nie w fazie

kompilacji

realizacja sprzętowa w CPU

najważniejsze techniki:

z

wyprzedzanie argumentów (operand forwarding)

z

wyprzedzanie wyników operacji (result forwarding)

w procesorach superskalarnych stosuje się ponadto

z

notowanie (scorebording)

z

przemianowywanie rejestrów (register renaming)

background image

42

Wyższa Szkoła Informatyki Stosowanej i Zarządzania

Procesory superskalarne

z

Procesory, które wykonują równolegle więcej niż jeden
rozkaz (paralelizm na poziomie rozkazu)

z

Podstawowe bloki funkcjonalne CPU są zwielokrotnione:

dwa potoki (lub więcej)

kilka jednostek ALU (zwykle osobne ALU dla operacji integer i
FP)

z

Termin „superskalarny” użyty po raz pierwszy w 1987
roku oznacza, że CPU przetwarza w danej chwili kilka
argumentów skalarnych (liczb), a nie tylko jedną
wielkość skalarną

background image

43

Wyższa Szkoła Informatyki Stosowanej i Zarządzania

Procesor superskalarny - koncepcja

background image

44

Wyższa Szkoła Informatyki Stosowanej i Zarządzania

Superskalar – koncepcja

cd.

background image

45

Wyższa Szkoła Informatyki Stosowanej i Zarządzania

Superskalar

cd.

Porównanie koncepcji CPU:

1) z potokiem instrukcji
2) z superpotokiem
3) superskalarnej

Superpotok jest taktowany
podwójną czestością zegara

Rozwiązanie superskalarne
zapewnia największą
wydajność

background image

46

Wyższa Szkoła Informatyki Stosowanej i Zarządzania

Superskalar

- problemy

Zagadnienie
współzależności instrukcji
w procesorach
superskalarnych jest
jeszcze trudniejsze niż
problem hazardów w
pojedynczym potoku

background image

47

Wyższa Szkoła Informatyki Stosowanej i Zarządzania

Superskalar – problemy

cd.

z

W celu odpowiedniego wykorzystania zalet architektury
superskalarnej stosuje się rozmaite techniki:

z

Przemianowywanie rejestrów – metoda usuwania uzależnień
między instrukcjami przy użyciu zbioru pomocniczych rejestrów

z

Okna rejestrów – parametry są przekazywane w bloku rejestrów
nazywanym oknem; zmiana bloku (i tym samym parametrów)
wymaga zmiany samego wskaźnika okna

z

Statyczna optymalizacja kodu (w fazie kompilacji)

z

Zaawansowane dynamiczne metody szeregowania instrukcji
(parowanie, technika zmiany kolejności wykonywania rozkazów –
out-of-order completion)

z

Ze względu na swoje cechy architektura RISC znacznie lepiej
sprzyja technice superskalarnej niż architektura CISC

background image

48

Wyższa Szkoła Informatyki Stosowanej i Zarządzania

Superskalar

– przykład

Uproszczony schemat
blokowy procesora
superskalarnego
UltraSparc IIi (Sun)

background image

49

Wyższa Szkoła Informatyki Stosowanej i Zarządzania

Podsumowanie

z

Koncepcja przetwarzania potokowego

głębokość potoku

potok a skoki – przewidywanie skoków

zjawisko hazardu

z

sterowania

z

danych

z

zasobów

szeregowanie statyczne i dynamiczne

z

Architektura superskalarna

metody zwiększania wydajności

przemianowywanie rejestrów

okna rejestrów

statyczne i dynamiczne szeregowanie rozkazów


Document Outline


Wyszukiwarka

Podobne podstrony:
w8 VLAN oraz IP w sieciach LAN
W8 kwas glutaminowy
AM1 W8
oak dining table
zostan supersprzedawca(1)
Buczkowski Czarny potok
Ekonomia Drdrozdrowski, w8 motywowanie
dydaktyka notatki, Supersiatkareczka, Nauka, Filologia polska
Pchf W8 6
EZNiOS Log 12 13 w8 kryzys slajdy
PodstEle w8 id 369046 Nieznany
Zostan SuperSprzedawca
Be a Network Marketing Superstar
Ch w8 1.12, Studia (Geologia,GZMIW UAM), I rok, Chemia
HG W8, Wykłady WSB

więcej podobnych podstron