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

Co to jest DHCP?

Co to jest DHCP?

Kiedy łączysz się z siecią, zazwyczaj masz adres IP przypisywany automatycznie przez router dzięki usłudze DHCP.

Jak uruchomić dwa komputery na jednym monitorze?

Jak uruchomić dwa komputery na jednym monitorze?

Przestrzeń może być na wagę złota. Dowiedz się, jak połączyć dwa komputery za pomocą jednego wyświetlacza. Poznaj najlepsze rozwiązania.

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.

Co to jest GDDR6X?

Co to jest GDDR6X?

GDDR6X to nowoczesny typ pamięci graficznej, który oferuje wyjątkową prędkość transferu i efektywność energetyczną.

Jak sprawdzić, czy Twój pracodawca monitoruje Twój komputer?

Jak sprawdzić, czy Twój pracodawca monitoruje Twój komputer?

Sprawdź, czy Twój pracodawca monitoruje Twój komputer, korzystając z Menedżera zadań lub Monitorowania aktywności. Dowiedz się więcej!

Jak znaleźć adres MAC drukarki

Jak znaleźć adres MAC drukarki

Dwa sposoby na znalezienie adresu MAC drukarki Canon Pixma MG5200 i dodatkowe praktyczne porady.

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?

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.