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