Professional Documents
Culture Documents
Architektura Komputerów Wykład 9 - Redukcja Opóźnień W Procesorach Superpotokowych I Superskalarnych
Architektura Komputerów Wykład 9 - Redukcja Opóźnień W Procesorach Superpotokowych I Superskalarnych
Krzysztof Bielawski
pokój 020
Architektura Komputerów
Plan wykładu
2
Opóźnienia w procesorach superpotokowych i
superskalarnych
3
Opóźnienia skoków
4
Spekulatywne wykonanie instrukcji
5
Terminolgia
6
Przewidywanie skoków – zasady
7
Przewidywanie skoków – aspekty
8
Możliwość przewidywania skoków
9
Przewidywanie statyczne i dynamiczne
10
Statyczne przewidywanie realizacji skoku
11
Dynamiczne przewidywanie wystąpienia skoku
Wymaga wprowadzenia do struktury procesora dodatkowych
bloków sprzętowych, gromadzących informację o historii
wykonania programu
Bufor docelowy skoków (BTB – Branch Target Buffer)
Gromadzi informację o pewnej liczbie ostatnio wykonywanych skoków
Działa na zasadzie podobnej do kieszeni
Często realizowany w powiązaniu z kieszenią kodu
Przy każdej realizacji skoku adres, pod którym jest położona
instrukcja skoku jest odnotowany w BTB
Na ogół razem z adresem docelowym skoku
Przy każdym pobraniu instrukcji stopień pobrania sprawdza, czy
adres pobrania został wcześniej zanotowany jako adres instrukcji
skoku
Jeśli tak – stopień pobrania może w następnym cyklu „wykonać” skok
12
Bufor docelowy skoków - działanie
13
Bufor docelowy - ograniczenia
14
Przewidywanie adresów powrotów z procedur
15
Sprzętowy stos powrotów
Niewielki, niewidoczny programowo stos (bufor LIFO), umieszczony
w procesorze
Pojemność: 8..16 elementów
Wykonanie instrukcji skoku ze śladem powoduje umieszczenie na
stosie powrotów wartości śladu
Dzieje się to niezależnie od przesłania śladu na stos pamięci (CISC)
lub do rejestru (RISC)
Napotkanie instrukcji powrotu powoduje zdjęcie śladu ze stosu
Przy przewidywaniu dynamicznym akcja ta jest inicjowana przez BTB
przy pobraniu instrukcji – powrót nie wnosi żadnych opóźnień
Przy przewidywaniu statycznym spekulatywnym powrót następuje po
zdekodowaniu instrukcji powrotu
Wykonanie instrukcji powrotu weryfikuje poprawność spekulacji
Jeśli adres ze stosu sprzętowego jest różny od adresu powrotu –
następuje anulowanie całego ciągu instrukcji
16
Sprzętowy stos powrotów – efektywność
17
Dynamiczne przewidywanie realizacji skoku
18
Dynamiczne predyktory ralizacji skoku
Automaty decydujące o sposobie spekulatywnego wykonania przewidywanego
skoku warunkowego na podstawie historii wykonania programu
Działanie predyktorów
Deterministyczne wykonanie (rozstrzygnięcie skoku) przez procesor
powoduje modyfikację stanu predyktora
Spekulatywne wykonanie skoku na podstawie stanu predyktora
Klasyfikacja predyktorów
Wg. konstrukcji elementarnego automatu predyktora
dwustanowe
czterostanowe
Wg. sposobu wiązania instrukcji skoku z automatem predyktora:
Jednopoziomowe – prawdopodobieństwo bezwarunkowe
Dwupoziomowe – prawdopodobieństwo warunkowe
Trójpoziomowe – prawdopodobieństwo z adaptacją schematu
przewidywania
19
Predyktor dwustanowy - budowa
Stany: T, NT
Predyktor przydzielany do
instrukcji skoku z chwilą pierwszej
realizacji
Kolejne przewidywanie skoku jast
takie samo, jak było ostatnie
wykonanie
20
Predyktor dwustanowy - charakterystyka
21
Stany:
ST – Strongly Taken
WT – Weakly Taken
WNT – Weakly Not Taken
SNT – Strong Not Taken
Pierwsza realizacja skoku
wprowadza predyktor w stan
ST
Zmiana przewidywania
następuje po dwóch kolejnych
takich samych wykonaniach
22
Predyktor czterostanowy - charakterystyka
23
Ograniczenia predyktorów jednopoziomowych
24
Predyktory dwupoziomowe
25
Predyktor dwupoziomowy gLocal
26
Predyktor dwupoziomowy gShare
27
Predyktory dwupoziomowe - własności
28
Predyktory trójpoziomowe
29
Redukcja opóźnień pobierania danych z pamięci
30
Kieszenie a wydajność
31
Instrukcje pobierania danych
32
Instrukcje PREFETCH - x86
33
Automatyczne pobieranie danych przez procesor
34
Dziękuję za uwagę.
35