Relacja między wierszem pamięci podręcznej a stroną pamięci

  1. Jeśli mam rację, strona w pamięci głównej jest najmniejszą jednostką do przesyłania danych między pamięcią główną a zewnętrznym urządzeniem pamięci masowej, takim jak dysk twardy. Linia pamięci podręcznej pamięci głównej to najmniejsza jednostka do przesyłania danych między pamięcią główną a pamięcią podręczną procesora.

  2. Zastanawiam się, czy rozmiar strony jest zawsze lub najlepiej naturalna liczba rozmiaru linii pamięci podręcznej? Jeśli rozmiar linii pamięci podręcznej wynosi 64 bajty, a rozmiar strony pamięci to 4 KB, to każda strona ma 4 KB / 64 bajty == 64 linie pamięci podręcznej.

  3. Czy strona i wiersz pamięci podręcznej są stałymi obiektami w pamięci? A może są to po prostu ciągłe bloki pamięci o określonym rozmiarze, które mogą rozpoczynać się i unosić w dowolnym miejscu w pamięci?

  4. Czy zawsze jest tak, że wiersz pamięci podręcznej nie może obejmować więcej niż jedna strona, tj. część linii pamięci podręcznej znajduje się na stronie, a druga część linii pamięci podręcznej znajduje się na innej stronie?

Dzięki.

Komentarze

  • Odpowiedzi na Twoje pytania w dużym stopniu zależą od architektury procesora.

Odpowiedź

  1. Linia pamięci podręcznej to najmniejsza jednostka, którą można dotknąć pamięci fizycznej. Oznacza to, że kiedy czytasz / zapisujesz 1 bajt, pełna linia pamięci podręcznej zawierająca go jest wczytywana do pamięci podręcznej procesora i zapisywana z powrotem. Zwróć uwagę, że nawet instrukcje, które omijają pamięć podręczną do zapisu (instrukcje przesyłania strumieniowego efemerycznych), zapisują rozmiary linii pamięci podręcznej. W zależności od procesora rozmiary linii pamięci podręcznej wynoszą zwykle 32/64/128 bajtów. Kiedy strony pamięci są zapisywane na dysku, są zapisywane w całości. Dzieje się tak, gdy obciążenie pamięci jest zbyt wysokie lub w przypadku procesów hibernacji (i prawdopodobnie do innych zastosowań). Będą również czytane w całości, gdy będą potrzebne. Dzieje się tak głównie dlatego, że jądro nie ma możliwości sprawdzenia, czy strona jest częściowo lub w pełni wykorzystana. Inne operacje odczytu / zapisu zewnętrznej pamięci masowej mogą mieć dowolną szczegółowość (np. Fwrite (..)).

  2. Rozmiar strony zależy od procesora / GPU. W przypadku większości procesorów rozmiary stron będą wynosić co najmniej 4KB i zazwyczaj obsługują kombinację 4KB / 64KB / 2MB / 4MB / 16MB / 1GB (niekoniecznie wszystkie obsługiwane w tym samym czasie). Rozmiar zawsze będzie potęgą dwóch.

  3. Zarówno strona, jak i wiersz pamięci podręcznej są ciągłe i wymagają wyrównania do odpowiedniego rozmiaru. 64-bajtowa linia pamięci podręcznej jest zawsze wyrównana do 64 bajtów, a strona o wielkości 2 MB jest zawsze wyrównana do 2 MB.

  4. Z powodu nr 3 linia pamięci podręcznej nigdy nie może obejmować 2 stron, zawsze będzie większa niż linia pamięci podręcznej i zawsze będzie wielokrotnością rozmiaru linii pamięci podręcznej.

W tym doskonałym źródle znajdziesz mnóstwo informacji dotyczących pamięci: http://lwn.net/Articles/250967/

Komentarze

  • Czy ta odpowiedź jest nadal aktualna w 2020 roku? Czy te rozmiary się zmieniły?
  • O ile wiem, te wartości są nadal aktualne. Wszystkie nowoczesne procesory x86 i x64 wykorzystują 64 bajty na linię pamięci podręcznej, a 4KB pozostaje najpopularniejszym rozmiarem strony w systemach Windows i Linux. W przypadku urządzeń wbudowanych zapoznaj się z instrukcją obsługi wewnętrznego procesora, aby dowiedzieć się, co jest obsługiwane.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *