Transcript Wykład 12

Slide 1

Architektura komputerów
Wykład nr 12: Architektury superskalarne

Piotr Bilski


Slide 2

Organizacja superskalarna
Rejestry
całkowitoliczbowe

Rejestry
zmiennopozycyjne

Potokowe
jednostki
funkcjonalne
Operacje
na pamięci

• Zwielokrotnienie potoków
• Za każdy potok odpowiedzialna jest inna jednostka
funkcjonalna


Slide 3

Przetwarzanie superpotokowe
Pobranie Dekod.

Exec.

Zapis

Architektura
superskalarna
stopnia 2

Architektura
superpotokowa
stopnia 2
czas


Slide 4

Ograniczenia architektury
superskalarnej
• Paralelizm na poziomie rozkazu
• Paralelizm na poziomie maszyny
• Ograniczenia:






Prawdziwa zależność danych
Zależność proceduralna
Konflikt zasobów
Zależność wyjściowa
Antyzależność


Slide 5

Wpływ zależności na wykonanie
programu
i1

Zależność danych lub
konflikt zasobów

i2
i1
i2
i3
i4
i5
i6

Zależność
proceduralna

czas


Slide 6

Prawdziwa zależność danych
I1

Add

r1, r2

I2

Move

r3, r1

• Obie instrukcje mogą zostać pobrane i
zdekodowane jednocześnie
• I2 nie może być wykonana zanim I1 nie
zostanie wykonana


Slide 7

Paralelizm na poziomie rozkazu
• Wymaga niezależności między
następującymi po sobie instrukcjami
• Możliwa do osiągnięcia, jeśli istnieje
niezależność proceduralna i danych
• Na przykład:
Load R1  R2

Add

R3  R3, „1”
R4  R3, R2

Add

R3  R3, „1”

Add

Add

R4  R4, R2

Store [R4]  R0


Slide 8

Strategie wydawania rozkazów

• Kolejne wydawanie/kolejne kończenie
• Kolejne wydawanie/inna kolejność
kończenia
• Inna kolejność wydawania/inna kolejność
kończenia


Slide 9

Kolejne wydawanie/kolejne kończenie
Dekodowanie

I1
I3
I3
I5

I2
I4
I4
I4
I6
I6

wykonywanie
I1
I1

zapis

I2
I3

I1

I2

I3

I4

I5

I6

I4
I5
I6

I1 – dwa cykle na wykonanie

I5 zależy od I4

I3 i I4 – ta sama ALU

I5 i I6 – ta sama ALU


Slide 10

Kolejne wydawanie/inna kolejność
kończenia
Dekodowanie
I1
I3
I5

I2
I4
I4

wykonywanie
I1
I1

I6
I6

zapis

I2

I3
I4
I5
I6

I1 – dwa cykle na wykonanie

I5 zależy od I4

I3 i I4 – ta sama ALU

I5 i I6 – ta sama ALU

I2
I1
I4
I5
I6

I3


Slide 11

Zależność wyjściowa
I1:

R3 ← R3 op R5

I2:

R4 ← R3 + 1

I3:

R3 ← R5 + 1

I4:

R7 ← R3 op R4

• I3 nie może być ukończona przed I1
• Zmiana kolejności wykonywania rozkazów
jest trudna i wymaga rozwiązań
sprzętowych


Slide 12

Inna kolejność wydawania/inna
kolejność kończenia
Dekodowanie
I1
I3

I2
I4

I5

I6

okno

I1, I2
I3, I4
I4,I5,I6
I5

wykonywanie

I1
I1

zapis

I2
I6
I5

I3
I4

I1 – dwa cykle na wykonanie

I5 zależy od I4

I3 i I4 – ta sama ALU

I5 i I6 – ta sama ALU

I2
I1
I4
I5

I3
I6


Slide 13

Antyzależność





I1:
I2:
I3:
I4:

R3 ← R3 op R5
R4 ← R3 + 1
R3 ← R5 + 1
R7 ← R3 op R4

• I3 nie może być zakończona, zanim I2 jest
wykonana
• Zależność jest odwrócona


Slide 14

Przemianowanie rejestrów
• Zmiana sekwencji wykonywania rozkazów
uniemożliwia określenie zawartości
rejestrów w dowolnej chwili
• Nowym danym procesor przypisuje wolne
rejestry
• Rozkazy sięgają do danej poprzez
numer/nazwę odpowiadającego jej rejestru


Slide 15

Paralelizm maszynowy
• Powielanie jednostek funkcjonalnych ma
sens tylko, gdy przemianuje się rejestry
• Okno rozkazu powinno być dostatecznie
duże, aby pomieścić efektywnie dużo
rozkazów (>16)
• Konieczna jest skuteczna predykcja
rozgałęzień


Slide 16

Przyspieszenie architektur
superskalarnych (bez
przemianowania rejestrów)

Przyspieszenie

2,5
2
1,5
1
0,5
0
Basic

Load/Store

ALU

Both


Slide 17

Przyspieszenie architektur
superskalarnych (z
przemianowaniem rejestrów)

Acceleration

4,5
4
3,5
3
2,5
2
1,5
1
0,5
0
Basic

Load/Store

ALU

Both


Slide 18

Przetwarzanie superskalarne


Slide 19

Przykład superskalarności – P4
• Procesor pobiera rozkazy sekwencyjnie
• Rozkaz tłumaczony jest na mikrooperacje
(rozkazy RISC)
• Mikrooperacje są przetwarzane
superskalarnie w 20-elementowych
potokach
• Wyniki mikrooperacji są wysyłane do
wewnętrznych rejestrów i porządkowane


Slide 20

Architektura Pentium 4


Slide 21

Działanie Pentium 4
• Pobranie instrukcji z pamięci w porządku programu
statycznego
• Tłumaczenie instrukcji na jedną lub więcej instrukcji
RISC o ustalonej długości (mikrooperacji)
• Wykonywanie mikrooperacji w potoku superskalarnym
– Mikrooperacje mogą być wykonywane w innej kolejności!

• Umieszczenie wyników mikrooperacji w zbiorze
rejestrów w oryginalnym porządku programu
• Zewnętrzna powłoka CISC z wewnętrznym rdzeniem
RISC
• Wewnętrzny rdzeń RISC o długości co najmniej 20
etapów


Slide 22

Potok Pentium 4


Slide 23

Architektura PowerPC

• Procesor składa się z trzech niezależnych
jednostek wykonawczych (wykonanie
trzech rozkazów jednocześnie):
– Jednostka przetwarzania rozgałęzień

– Jednostka zmiennopozycyjna
– Jednostka całkowitoliczbowa


Slide 24

Schemat PowerPC 601


Slide 25

Potok PowerPC 601