Asembler x86/Zaawansowana architektura: Różnice pomiędzy wersjami

Usunięta treść Dodana treść
Doles (dyskusja | edycje)
Nie podano opisu zmian
Doles (dyskusja | edycje)
Linia 40:
Samą translację podzielono na dwa etapy w celu oszczędzenia pamięci RAM. Najpierw jest translacja z użyciem Katalogu Stron, następnie przy użyciu Tablicy Stron. Każdy uruchomiony proces ma przydzielony odpowiedni wpis w Katalogu ale nie oznacza to że każdy proces musi go mieć od razu. Dany proces może zgłosić żądanie do systemu operacyjnego o przeprowadzenie tej operacji. Zjawosko to nazywa się ''' stronicowaniem na żądanie'''. Przedstwię teraz translację adresu liniowego.
W rejestrze CR3 umieszczony jest surowy, fizyczny adres Katalogu Stron (Page Directory). W Katalogu Stron znajduje się adres liniowy właściwej Tablicy Stron dla danego procesu. Z kolei Tablica Stron przechowuje informację o adresie fizycznym początku danej ramki strony. Ostatnie pole zwane Przesunięciem (Offset) determinuje jak o ile należy się przemieścić wewnątrz strony ( innymi słowy ile należy się przemieścić od adresu ramki strony). Ponieważ to pole ma 12 bitów zatem pojedyńcza strona może mieć rozmiar właśnie 4 KB.
Zarówno pola Katalogu Stron jak i Tablicy Stron mają po 10 bitów, więc obie te lokacje mogą mieć maksymalnie 1024 pól. W ten sposób Katalog Stron może zaadresować:
:<MATH>{1024 x 1024 x 4096 = 2^(10) x 2^(10) x 2^(22) = 2^(10 + 10 + 22) = 2^32 = 4 mld coś tam}</MATH> komórek pamięci.
 
{{TODO|Kategorycznie poprawić ten szablon}}
Zatem dokładnie tyle ile mogą mieć pamięci RAM komputery z serii 80386 i nowsze ( 4 GB).
Poszczególne wejścia z Katalogu Stron i Tablicy Stron mają taką samą strukturę. Każe pole ma ma poniższe swoje własne "pole":
*Flaga Dostępu - (ang. Accessed Flag) - jest ustawiana za każdym razem przez jednostkę stronicującą gdy obliczany jest adres ramki strony. Ta flaga może być użyta przez system operacyjny przy wyborze stron pamięci, które mają być odłożone do pliku wymiany. Sama jednostka stronicująca nigdy nie czyści (zeruje) tej flagi. To musi być wykonane przez system operacyjny.
*Dirty Flag - ta flaga dotyczny tylko Tablicy Stron. Jest ustawiana za każdym razem gdy przeprowadzana jest operacja zapisu na danej ramce strony. Jest zastosowanie jest podobne do flagi dostępu.
*Flaga Zapisu/Odczytu - (ang. Read/Write Flag) flaga ta determinuje prawa dostępu do strony lub całej Tablicy Stron. Jest ona częścią sprzętowej ochrony stronicowania.
 
*Flaga Użytkownika/Nadzorcy- (ang.User/Supervisor flag) zawiera uprawnienia dla strony lub całej Tablicy Stron. Również jest fragmentem sprzętowej ochrony mechanizmu stronicowania.
*FlagiPCD i PWT - wykorzystywane są w celu kontroli przemieszczenia strony lub całej Tablicy Stron do pamięci cache.
*Flaga Rozmiaru Strony - (ang. Page Size Flag) dotyczy tylko Katalogu Stron. Jeśli jest ustawiona, to poszczególne wejścia z Katalogu Stron dotyczą ramek stron o rozmiarze 2 MB, w przeciwnym wypadku 4 MB.
*Global Flag - dotyczy wyłącznie Tablicy Stron. Została ona wprowadzona w procesorach Petiun Pro przy mechanizmie pamięci cache.