Pamięć podręczna śledzenia - Trace cache

Image
Działanie pamięci podręcznej śledzenia

W architekturze komputerowej , o cache śladu lub ślad wykonanie cache jest wyspecjalizowanym podręczna instrukcja , która przechowuje strumień dynamicznych instrukcji zwanych śladu . Pomaga w zwiększaniu przepustowości pobierania instrukcji i zmniejszaniu zużycia energii (w przypadku Intel Pentium 4 ) poprzez przechowywanie śladów instrukcji, które zostały już pobrane i zdekodowane. Procesor ślad jest architektura zaprojektowany wokół cache śladowej i przetwarza zgodnie z instrukcjami wyświetlanymi na poziomie śladu ziarnistości. Formalna matematyczna teoria śladów jest opisana przez monoidy śladowe .

tło

Najwcześniejszą naukową publikacją dotyczącą pamięci podręcznej śledzenia była „Pamięć podręczna śledzenia: podejście o niskim opóźnieniu do pobierania instrukcji o dużej przepustowości”. Ten szeroko uznany artykuł został przedstawiony przez Erica Rotenberga, Steve'a Bennetta i Jima Smitha na konferencji International Symposium on Microarchitecture (MICRO) w 1996 roku . Wcześniejszą publikacją jest patent USA nr 5381533, autorstwa Alexa Pelega i Uriego Weisera z firmy Intel, „Pamięć podręczna instrukcji dynamicznego przepływu zorganizowana wokół segmentów śledzenia niezależnych od wirtualnej linii adresowej”, będąca kontynuacją wniosku złożonego w 1992 r., Później porzuconego.

Konieczność

Szersze procesory superskalarne wymagają pobrania wielu instrukcji w jednym cyklu w celu uzyskania wyższej wydajności. Instrukcje do pobrania nie zawsze znajdują się w ciągłych lokalizacjach pamięci ( bloki podstawowe ) z powodu instrukcji rozgałęzienia i skoku . Dlatego procesory potrzebują dodatkowej obsługi logicznej i sprzętowej, aby pobierać i dopasowywać takie instrukcje z nieciągłych bloków podstawowych. Jeśli przewiduje się, że wiele gałęzi nie zostało pobranych , procesory mogą pobierać instrukcje z wielu sąsiadujących bloków podstawowych w jednym cyklu. Jednakże, jeśli przewiduje się, że któraś z gałęzi jest zajęta , procesor powinien pobierać instrukcje z obranej ścieżki w tym samym cyklu. Ogranicza to możliwości pobierania przez procesor.

Image
Podstawowe bloki prostej pętli if-else

Pod uwagę cztery podstawowe elementy ( A , B , C , D ), jak pokazano na rysunku, który odpowiada proste if inny pętli. Te bloki będą przechowywane w sposób ciągły, tak jak ABCD w pamięci. Jeżeli oddział D jest przewidywany nie odebrana, moduł pobierania może pobrać podstawowe bloki A , B , C które są umieszczone w sposób zwarty. Jednakże, jeżeli D przewiduje się wziąć , pobranie informacji urządzenie musi pobierać A , B , D które są umieszczone nie na całej powierzchni. W związku z tym pobranie tych bloków, które nie są umieszczone w sposób ciągły, w jednym cyklu będzie bardzo trudne. Tak więc w takich sytuacjach pamięć podręczna śledzenia pomaga procesorowi.

Po pobraniu pamięć podręczna śledzenia przechowuje instrukcje w ich dynamicznej sekwencji. Po ponownym napotkaniu tych instrukcji pamięć podręczna śledzenia umożliwia jednostce pobierania instrukcji procesora pobranie z niej kilku podstawowych bloków bez martwienia się o rozgałęzienia w przepływie wykonywania. Instrukcje będą przechowywane w pamięci podręcznej śledzenia po ich zdekodowaniu lub po wycofaniu. Jednak sekwencja instrukcji jest spekulatywna, jeśli są one przechowywane tuż po etapie dekodowania.

Struktura śladowa

Ślad, nazywany również dynamiczną sekwencją instrukcji, to wpis w pamięci podręcznej śledzenia. Charakteryzuje się maksymalną liczbą instrukcji i maksymalną liczbą bloków podstawowych . Ślady mogą zaczynać się od dowolnej instrukcji dynamicznej. Wiele ścieżek może mieć tę samą instrukcję początkową, tj. Ten sam licznik programu początkowego (PC) i instrukcje z różnych bloków podstawowych, jak w przypadku wyników rozgałęzienia. Na powyższym rysunku ABC i ABD są prawidłowymi śladami. Oba zaczynają się na tym samym komputerze (adres A) i mają różne podstawowe bloki zgodnie z przewidywaniem D.

