Architektura komputerów Wykład nr 12: Architektury superskalarne Piotr Bilski
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
Przetwarzanie superpotokowe Pobranie Dekod. Exec. Zapis Architektura superskalarna stopnia 2 Architektura superpotokowa stopnia 2 czas
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ść
Wpływ zależności na wykonanie programu Zależność danych lub konflikt zasobów i1 Zależność proceduralna i2 i3 i4 i5 i6 czas
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
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” Add R4 R4, R2 Add R3 R3, „1” Add R4 R3, R2 Store [R4] R0
Strategie wydawania rozkazów Kolejne wydawanie/kolejne kończenie Kolejne wydawanie/inna kolejność kończenia Inna kolejność wydawania/inna kolejność kończenia
Kolejne wydawanie/kolejne kończenie Dekodowanie wykonywanie zapis I1 I2 I3 I4 I5 I6 I1 I2 I3 I4 I5 I6 I1 I2 I3 I4 I5 I6 I1 – dwa cykle na wykonanie I3 i I4 – ta sama ALU I5 zależy od I4 I5 i I6 – ta sama ALU
Kolejne wydawanie/inna kolejność kończenia Dekodowanie wykonywanie zapis I1 I2 I3 I4 I5 I6 I1 I2 I3 I4 I5 I6 I2 I1 I3 I4 I5 I6 I1 – dwa cykle na wykonanie I3 i I4 – ta sama ALU I5 zależy od I4 I5 i I6 – ta sama ALU
Zależność wyjściowa I3 nie może być ukończona przed I1 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
Inna kolejność wydawania/inna kolejność kończenia Dekodowanie okno wykonywanie zapis I1 I2 I3 I4 I5 I6 I1, I2 I3, I4 I4,I5,I6 I5 I1 I2 I3 I6 I4 I5 I2 I1 I3 I4 I6 I5 I1 – dwa cykle na wykonanie I3 i I4 – ta sama ALU I5 zależy od I4 I5 i I6 – ta sama ALU
Antyzależność I1: R3 ← R3 op R5 I2: R4 ← R3 + 1 I3: R3 ← R5 + 1 I3 nie może być zakończona, zanim I2 jest wykonana Zależność jest odwrócona
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
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ń
Przyspieszenie architektur superskalarnych (bez przemianowania rejestrów)
Przyspieszenie architektur superskalarnych (z przemianowaniem rejestrów)
Przetwarzanie superskalarne
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
Architektura Pentium 4
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
Potok Pentium 4
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
Schemat PowerPC 601
Potok PowerPC 601