 Бит размера страниц PS при установленном значении бита PSE = 1 указывает размер используемых страниц: 4 Кбайт при PS = 0, 4 Мбайт при PS = 1 (если PSE = 0, то используются страницы по 4 Кбайт при любом значении PS).
| 31
| 12
| 11
| 9
| 8
| 7
| 6
| 5
| 4
| 3
| 2
| 1
| 0
| а)
| Базовый адрес таблицы страниц
| AVL
| G
| PS
| О
| А
| PCD
| PWT
| U/S
| R/W
| Р
|
| 31
| 12
| 11
| 9
| 8
| 7
| 6
| 5
| 4
| 3
| 2
| 1
| 0
| б)
| Базовый адрес страниц
| AVL
| G
| О
| D
| А
| PCD
| PWT
| U/S
| R/W
| Р
|
| 31
| 22
| 21
| 12
| 11
| 9
| 8
| 7
| 6
| 5
| 4
| 3
| 2
| 1
| 0
| в)
| Базовый адрес страниц
| Резервировано
| AVI
| G
| PS
| О
| А
| PCD
| PWT
| U/S
| R/W
| Р
|
Рис. 2.45. Формат указателей таблицы (а), страницы (б) для страниц 4Кбайт и указателя страницы для страниц 4Мбайт (в) при 32-разрядном адресе
Бит глобальности G программно устанавливается в состояние «1», чтобы отметить разделы или страницы, часто используемые при решении данной задачи. Базовые адреса этих разделов или страниц, загруженные во внутреннюю буферную память TLB, сохраняются при ее очистке. Подробнее работа TLB рассмотрена ниже.
Биты 9-11 указателей (AVL на рис. 2.45) зарезервированы для операционной системы (ОС), которая может использовать их для своих потребностей. Например, в этих битах может размещаться информация о времени последнего обращения к данному разделу или странице. Эта информация используется ОС для определения разделов и страниц, подлежащих замене из внешней памяти.
Если процессор работает в режиме формирования расширенных 36-разрядных адресов (в регистре CR4 установлено значение бита РАЕ = 1), то процедура формирования физического адреса несколько усложняется (см. рис. 2.46). В этом случае вводится дополнительная таблица каталогов, с помощью которой адресуется каталог разделов (при использовании стандартных страниц 4 Кбайт, рис. 2.46, а) или каталог страниц (при использовании расширенных страниц 2 Мбайт, рис. 2.46, б). Для обращения к таблице каталогов в линейном адресе выделяется 2-разрядное поле Directory Pointer. В основном процедура трансляции производится так же, как описано выше для формирования 32-разрядных адресов. Отличия состоят в том, что выполняется дополнительный этап трансляции с обращением к таблице каталогов.
Форматы указателей каталогов, разделов и страниц, используемых при расширенной адресации, показаны на рис. 2.47. Указатели содержат 64 бита (часть из них резервирована), назначение которых аналогично соответствующим битам указателей при стандартной 32-разрядной адресации (см. рис. 2.45). Указатели имеют поля, в которых хранятся старшие разряды 36-разрядных базовых адресов каталогов, разделов и страниц. С помощью страничной трансляции (рис. 2.46) формируется 36-разрядный физический адрес команды или операнда.
Отметим, что расширенная разрядность адреса реализуется только при использовании страничной адресации, когда установлены значения битов PG = РАЕ = 1.
Как указано выше, страничная организация памяти требует дополнительных затрат вре-ме ни для преобразования (трансляции) линейного адреса в физический. Эти затраты будут весьма значительными, если в каждом цикле производить обращение к оперативной памяти для выбора указателей таблиц и страниц. Существенное сокращение времени преобразования адресов достигается путем использования специализированной внутренней кэш-памяти, которая называется буфером ассоциативной трансляции TLB (translation look-aside buffer). Эти буферы хранят физические адреса нескольких ранее выбранных страниц. При повторном обращении к этим страницам процедура трансляции не выполняется, а выбирается из TLB ранее полученный базовый адрес страницы. Процессоры семейства Р6 содержат два отдельных буфера TLB - для трансляции адресов команд и данных (см. рис. 2.1).
|