Co to jest bufor podglądu tłumaczeń?

Procesory to niesamowicie złożone bestie. Istnieje ogromna liczba połączonych ze sobą części, które muszą działać w idealnej harmonii, aby osiągnąć poziomy wydajności, które widzimy. Wydajność pamięci jest kluczowym czynnikiem wpływającym na wydajność nowoczesnych procesorów, szczególnie jako czynnik ograniczający.

Dlaczego szybkość pamięci jest tak ważna?

Procesory są niewiarygodnie szybkie, a najnowsze generacje pracują z częstotliwością 5,7 GHz, gdy są odpowiednio chłodzone. Pozwala im to na wykonanie 5,7 miliarda operacji na sekundę. Wiele z tych operacji wykonuje działania na pewnym typie danych, które muszą być przechowywane w pamięci.

Główna pamięć systemowa, znana jako RAM, jest również bardzo szybka. Niestety, jest bardzo szybki w porównaniu do czegokolwiek innego niż procesor. Bezwzględne opóźnienie w nowoczesnej, wysokiej klasy pamięci RAM jest rzędu 60 nanosekund. Niestety przekłada się to na około 342 cykli procesora. Aby przyspieszyć dostęp do pamięci, używana jest pamięć podręczna procesora, która dynamicznie buforuje dane. Ta pamięć podręczna znajduje się na samej matrycy procesora i wykorzystuje komórki SRAM zamiast komórek DRAM, co czyni ją znacznie szybszą. Niestety, pamięć podręczna procesora jest również znacznie mniejsza niż systemowa pamięć RAM, generalnie nie wynosi nawet 100 MB. Mimo niewielkich rozmiarów wielopoziomowy system pamięci podręcznej procesora znacznie zwiększa wydajność systemu.

Nadchodzi pamięć wirtualna, która wszystko zepsuje

Nowoczesne komputery wykorzystują system zwany pamięcią wirtualną. Zamiast przydzielać procesom adresy pamięci fizycznej, używane są adresy pamięci wirtualnej. Każdy proces ma swoją własną przestrzeń adresową pamięci wirtualnej. Ma to dwie zalety. Po pierwsze, zapewnia łatwe oddzielenie pamięci należącej do jednego procesu i pamięci należącej do innego. Pomaga to zapobiegać atakom, w których złośliwe oprogramowanie odczytuje dane z pamięci innego oprogramowania, potencjalnie uzyskując dostęp do poufnych informacji. Ukrywa również fizyczną strukturę pamięci przed procesem. Pozwala to procesorowi przenosić rzadko używane bity pamięci do pliku stronicowania w pamięci masowej, bez konieczności odłączania go od wirtualnej pamięci RAM. Pozwala to komputerowi delikatnie zarządzać scenariuszami, w których wymagana jest większa ilość pamięci RAM niż jest fizycznie dostępna. Bez pamięci wirtualnej

Niestety, jeśli używasz adresów pamięci wirtualnej, komputer musi faktycznie przetłumaczyć te adresy pamięci wirtualnej na adresy pamięci fizycznej, aby odczytać dane. Wymaga to tabeli do przechowywania wszystkich tłumaczeń adresów pamięci wirtualnej na adresy pamięci fizycznej. Rozmiar tego zależy bezpośrednio od ilości używanej pamięci RAM. Jest ogólnie dość mały, przynajmniej w porównaniu z pojemnością systemowej pamięci RAM. Niestety, jeśli przechowujesz translację między adresami wirtualnymi a adresami fizycznymi w pamięci RAM, musisz wykonać dwa żądania do pamięci RAM na każde żądanie do pamięci RAM. Jeden, aby znaleźć adres fizyczny, o który należy poprosić, a następnie drugi, aby faktycznie uzyskać dostęp do tej lokalizacji.

Wprowadź bufor podglądu tłumaczenia

Rozwiązaniem tego problemu jest szybsze przechowywanie tabeli translacji. Pamięć podręczna procesora ładnie pasowałaby do rachunku, przynajmniej z punktu widzenia szybkości. Problem polega jednak na tym, że pamięć podręczna procesora jest niewielka i już mocno wykorzystana. Tabela nie tylko nie mieści się w pamięci podręcznej, ale zakłóciłoby to jej już i tak decydujące o wydajności użycie.

Oczywiście, jeśli zasada pamięci podręcznej już działa w przypadku dostępu do pamięci, dlaczego nie powtórzyć tego dla tablicy translacji? I to jest dokładnie to, czym jest Translation Lookaside Buffer, czyli TLB. Jest to szybka pamięć podręczna dla ostatnich tłumaczeń adresów. Nie jest wystarczająco duży, aby pomieścić całą tabelę, ale jego mały rozmiar oznacza, że ​​może reagować bardzo szybko, w ciągu jednego cyklu zegara.

