13 procesory superskalarneid 14749

background image

Architektura komputerów

Tydzień 13

Procesory superskalarne

background image

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.

background image

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

background image

Zależność danych

add r1,r2
mov r3,r1
Drugi rozkaz może być pobrany i zdekodo-

wany, ale nie może być wykonany zanim
nie zostanie wykonany pierwszy rozkaz,
ponieważ potrzebne są dane tworzone
przez pierwszy.

background image

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.

background image

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

background image

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.

background image

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.

background image

Wpływ zależności

Pobieranie

rozkazu

Dekodo-

wanie

Wykony-

wanie

Zapis

opóźniony

Pobieranie

rozkazu

Dekodo-

wanie

Wykony-

wanie

Zapis

opóźniony

r1
r2

Brak zależności

Pobieranie

rozkazu

Dekodo-

wanie

Wykony-

wanie

Zapis

opóźniony

Pobieranie

rozkazu

Dekodo-

wanie

Wykony-

wanie

Zapis

opóźniony

r1
r2

Zależność danych
(r2 wykorzystuje dane
obliczone przez r1)

Pobieranie

rozkazu

Dekodo-

wanie

Wykony-

wanie

Zapis

opóźniony

Pobieranie

rozkazu

Dekodo-

wanie

Wykony-

wanie

Zapis

opóźniony

r1
r2

Zależność proceduralna

Pobieranie

rozkazu

Dekodo-

wanie

Wykony-

wanie

Zapis

opóźniony

Pobieranie

rozkazu

Dekodo-

wanie

Wykony-

wanie

Zapis

opóźniony

r3
r4

Pobieranie

rozkazu

Dekodo-

wanie

Wykony-

wanie

Zapis

opóźniony

Pobieranie

rozkazu

Dekodo-

wanie

Wykony-

wanie

Zapis

opóźniony

r1
r2

Konflikt dotyczący
zasobów

Pobieranie

rozkazu

Dekodo-

wanie

Wykony-

wanie

Zapis

opóźniony

Pobieranie

rozkazu

Dekodo-

wanie

Wykony-

wanie

Zapis

opóźniony

r5
r6

rozgałęzienie

background image

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

background image

Przemianowanie rejestrów

Metoda eliminowania konfliktów

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

R3

b

:=R3

a

op R5

a

R4

b

:=R3

b

+ 1

R3

c

:=R5

a

+ 1

R7

b

:=R3

c

op R4

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.

background image

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.

background image

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


Wyszukiwarka

Podobne podstrony:
13 procesory superskalarne
13 Procesy górotwórcze
13 Procesy termodynamiczne sprzezone
13 Proces podejmowania decyzji [tryb zgodnoci]
WN 13.1.Proces inwestycyjny, materiały dydaktyczne
13 proces spalania
TPL, 13 procesy jednostkowe
13 Proces pielęgnowania jako metoda pracy
13 Organizowanie procesów technologicznych
13a funkcje zarzadzania w aspekcie zasobów inf, Procesy informacyjne w zarządzaniu, materiały studen
(13) Przywództwo i procesy oddziaływania na pracownikówid 844
Procesy inwestycyjne (13 stron)
proces zarządzania (13 str), Zarządzanie(1)
12a gospodarowanie info-wywiad gosp, Procesy informacyjne w zarządzaniu, materiały student Z-sem 12-
13.post.sąd I, Prawo karne procesowe

więcej podobnych podstron