Тема 16

Странична преадресация в Pentium


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


double_paging.JPG

Двойна преадресация

Pentium е пример за двуетапна адресна транслация. Ако в контролния регистър CR0 битът paging е зададен със стойност 1, то, освен сегментация се използва и странициране (segmentation and paging).
В паметта имаме записан каталог - каталог на каталозите - с големина 4KB (1024 записа x 4B), чието начало е записано в регистъра CR3. В него са записани непълните адреси в паметта на останалите 1024 каталога. Те се намират на произволно място в паметта и всеки от тях е с големина 4KB, като така се описват 220 страници. Всяка страница е по 4 KB, което дава адресируемо пространство 232B ( колкото е цялото адресно пространство в 32-битова машина ).

Механизъм

В режим на сегментация и странициране получаваме 32-битов линеен адрес, който се дели на 3 части: номер на каталог (CN, Catalog Number, 10 бита), номер на страница (PN, Page Number, 10 бита), отместване (Page Offset, 12 бита). Първите 10 бита (CN), указващи номер на ред в каталога на каталозите, се умножават по ширината на полето на каталога (4 B) и се добавят към началния му адрес, записан в CR3. Ако старшият бит P на записа (Catalog Entry) е 1 (present), то съществува каталог в паметта, сочен от този запис. В такъв случай се взимат младшите 20 бита от записа , допълват се с 12 нули отдясно (началният адрес на страница е кратен на 4096), и се прибавя стойността на полето PN, умножена по големината на записа (4 B). Така полученият адрес указва адреса на търсената страница вътре в каталога, ако тя съществува (ако P = 1). Последните 20 бита на записа отново се допълват с 12 нули отдясно и се прибавя 12-битовият Page Offset. Получава се реалният адрес в паметта.

Двойна срещу единична преадресация

Този метод използва 4KB повече от обикновеното странициране (4KB + 4 MB) за главния каталог.
Предимството на двуетапната транслация на Pentium пред обикновеното странициране е, че смяната на всеки процес води до смяна на запис в главния каталог, който е само 4 KB. Работи се с активни динамични блокове по 4 KB - малките каталози. Недостатъкът е двойното адресиране. Това адресиране се прави от ТLB–блока в процесорния кеш. Адресите не се преизчисляват от АЛУ-то, а от специални малки суматори.

Предимство се явява фактът, че двойното адресиране е приложимо при по-новите 64-битови компютри. В ОП седи само Каталогът на каталозите.

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