Architektura komputerów

1 Architektura komputerówWykład nr 12: Architektury super...
Author: Franciszek Kropiwnicki
0 downloads 8 Views

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