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

9
  1. Jeśli mam rację, strona w pamięci głównej to najmniejsza jednostka 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 jest najmniejszą jednostką służącą do przesyłania danych między pamięcią główną a pamięcią podręczną procesora.

  2. Zastanawiam się, czy rozmiar strony jest zawsze, czy najlepiej, aby był naturalną liczbą rozmiarów linii pamięci podręcznej? Jeśli rozmiar linii pamięci podręcznej wynosi 64 bajty, a rozmiar strony pamięci to 4KB, to każda strona ma 4KB / 64 bajty == 64 linii pamięci podręcznej.

  3. Czy strona i wiersz pamięci podręcznej są zarówno 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ą się uruchamiać i unosić w dowolnym miejscu w pamięci?

  4. Czy zawsze jest tak, że linia pamięci podręcznej nie może obejmować więcej niż jednej strony, tzn. 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.

Tim
źródło
2
Odpowiedzi na pytania są w dużym stopniu zależne od architektury procesora.
TMN

Odpowiedzi:

8
  1. Linia pamięci podręcznej to najmniejsza jednostka, za pomocą której można dotknąć pamięci fizycznej. Oznacza to, że gdy czytasz / zapisujesz 1 bajt, pełna linia pamięci podręcznej zawierająca go jest wczytywana do pamięci podręcznej procesora i zapisywana ponownie. Zauważ, że nawet instrukcje, które omijają pamięć podręczną podczas zapisu (efemeryczne instrukcje przesyłania strumieniowego), zapisują w rozmiarach linii pamięci podręcznej. W zależności od procesora wielkość linii pamięci podręcznej wynosi zwykle 32/64/128 bajtów. Kiedy strony pamięci są zapisywane na dysku, są zapisywane w całości. Stanie się tak, gdy ciśnienie w pamięci będzie zbyt wysokie lub podczas procesów hibernacji (i ewentualnie 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 w pamięci zewnętrznej mogą mieć dowolną szczegółowość (np .: fwrite (..)).

  2. Rozmiar strony zależy od procesora / karty graficznej. W przypadku większości procesorów rozmiary stron będą wynosić co najmniej 4KB i ogólnie będą obsługiwać kombinację 4KB / 64KB / 2 MB / 4 MB / 16 MB / 1 GB (niekoniecznie wszystkie obsługiwane jednocześnie). 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 ich odpowiedniego rozmiaru. 64-bajtowa linia pamięci podręcznej jest zawsze wyrównana do 64 bajtów, a strona 2 MB jest zawsze wyrównana do 2 MB.

  4. Z powodu nr 3 linia pamięci podręcznej nigdy nie może rozciągać się na 2 strony, ponieważ rozmiary stron zawsze będą większe niż linia pamięci podręcznej i zawsze będą wielokrotnością wielkości linii pamięci podręcznej.

Zobacz to doskonałe źródło bogactwa informacji dotyczących pamięci: http://lwn.net/Articles/250967/

Nicholas Frechette
źródło