Как узнать ассоциативность (номер пути) TLB? - PullRequest
1 голос
/ 25 декабря 2011

У меня есть задача узнать количество способов в TLB-кеше.Какой алгоритм я должен использовать?

1 Ответ

0 голосов
/ 28 января 2012

Вопрос немного неясен относительно того, с чем вам нужна помощь, так что это краткое изложение информации, относящейся к темам, которые вы упоминаете.

Есть два «способа» попасть в память - прямое отображение, где таблица страниц хранится в памяти и индексируется по номеру виртуальной страницы. Для перевода номера виртуальной страницы в реальный номер страницы ОС переходит на базовый адрес таблицы страниц и добавляет номер виртуальной страницы. Значение в этом месте дает реальный адрес страницы.

Другой способ - ассоциативное отображение. Ассоциативное отображение сохраняет таблицу страниц в памяти с адресным содержимым, поэтому при поиске виртуального адреса поиск всех страниц процесса выполняется параллельно, что приводит к сложности O (1) времени поиска. Другое преимущество заключается в том, что в нем хранятся только те страницы, которые были фактически выделены.

Проблема в том, что для ассоциативного отображения требуется специальное аппаратное обеспечение для выполнения адресной памяти.

Таким образом, компромисс заключается в том, что используется небольшой объем памяти с адресным содержимым (TLB = буфер преобразования перевода, на который вы ссылаетесь в своем вопросе), причем большинство использует прямое отображение.

Тогда большое внимание уделяется тому, когда поместить адрес в TLB и какой старый выселить из TLB. Для этого есть много вариантов: скорее всего, это будет Наименее недавно использованный (LRU) для использования временной локализации. Другими вариантами могут быть Наименее часто используемые, Round Robin (вероятно, не очень хорошо здесь), WS_Clock и т. Д.

...