Architektura komputerów Tydzień 13

Procesory superskalarne

Procesor superskalarny

● Termin superskalarny określa

procesory, które mogą wykonywać dwie

lub więcej instrukcje skalarne

(arytmetyczne, logiczne) jednocześnie.

● Rozwiązanie to stosuje się w

nowoczesnych procesorach w celu

zwiększenia wydajności.

Ograniczenia

Następujące ograniczenia uniemożliwiają równoległe wykonywanie instrukcji:

● zależność danych

● zależność proceduralna

● konflikt dotyczący zasobów

● zależność wyjściowa

● antyzależność

Zależność danych

add r1,r2

mov r3,r1

Drugi rozkaz może być pobrany i zdekodowany, ale nie może być wykonany zanim nie zostanie wykonany pierwszy rozkaz, ponieważ potrzebne są dane tworzone

przez pierwszy.

Zależności proceduralne

● Obecność rozgałęzień w sekwencji

rozkazów ma jeszcze większy wpływ na

potok superskalarny, niż na

pojedynczy.

● Straty spowodowane przez

rozgałęzienie mogą być jeszcze

większe, ponieważ więcej jest

wykonywane w jednostce czasu.

Konflikt dotyczący zasobów

● Konflikt dotyczący zasobów polega na jednoczesnym rywalizowaniu dwóch

instrukcji o te same zasoby.

Przykładami takich zasobów są:

– pamięć

– magistrale

– kanały wejścia-wyjścia

● Takie konflikty mogą być rozwiązywane przez zwielokratnianie zasobów lub

odpowiednią organizację.

Zależność wyjściowa

● W przykładowym kodzie:

R3:=R3 op R5

(I1)

R4:=R3+1

(I2)

R3:=R5+1

(I3)

R7:=R3 op R4

(I4)

● Rozkaz I3 nie jest zależny od I1, ale nie może być wykonany przed nim, gdyż

wówczas I4 będzie miał niewłaściwą

zawartość rejestru R3.

Antyzależność

R3:=R3 op R5

(I1)

R4:=R3 + 1

(I2)

R3:=R5 + 1

(I3)

● Wykonywanie rozkazu I3 nie może być zakończone, zanim nie zostanie rozpoczęte wykonywanie rozkazu I2 i nie zostaną

pobrane jego argumenty.

● I3 aktualizuje rejestr R3, który jest źródłem argumentu dla rozkazu I2.

● Ograniczenie jest podobne do zależności danych, lecz na odwrót: drugi rozkaz

niszczy wartość używaną przez pierwszy.

Wpływ zależności

Pobieranie Dekodo-

Wykony-

Zapis

r1

rozkazu

wanie

wanie

opóźniony

Brak zależności

Pobieranie Dekodo-

Wykony-

Zapis

r2

rozkazu

wanie

wanie

opóźniony

Zależność danych

Pobieranie Dekodo-

Wykony-

Zapis

r1

rozkazu

wanie

wanie

opóźniony

(r2 wykorzystuje dane

Pobieranie Dekodo-

Wykony-

Zapis

r2

rozkazu

wanie

wanie

opóźniony

obliczone przez r1)

Pobieranie Dekodo-

Wykony-

Zapis

r1

rozkazu

wanie

wanie

opóźniony

Zależność proceduralna

Pobieranie Dekodo-

Wykony-

Zapis

r2

rozgałęzienie

rozkazu

wanie

wanie

opóźniony

Pobieranie Dekodo-

Wykony-

Zapis

r3

rozkazu

wanie

wanie

opóźniony

Pobieranie Dekodo-

Wykony-

Zapis

r4

rozkazu

wanie

wanie

opóźniony

Pobieranie Dekodo-

Wykony-

Zapis

r5

rozkazu

wanie

wanie

opóźniony

Pobieranie Dekodo-

Wykony-

Zapis

r6

rozkazu

wanie

wanie

opóźniony

Pobieranie Dekodo-

Wykony-

Zapis

r1

rozkazu

wanie

wanie

opóźniony

Konflikt dotyczący

Pobieranie Dekodo-

Wykony-

Zapis

r2

rozkazu

wanie

wanie

opóźniony

zasobów

Kolejność wykonania

rozkazów

● Kolejne wydawanie połączone z

kończeniem w zmienionej kolejności.

– Jeżeli rozkaz wykonuje się dłużej niż jeden cykl, jego wyniki mogą być osiągalne później, niż kolejnego rozkazu.

● Zmieniona kolejność wydawania i

kończenia.

– Wykorzystujemy bufor zdekodowanych

rozkazów zwany oknem rozkazu.

– Jednostka wykonawcza pobiera dowolny rozkaz z okna pod warunkiem spełnienia ograniczeń.

Przemianowanie rejestrów Metoda eliminowania konfliktów

antyzależności i zależności wyjściowej przez powielenie zasobów.

R3 :=R3 op R5

b

a

a

R4 :=R3 + 1

b

b

R3 :=R5 + 1

c

a

R7 :=R3 op R4

b

c

b

Użycie innego fizycznego rejestru R3c w rozkazie I3 zapobiega antyzależnośći w drugim rozkazie oraz zależności wyjściowej w pierwszym. Dzięki temu I3 może być wykonany natychmiast.

Procesor PowerPC 620

● Procesor PowerPC 620 zawiera sześć

niezależnych jednostek wykonawczych:

– jednostkę rozkazów

– trzy jednostki całkowitoliczbowe

– jednostkę ładowania/zapisu

– jednostkę zmiennopozycyjną

● Procesor może jednocześnie

wykonywać do 4 rozkazów: 3

całkowitoliczbowe i 1

zmiennopozycyjny.

PowerPC 620 cd

● Procesor zawiera układy przewidywania rozgałęzień, bufory przemianowania

rejestrów oraz stacje rezerwowe

wewnątrz jednostek wykonawczych.

● Procesor ten może wykonywać do 4

nierozstrzygniętych rozkazów

rozgałęzień.

● Przewidywanie skoków oparte jest na tablicy historii zawierającej 2048

zapisów. Skuteczność przewidywań: 90%.