Тема 10

10. Странична преадресация за 36-битов физически адрес: главен каталог, каталози, таблици и страници – формати 4К, 2М и 4М.


страницата се нуждае от дописване/преглеждане


<< Тема 9 | Тема 11 >>

История

Юни 1991, Intel в започна циркулирането на конфиденциални документи обозначаващи новите способности на техния P5 процесор, по-късно известен като "Pentium Processor". Повечето от тези способности бяха тайна пазена от Intel. Но едно от най-важните свойства - Physical Address Extensions (PAE) – беше напълно премахнато. PAE даваще способността на процесора да адресира до 64 GB физическа памет (36-битова адресна магистрала) и достъп до страници с размер 2 MB. По-голямото физическо адресно пространство и новите 2-MB страници бяха вътрешно свързани, тъй като и двете се задействаха от един и същи контролен бит. Във всички други модели на работа, нормалното 32-битово адресно пространство работеше.
PAE щеше да бъде включвано с CR4, бит 5. Когато CR4.PAE=1 (CR4[5]=1), PAE (36-битово адресиране) и големи 2-MB страници щяха да бъдат достъпни. Когато CR4.PAE=0, A[35..32] щеше да бъде заставено да е 0, независимо от това какъв адрес може да бъде генериран в защитен режим (когато дескриптор сочи близо 4 GB се комбинира с отместване което дава резултат повече от 4 GB-ов адрес). Дори когато CR4.PAE=1, адреси над 4 GB няма да бъдат генерирани, освен ако не са резултат от странична преадресация. Единствения начин да достъпим памет над 4 GB беше чрез тези extension-и към страничния модел.

Как работи PAE

За да поддържа 36-битовото адресиране, необходимо е да се направят някои съществени промени на страничния механизъм. Тридесет и два битовия линеен адрес все още се използва, но се превеждат на 36-битов физически такъв. Intel избра да използва три стъпален страничен механизъм за да поддържа PAE за 4-KB страници и дву стъпален за 2-MB страници. С включено PAE , CR3 сочи към малка таблица на указателите на страничните каталози (Page Directory Pointers Table (PDPT)). Всеки входен елемент от PDPT сочи към отделна странична директория. Всеки каталог сочи към странична таблица(за 4-KB страници) или директно към page frame(за 2-MB страници).

4-KB страници

untitled1.JPG

2-MB страници

untitled2.JPG
Тези таблици:
untitled31.JPG
untitled41.JPG
осигуряват информация за всички CPU структури свързани със страничната преадесация докато е включено PAE. Описанието на тези полета може да бъде намерено в подходяща Pentium документация(ако някой го намери да слага, мързи ме да търся).
В по-голямата си част, страничната преадресация работи така както винаги си е работила. Линейния адрес се трансформира във физически чрез поредица от таблици. Най-значимата промяна е допълнителната таблица и промените в самите странични структури. Когато PAE е включено, ново ниво на търсене се явява(търсене в PDPT ). CR3 сочи към 4- вход на PDPT, със входни данни които сочат към отделни каталози. този подход е различен от всички предишни имплементаци, където CR3 сочеше към базата на единствен каталог. Размера на страничните структури се удвоява за да оправдае допълнителните 4 бита на базовия адрес, но виртуално са идентични на предшествениците си. Значението на тези промени както следва:

  • Размера на входовете се удвоява за всяка структура, което води до намаляване на размера на структурата на половина (физическия адрес на всяка структура си остава същия).
  • Повечето от софтуера написан за да поддържа предишните странични имплементации няма да бъде съвместим с PAE.

Страничната преадресация е виртуално идентична на предишната имплементация. Преадресацията е идентична за 2-MB и 4-KB страници, без факта, че указването към таблицата е премахнато в единия случай. Когато 32-битов линеен адрес е предоставен на страницирането, той се разбива на следните полета:

  • CR3 сочи към базовия адрес на PDPT.
  • Адресните битове A[31,30] от линейния адрес формират 2-битов индекс във PDPT. Данните в PDPT съдържат базовия адрес (и някаква контролна информация) за каталога.
  • Адресните битове A[29..21] формират индекс в каталога (от неговата база). Тези входни данни (PDE) сочи към базовия адрес на таблицата (PDE.PS=0, 4-KB pages) или директно към 2-MB page frame (PDE.PS=1).
  • Адресните битове bits A[20..12] формират индекс в таблицата в нейната база (4-KB страници ). Тези входни данни на таблицата сочат към базовия адрес на 4-KB част от паметта.
  • Останалите адресни битове, A[20..00] (2-MB страници) или A[11..00] (4-KB страници), формират индекс(отместване) в действителната страница от паметта.

Във всички случаи, базовите адреси съдържащи се в тези таблици (PDPT, PDE и PTE) са физически адреси и не се обект на никаква странична преадресация.
Ето и картинка за 4-MB страници със PAE
untitled5.JPG
Ако някои има желание нека си я опише. Нещата при нея са много подобни на нещата които казах по-горе.

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License