Формирование адреса при сегментно – страничной организации памяти Виртуальный адрес # Сегмента# Страницы# Слова База стр. табл. # Физической стр.# Слова Физический адрес Страничные таблицы (по табл. на сегмент) # Физической стр. RG базы сегм. табл.
Сегментно – страничное преобразование адреса в IA - 32 Селектор сегмента Смещение Дескриптор сегмента Сегмент Линейное адресное пространство Линейный адрес Вход Дескриптор страницы Директория ТаблицаСмещение Базовый адрес сегмента Страниц а Директория страниц Физическое адресное пространство Сегментное преобразование Страничное преобразование Физический адрес Таблица страниц Логический адрес Глобальная таблица дескрипторов CR3 Линейный адрес Базовый адрес
Сегментные регистры в IA - 32 CS GS SS DS ES FS Дескриптор сегмента кода Дескриптор сегмента стека Дескриптор сегмента данных Дескриптор дополнительного сегмента данных Видимая частьСкрытые (Теневые) регистры ИндексRPLTI Запрашиваемый уровень привилегии Индикатор таблицы дескрипторов; 0 – GTD, 1 - LDT
Преобразование логического адреса в линейный Селектор сегмента Логический адрес 15 0 Таблица дескрипторов Дескриптор сегмента Смещение (Эффективный адрес) + Базовый адрес 31 0 Линейный адрес
Селектор сегмента Индекс 150 TITI TITI RPL 123 Индекс – указывает на один из 8192 дескрипторов в глобальной (GDT) или локальной (LDT) таблице. TI – указывает тип таблицы дескрипторов; 0 – GDT, 1 – текущая LDT. RPL – запрашиваемый уровень привилегии дескриптора.
Обобщенный формат дескриптора сегмента в IA - 32 База 31 : 24 G G D/BD/B D/BD/B 0 0 AVLAVL AVLAVL Предел сегмента 19 : 16 P P DPL S S Тип База 23 : 16 База 15 : 00 Предел сегмента 15 : G бит гранулярности (0 размер сегмента от 1 байта до 1 Мбайта, 1 от 4 Кбайт до 4 Гбайт с шагом 4 Кбайт) ; D/B Размер по умолчанию (0 16-ти битовый сегмент; 1 32-х битовый сегмент); AVL Сегмент доступен для системного ПО; P Бит присутствия сегмента в оперативной памяти; DPL Уровень привилегии дескриптора; S Тип дескриптора (0 системный, 1 сегмент кода или данных); S =1 & сегмент кода. С – бит подчинённости. При С=1 CPL = PL программы, передавшей управление C R A 118
Типы сегментов Поле «ТИП» Тип дескриптораОписание Бит 11 Бит 10 E Бит 9 V Бит 8 A 0000ДанныеТолько чтение 0001ДанныеТолько чтение, доступен 0010ДанныеЧтение/запись 0011ДанныеЧтение/запись, доступен 0100ДанныеТолько чтение, расширяемый 0101ДанныеТолько чтение, расширяемый, доступен 0110ДанныеЧтение/запись, расширяемый 0111ДанныеЧтение/запись, расширяемый, доступен CRA 1000КодТолько исполняемый 1001КодТолько исполняемый, доступен 1010КодИсполнение/чтение 1011КодИсполнение/чтение, доступен 1100КодТолько исполняемый, подчинённый 1101КодТолько исполняемый, подчинённый, доступен 1110КодИсполнение/только чтение, подчинённый 1111 Код Исполнение/только чтение, подчинённый, доступен
Формат дескриптора отсутствующего сегмента в IA - 32 Доступно 0 0 DPL S S Тип Доступно Бит P = 0 Доступно
Формат дескриптора PDE (4 Кбайта) G PSPS 0A PCDPCD PWTPWT U/SU/S R/WR/W P Avail Базовый адрес таблицы страниц 31 AvailДоступно системному программисту GСтраница отмечена как глобальная (игнорируется) AБит обращения (активности) PCDЗапрещает (1), разрешает (0) кэширование страницы или стр. таблицы. Этот бит игнорируется, если установлен флаг CD (cache disable) в CR0. PWTСквозная (1), обратная (0) запись при кэшировании страницы или стр. таблицы. Этот бит игнорируется, если установлен флаг CD (cache disable) в CR0. PSРазмер страницы (0 – страница 4Кбайта) U/SПользователь/Супервизор PБит присутствия.
Формат дескриптора PTE (4 Кбайта ) G PATPAT DA PCDPCD PWTPWT U/SU/S R/WR/W P Avail Базовый адрес страницы 31 AvailДоступно системному программисту GСтраница отмечена как глобальная. Если этот бит вместе с флагом PGE (page global enable) в регистре CR4 установлен в 1, то дескрипторы, соответствующие этой странице и располагающиеся в буфере TLB, при записи в CR3 или переключении задач как недостоверные не помечаются. Это защита часто используемых страниц от удаления «их» дескрипторов из TLB. AБит обращения PCDЗапрещает (1), разрешает (0) кэширование страницы или стр. таблицы PWTСквозная (1), обратная (0) запись при кэшировании страницы или стр. таблицы PATИндекс атрибутов таблицы страниц U/SПользователь/Супервизор PБит присутствия D (Dirty)Бит записи (изменения)
Формат дескриптора PDE (4Мбайта) и 32 – разрядным адресом G PSPS DA PCDPCD PWTPWT U/SU/S R/WR/W P Avail Базовый адрес страницы 31 AvailДоступно системному программисту GСтраница отмечена как глобальная AБит обращения (активности) PCDЗапрещает (1), разрешает (0) кэширование страницы или стр. таблицы. Этот бит игнорируется, если установлен флаг CD (cache disable) в CR0. PWTСквозная (1), обратная (0) запись при кэшировании страницы или стр. таблицы. Этот бит игнорируется, если установлен флаг CD (cache disable) в CR0. PSРазмер страницы (0 – страница 4Кбайта) U/SПользователь/Супервизор PБит присутствия. Резервные PATPAT PATИндекс атрибутов таблицы страниц
Страничное преобразование (размер страницы 4 Кбайта) ДиректорияТаблицаСмещение Линейный адрес Вход PDE (Page Directory Entry) CR3 (PDBR) Вход PTE (Page Table Entry) Слово Страница (4Кбайта) 32 * PDE 1024 PTE = 2 20 страниц *32 бита, выровненные на 4-Кбайтовую границу.
Страничное преобразование (размер страницы 4 Мбайта) ДиректорияСмещение Вход Слово Страница (4Мбайта) CR3 (PDBR) 32 * *32 бита, выровненные на 4-Кбайтовую границу PDE = 1024 Страницы
Формирование адреса в IA-32 Смещение База (BP, SP) Индекс (SI, DI) Масштабный множитель 1, 2, 4, 8 x x входовой SM сложение по mod 32 Шаг 1 Адрес в команде (логический адрес) Смещение внутри сегмента (исполнительный, эффективный адрес)
Формирование адреса в IA-32 Шаг 2 Проверка границ сегмента и прав доступа + База сегмента Регистр сегментаБаза сегментаГраница сегмента Атрибуты, G,D,P, DPL, S, R(W), A Нарушение Исполнительный (эффективный) адрес Линейный адрес Дескриптор сегмента нормально ошибка
База страницы Формирование адреса в IA-32 Шаг 3 Индекс каталогаСмещение в стр.Индекс табл. стр Регистр CR3 База табл. стр. + База страницы Слово. + + Страница Таблица страниц Директория входов (каталог) Линейный адрес 3232 Физический адрес 10 12
Виртуальное адресное пространство IA-64 Виртуальный адрес 0 От 4К до 256М страниц виртуальных регионов 2 61 байт на регион виртуальных адресных пространств
TLB Преобразование виртуального адреса в IA-64 Регистры регионов РИД rr 0 rr 1 rr 2 rr 7 Ид. регионаКлючНВРНомер Вирт. Стр. (НВС)ПраваНомер Физич.. Стр. (НФС) Номер Вирт. Стр. (НВС)Смещение Хеш Поиск КлючПрава Номер Физич.. Стр. (НФС)Смещение Поиск 24 3 Регистры ключей защиты pkr 0 pkr 1 pkr НВР Номер Вирт. Стр. (НВС)Смещение Виртуальный адрес Физический адрес
Защита. Можно ли увидеть? Можно ли получить доступ? RRX# виртуальной стр.смещение. # виртуал. стр.RID права ключ ключ1 ключ2 ключ3 ключ4 ключ5 Регистры ключей защиты ркзn ркз0 Уровень привилегии. Тип доступа. Разрешено? TLB Ключи защиты увеличивают кпд буфера TLB при работе с большими базами данных Регистры регионов Обращение
Page Access Rights