Każde żądanie pamięci przechodzi przez TLB. W przypadku trafienia TLB może podać adres pamięci fizycznej dla rzeczywistego żądania, zwykle dodając jeden cykl opóźnienia. Jeśli brakuje TLB, wyszukiwanie musi być wykonane z pamięci głównej. Istnieje niewielki spadek wydajności w przypadku pominięcia TLB o około 5 cykli, co jest stratą więcej niż przyćmioną przez opóźnienie dostępu do pamięci. Po pobraniu translacji adresu z systemowej pamięci RAM jest ona umieszczana w TLB, a następnie żądanie jest powtarzane z natychmiastowym trafieniem TLB.

Uwaga: Istnieją różne schematy eksmisji TLB. Niektórzy mogą korzystać ze schematu First In, First Out lub FIFO. Inni mogą korzystać ze schematu najrzadziej używanego lub LFU.

W rzadkich przypadkach, gdy nie ma wpisu w tablicy translacji adresów, przyczyną jest błąd strony, ponieważ żądane dane nie znajdują się w pamięci RAM. System operacyjny musi następnie obsłużyć błąd i przesłać dane z pamięci do pamięci RAM, zanim żądanie będzie mogło być kontynuowane.

Wniosek

Translation Lookaside Buffer (TLB) to szybka pamięć podręczna procesora przeznaczona do buforowania ostatnich tłumaczeń adresów z pliku stronicowania w systemowej pamięci RAM. Jest to konieczne, ponieważ systemy pamięci wirtualnej, zaimplementowane we wszystkich nowoczesnych komputerach, wymagałyby dwóch żądań do pamięci RAM na każde żądanie do pamięci RAM. Jeden do tłumaczenia adresu pamięci wirtualnej na adres pamięci fizycznej, a drugi do rzeczywistego dostępu do adresu fizycznego. Dzięki buforowaniu ostatnich tłumaczeń opóźnienie pamięci może zostać znacznie zmniejszone w przypadku trafień TLB.

Należy zadbać o to, aby tłumaczenia w pamięci podręcznej były odpowiednie dla aktualnie aktywnego procesu. Ponieważ każdy proces ma inną wirtualną przestrzeń adresową, nie można ich ponownie wykorzystać. Przyczyną luki w zabezpieczeniach Meltdown było niedokładne ograniczenie.



Leave a Comment

Jak sklonować dysk twardy

Jak sklonować dysk twardy

We współczesnej epoce cyfrowej, gdzie dane są cennym zasobem, klonowanie dysku twardego w systemie Windows może być dla wielu kluczowych procesów. Ten obszerny przewodnik

Jak naprawić błąd ładowania sterownika WUDFRd w systemie Windows 10?

Jak naprawić błąd ładowania sterownika WUDFRd w systemie Windows 10?

Czy podczas uruchamiania komputera pojawia się komunikat o błędzie informujący, że nie udało się załadować sterownika WUDFRd na Twój komputer?

Jak naprawić błąd NVIDIA GeForce Experience o kodzie 0x0003

Jak naprawić błąd NVIDIA GeForce Experience o kodzie 0x0003

Czy na pulpicie pojawia się błąd NVIDIA GeForce o kodzie 0x0003? Jeśli tak, przeczytaj blog, aby dowiedzieć się, jak szybko i łatwo naprawić ten błąd.

How to Use Auto Clicker for Chromebook

How to Use Auto Clicker for Chromebook

Today, were going to delve into a tool that can automate repetitive clicking tasks on your Chromebook: the Auto Clicker. This tool can save you time and

Jak usunąć procesor graficzny z komputera z systemem Windows w 2023 r

Jak usunąć procesor graficzny z komputera z systemem Windows w 2023 r

Czy musisz usunąć GPU z komputera? Dołącz do mnie, gdy wyjaśnię, jak usunąć procesor graficzny z komputera w tym przewodniku krok po kroku.

Jak zainstalować dysk SSD NVMe na komputerze stacjonarnym i laptopie

Jak zainstalować dysk SSD NVMe na komputerze stacjonarnym i laptopie

Kupiłeś nowy dysk SSD NVMe M.2, ale nie wiesz, jak go zainstalować? Czytaj dalej, aby dowiedzieć się, jak zainstalować dysk SSD NVMe na laptopie lub komputerze stacjonarnym.

Co to jest bomba logiczna?

Co to jest bomba logiczna?

Bomba logiczna to incydent związany z bezpieczeństwem, w którym osoba atakująca przeprowadza opóźnioną akcję. Czytaj dalej, aby dowiedzieć się więcej.

Co to jest SoC?

Co to jest SoC?

Jeśli kiedykolwiek zajrzałeś do wnętrza wieży PC, możesz zobaczyć, że jest tam wiele różnych komponentów. Twój przeciętny laptop zawiera większość tych samych komponentów

Co to jest szyfrowanie asymetryczne?

Co to jest szyfrowanie asymetryczne?

Algorytmy szyfrowania asymetrycznego wykorzystują dwa różne klucze. Jeden klucz służy do szyfrowania, a drugi do deszyfrowania.

Steam Deck: Jak sformatować kartę SD

Steam Deck: Jak sformatować kartę SD

Steam Deck jest dostępny w trzech opcjach przechowywania: 64 GB eMMC, 256 GB NVMe SSD i 512 GB NVMe SSD. W zależności od biblioteki gier i rozmiaru gier