Ślady zwykle kończą się, gdy wystąpi jedna z następujących sytuacji:

  1. Ślad został wypełniony dopuszczalną maksymalną liczbą instrukcji
  2. Trace ma dopuszczalne maksymalne podstawowe bloki
  3. Instrukcje dotyczące zwrotu
  4. Pośrednie gałęzie
  5. Połączenia systemowe

Informacje dotyczące kontroli śledzenia

Pojedynczy ślad będzie zawierał następujące informacje:

  • Uruchamianie PC - PC pierwszej instrukcji w trace
  • Flaga gałęzi - ( maksymalne podstawowe bloki -1 ) prognozy rozgałęzienia
  • Maska gałęzi - liczba gałęzi w śladzie i to, czy ślad kończy się w gałęzi, czy nie
  • Trace fall through - następny komputer PC, jeśli ostatnia instrukcja nie jest brana pod uwagę lub nie jest to gałąź
  • Trace target - adres docelowej lokalizacji ostatniej gałęzi

Projekt pamięci podręcznej śledzenia

Poniżej przedstawiono czynniki, które należy wziąć pod uwagę podczas projektowania pamięci podręcznej śledzenia.

  • Zasady wyboru śladu - maksymalna liczba instrukcji i maksymalna liczba podstawowych bloków w śladzie
  • Kojarzenie - wiele sposobów, w jakie pamięć podręczna może mieć
  • Metoda indeksowania pamięci podręcznej - konkatenacja lub XOR z bitami PC
  • Asocjatywność ścieżek - ślady z tym samym początkowym komputerem, ale z różnymi podstawowymi blokami mogą być mapowane do różnych zestawów
  • Opcje wypełnienia pamięci podręcznej śledzenia -
    1. Po etapie dekodowania (spekulatywne)
    2. Po przejściu na emeryturę

Pamięć podręczna śledzenia nie znajduje się na krytycznej ścieżce pobierania instrukcji

Logika trafienia / chybienia

Linie śledzenia są przechowywane w pamięci podręcznej śledzenia w oparciu o komputer PC pierwszej instrukcji w śladzie i zestaw prognoz dotyczących rozgałęzień. Pozwala to na przechowywanie różnych ścieżek śledzenia, które zaczynają się od tego samego adresu, z których każda reprezentuje różne wyniki gałęzi. Ta metoda znakowania pomaga zapewnić skojarzenie ścieżki z pamięcią podręczną śledzenia. Inna metoda może obejmować posiadanie tylko początkowego komputera PC jako tagu w pamięci podręcznej śledzenia. Na etapie pobierania instrukcji potoku bieżący komputer PC wraz z zestawem prognoz dotyczących rozgałęzień jest sprawdzany w pamięci podręcznej śledzenia pod kątem trafienia . W przypadku trafienia dostarczana jest linia śledzenia w celu pobrania jednostki, która nie musi przechodzić do zwykłej pamięci podręcznej ani do pamięci w celu uzyskania tych instrukcji. Pamięć podręczna śledzenia kontynuuje podawanie do jednostki pobierania do momentu zakończenia linii śledzenia lub do momentu, gdy w potoku pojawi się błędna prognoza . Jeśli jest chybienie, zaczyna być budowany nowy ślad.

Pamięć podręczna śledzenia wykonania Pentium 4 przechowuje mikrooperacje wynikające z dekodowania instrukcji x86 , zapewniając również funkcjonalność pamięci podręcznej mikrooperacji. Mając to na uwadze, następnym razem, gdy potrzebna jest instrukcja, nie trzeba jej ponownie dekodować na mikrooperacje.

Niedogodności

Wady pamięci podręcznej śledzenia to:

  1. Nadmiarowe przechowywanie instrukcji między pamięcią podręczną śledzenia i pamięcią podręczną instrukcji oraz w samej pamięci podręcznej śledzenia.
  2. Nierówność zasilania i złożoność sprzętu

Pamięć podręczna śledzenia wykonania

W pamięci podręcznej L1 procesorów NetBurst Intel włączył pamięć podręczną śledzenia wykonania. Przechowuje zdekodowane mikrooperacje , dzięki czemu podczas wykonywania nowej instrukcji, zamiast ponownego pobierania i dekodowania instrukcji, CPU uzyskuje bezpośredni dostęp do zdekodowanych mikrooperacji z pamięci podręcznej śledzenia, oszczędzając w ten sposób znaczną ilość czasu. Co więcej, mikrooperacje są buforowane w ich przewidywanej ścieżce wykonania, co oznacza, że ​​gdy instrukcje są pobierane przez procesor z pamięci podręcznej, są one już obecne we właściwej kolejności wykonania. Intel wprowadził później podobną, ale prostszą koncepcję z Sandy Bridge, zwaną pamięcią podręczną mikrooperacji (pamięć podręczna UOP).

Zobacz też

Bibliografia