Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции / 6_управление памятью.doc
Скачиваний:
63
Добавлен:
20.06.2014
Размер:
2.47 Mб
Скачать

6.1.5. Структура таблицы страниц

6.1.5.1. Двухуровневая таблица страниц

Базовый механизм чтения слова из памяти включает трансляцию виртуального адреса, состоящего из номера страницы и смещения, в физический адрес, представляющий собой номер кадра и смещение, с использованием таблицы страниц. Так как таблица страниц имеет переменную длину, зависящую от размера процесса, её невозможно разместить в регистрах. Поэтому она должна располагаться в основной памяти. При выполнении некоторого процесса стартовый адрес его таблицы страниц хранится в регисте, а номер страницы из виртуального адреса используется в качестве индекса элемента, в котором ищется соответствующий номер кадра. Этот номер объединяется со смещением из виртуального адреса для получения реального физического адреса нужной ячейки памяти.

В большинстве систем для каждого процесса имеется одна таблица страниц. Максимальный размер процесса (объем виртуальной памяти) может быть большим (достигать, в частности, 2 Гбайт в системеVAX).При использовании страниц размером 29= 512 байт требуется до 222записей в таблице страниц для каждого процесса. Количество памяти, отводимое таблицам страниц, не может быть так велико. Для преодоления этой проблемы большинство схем виртуальной памяти позволяют хранить таблицы страниц не в основной, а в виртуальной памяти. Таким образом, сами таблицы страниц становятся объектами страничной организации. При работе процесса как минимум часть его таблицы страниц должна находиться в основной памяти. Некоторые процессоры используют двухуровневую таблицу страниц. При такой схеме имеется каталог таблиц страниц, в котором каждая запись указывает на таблицу страниц. Если размер каталога –X, максимальный размер таблицы страниц –Y, процесс может состоять максимум изXY страниц. Максимальный размер таблицы страниц определяется условием её размещения в одной странице.

Рассмотрим пример двухуровневой схемы, типичной для 32-ухбитовой адресации. Принимая условие адресации байтов и 4-Кбайтовые страницы, получаем 4-Гбайтовое виртуальное адресное пространство, составленное из 220 страниц. Если каждая из этих страниц отображается с помощью одной 4-байтовой записи в таблице страниц, можно создать таблице страниц процесса, состоящую из 220записей, общим объемом 4 Мбайт. Такая таблица может быть размещена в 210страницах виртуальной памяти, которые отображаются корневой таблицей страниц, состоящей из 210записей, занимающих 4Кбайт основной памяти.

6.1.5.2. Буфер поиска трансляции

Каждый виртуальный адрес вызывает обращение к двум физическим адресам: одно для выборки соответствующей записи из таблицы страниц и еще одно – для обращения к адресуемым данным. Следовательно, простая схема виртуальной памяти удваивает время обращения к памяти. Для преодоления этой проблемы большинство реально использующихся схем виртуальной памяти использует специальный высокоскоростной кэш для записей таблицы страниц, который называют буфером быстрого преобразования адреса или буфером поиска трансляции (translation lookaside buffer,TLB). Этот кэш функционирует так же, как и обычный кэш памяти и содержит те записи таблицы страниц, которые использовались последними. Получив виртуальный адрес, процессор вначале просматриваетTLB.Если требуемая запись найдена, процессор получает номер кадра и формирует реальный адрес. Если запись в буфере не найдена, процессор использует номер страницы в качестве индекса для таблицы страниц процесса и просматривает соответствующую запись. Если бит присутствия в ней установлен, искомая страница находится в основной памяти, и процессор получает номер кадра из записи таблицы страниц и формирует реальный адрес, одновременно внося использованную запись таблицы страниц вTLB. Если же бит присутствия не установлен, искомой страницы в основной памяти нет, и процессор генерирует ошибку обращения к странице. В этот момент подключается операционная система, загружающая требуемую страницу в основную память и обновляет таблицу страниц.

В организации TLB имеются особенности. Так какTLB содержит только некоторые из записей таблицы страниц, индексация записей вTLBна основе номера страницы невозможна. Вместо этого каждая записьTLB должн,а наряду с полной информацией из записи таблицы страниц включать номер страницы. Процессор аппаратно способен одновременно опрашивать ряд записейTLBдля определения того, какая из них соответствует заданному номеру страницы. Такая методика называется ассоциативным отображением. КонструкцияTLB должна также предусматривать способ организации записей в кэше и принятия решения о том, какая из старых записей должна быть удалена при внесении в кэш новой записи.

Следует отметить, что механизм виртуальной памяти должен также взаимодействовать с кэшем основной памяти. С учетом этого, схема получения слова из памяти предполагает: обращение к буферу поиска трансляции для выяснения, имеется ли в нем соответствующая запись таблицы страниц. При положительном результате –объединение номера кадра и смещения, т.е. генерацию физического адреса. Далее – обращение к кэшу для выяснения, не содержится ли в нем блок с данным словом. В случае положительного ответа – передачу значения процессору, иначе – выборку слова из основной памяти.