10. Виртуальная память со страничной организацией в процессорах Pentium и UltraSPARC III.
Управление памятью в процессоре Pentium 4
- Физическое адресное пространство 4 Гбайта, что определяется 32-разрядной шиной адреса.
- Сложная система виртуальной памяти, которая поддерживает страничную организацию, чистую сегментацию, сегментацию с разбиением на страницы.
- Локальная таблица дескрипторов (Local Descriptor Table) описывает локальные сегменты каждой программы (код, данные, стек и т.д.).
- Глобальная дескрипторная таблица (Global Descriptor Table) – системные сегменты, в том числе сегменты операционной системы.
UltraSPARC III
- 64-разрядная машина, поддерживающая виртуальную память со страничной организацией.
- При этом программы не могут использовать всё 64-разрядное адресное пространство целиком.
- Доступная виртуальная память делится на 2 области по 2^43 байт. Одна из них находится в верхней части виртуального адресного пространства, другая – в нижней. Область между ними не используется.
- Поддерживается 4 размера страниц: 8, 64, 512 Кбайт и 4 Мбайт.
Управление виртуальной памятью
- Линейная таблица страниц потребует слишком много памяти, поэтому используется другой подход.
- MMU содержит раздельные TLB для страниц данных и кода емкостью по 64 записи каждый.
- Запись TLB содержит номер виртуальной страницы, номер физической страницы, идентификатор процесса.
- При трансляции сравнение номера виртуальной страницы выполняется одновременно для всех записей. При совпадении номер страничного кадра объединяется с исходным смещением на странице.
Буфер хранения преобразований (TSB)
- ОС сохраняет наиболее часто используемые элементы буфера TLB в таблице под названием буфер хранения преобразований (TSB – translation storage buffer). Эта таблица простроена как программный кэш прямого отображения виртуальных страниц.
- Каждый 16-байтный элемент данной таблицы содержит бит достоверности, номер контекста, тег виртуального адресного пространства, номер физической страницы и несколько флаговых битов.
- Если размер кэш-памяти составляет, например, 8192 элемента, тогда все виртуальные страницы, у которых младшие 13 битов отображаются в 0000000000000, будут претендовать на элемент 0 в данной таблице.
- Размер таблицы задается программно.
- Индекс для ускорения поиска предвычисляется аппаратно при возникновении прерывания.
Порядок обработки промаха TLB
- Промах TLB обрабатывается операционной системой. При этом сначала осуществляется поиск элемента в TSB.
- Если нужный элемент присутствует, то он загружается в TLB. Для освобождения ячейки в TLB используется политика LRU.
- Если нужного элемента нет в TSB, то ОС обращается к таблице трансляции.
- Если страницы нет в таблице трансляции, то происходит обычное страничное прерывание.
Сравнение механизма виртуальной памяти
Параметр | Pentium | UltraSPARC |
---|---|---|
Организация виртуальной памяти | Сегментация, страничная организация, сегментация с разбиением на страницы. | Страничная организация |
Обработка промаха TLB | В случае промаха управление загрузкой нового элемента в TLB происходит аппаратно. | При промахе TLB управление передается ОС. |
ASID | Не используются | ASID |
Управление страницами | Таблица страниц | TSB, Таблица Трансляции |