1 Architektura komputerówWykład nr 12: Architektury superskalarne Piotr Bilski
2 Organizacja superskalarnaRejestry całkowitoliczbowe Rejestry zmiennopozycyjne Potokowe jednostki funkcjonalne Operacje na pamięci Zwielokrotnienie potoków Za każdy potok odpowiedzialna jest inna jednostka funkcjonalna
3 Przetwarzanie superpotokowePobranie Dekod. Exec. Zapis Architektura superskalarna stopnia 2 Architektura superpotokowa stopnia 2 czas
4 Ograniczenia architektury superskalarnejParalelizm na poziomie rozkazu Paralelizm na poziomie maszyny Ograniczenia: Prawdziwa zależność danych Zależność proceduralna Konflikt zasobów Zależność wyjściowa Antyzależność
5 Wpływ zależności na wykonanie programuZależność danych lub konflikt zasobów i1 Zależność proceduralna i2 i3 i4 i5 i6 czas
6 Prawdziwa zależność danychI1 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
7 Paralelizm na poziomie rozkazuWymaga 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
8 Strategie wydawania rozkazówKolejne wydawanie/kolejne kończenie Kolejne wydawanie/inna kolejność kończenia Inna kolejność wydawania/inna kolejność kończenia
9 Kolejne wydawanie/kolejne kończenieDekodowanie 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
10 Kolejne wydawanie/inna kolejność kończeniaDekodowanie 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
11 Zależność wyjściowa I3 nie może być ukończona przed I1I1: 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
12 Inna kolejność wydawania/inna kolejność kończeniaDekodowanie 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
13 Antyzależność I1: R3 ← R3 op R5 I2: R4 ← R3 + 1 I3: R3 ← R5 + 1I3 nie może być zakończona, zanim I2 jest wykonana Zależność jest odwrócona
14 Przemianowanie rejestrówZmiana 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
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ń
16 Przyspieszenie architektur superskalarnych (bez przemianowania rejestrów)
17 Przyspieszenie architektur superskalarnych (z przemianowaniem rejestrów)
18 Przetwarzanie superskalarne
19 Przykład superskalarności – P4Procesor 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
20 Architektura Pentium 4
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
22 Potok Pentium 4
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
24 Schemat PowerPC 601
25 Potok PowerPC 601