Поиск номера кадра, соответствующего нужной странице, в
многоуровневой таблице страниц требует нескольких обращений к
основной памяти, поэтому занимает много времени. В некоторых
случаях такая задержка недопустима. Проблема ускорения поиска
решается на уровне архитектуры компьютера.
В соответствии со свойством локальности большинство программ в
течение некоторого промежутка времени обращаются к небольшому
количеству страниц, поэтому активно используется только небольшая
часть таблицы страниц.
Естественное решение проблемы ускорения – снабдить компьютер
аппаратным устройством для отображения виртуальных страниц в
физические без обращения к таблице страниц, то есть иметь
небольшую, быструю кэш-память, хранящую необходимую на данный
момент часть таблицы страниц. Это устройство называется
ассоциативной памятью, иногда также употребляют термин буфер поиска
трансляции (translation lookaside buffer – TLB).
Одна запись таблицы в ассоциативной памяти (один вход) содержит
информацию об одной виртуальной странице: ее атрибуты и кадр, в
котором она находится. Эти поля в точности соответствуют полям в
таблице страниц.
Так как ассоциативная память содержит только некоторые из записей
таблицы страниц, каждая запись в TLB должна включать поле с номером
виртуальной страницы. Память называется ассоциативной, потому что в
ней происходит одновременное сравнение номера отображаемой
виртуальной страницы с соответствующим полем во всех строках этой
небольшой таблицы. Поэтому данный вид памяти достаточно дорого
стоит. В строке, поле виртуальной страницы которой совпало с
искомым значением, находится номер страничного кадра. Обычное число
записей в TLB от 8 до 4096. Рост количества записей в ассоциативной
памяти должен осуществляться с учетом таких факторов, как размер
кэша основной памяти и количества обращений к памяти при выполнении
одной команды.
Рассмотрим функционирование менеджера памяти при наличии
ассоциативной памяти.
В начале информация об отображении виртуальной страницы в
физическую отыскивается в ассоциативной памяти.
Если нужная запись
найдена – все нормально, за исключением случаев нарушения
привилегий, когда запрос на обращение к памяти отклоняется.
Если нужная запись в ассоциативной памяти отсутствует, отображение
осуществляется через таблицу страниц. Происходит замена одной из
записей в ассоциативной памяти найденной записью из таблицы
страниц. Здесь мы сталкиваемся с традиционной для любого кэша
проблемой замещения (а именно какую из записей в кэше необходимо
изменить). Конструкция ассоциативной памяти должна организовывать
записи таким образом, чтобы можно было принять решение о том, какая
из старых записей должна быть удалена при внесении новых.
Число удачных поисков номера страницы в ассоциативной памяти по
отношению к общему числу поисков называется hit (совпадение) ratio
(пропорция, отношение). Иногда также используется термин "процент
попаданий в кэш". Таким образом, hit ratio – часть ссылок, которая
может быть сделана с использованием ассоциативной памяти. Обращение
к одним и тем же страницам повышает hit ratio. Чем больше hit
ratio, тем меньше среднее время доступа к данным, находящимся в
оперативной памяти.
Предположим, например, что для определения адреса в случае
кэш-промаха через таблицу страниц необходимо 100 нс, а для
определения адреса в случае кэш-попадания через ассоциативную
память – 20 нс. С 90% hit ratio среднее время определения адреса –
0,9x20+0,1x100 = 28 нс.
Вполне приемлемая производительность современных ОС доказывает
эффективность использования ассоциативной памяти. Высокое значение
вероятности нахождения данных в ассоциативной памяти связано с
наличием у данных объективных свойств: пространственной и временной
локальности.
Необходимо обратить внимание на следующий факт. При переключении
контекста процессов нужно добиться того, чтобы новый процесс "не
видел" в ассоциативной памяти информацию, относящуюся к предыдущему
процессу, например очищать ее. Таким образом, использование
ассоциативной памяти увеличивает время переключения контекста.
Рассмотренная двухуровневая (ассоциативная память + таблица
страниц) схема преобразования адреса является ярким примером
иерархии памяти, основанной на использовании принципа локальности,
о чем говорилось во введении к предыдущей лекции.
Ассоциативная память
218
0
2 минуты
Темы:
Понравилась работу? Лайкни ее и оставь свой комментарий!
Для автора это очень важно, это стимулирует его на новое творчество!