операционные системы - TLB - PullRequest
4 голосов
/ 23 апреля 2010

Я пытаюсь обдумать это (хорошо, я собираюсь провести ночь перед экзаменами :), но я не могу понять (и не могу найти хороший обзор высокого уровня в сети) этого:

'Записи таблицы страниц могут быть сопоставлены с более чем одной записью TLB. Если, например, каждая запись таблицы страниц сопоставлена ​​с двумя записями TLB, это называется двухсторонним ассоциативным набором TLB'

Мой вопрос: почему мы хотим отображать это более одного раза? конечно, мы хотим, чтобы в TLB было представлено максимальное количество возможных записей, и дублирование могло бы привести к потере места, верно? Чего мне не хватает?

Большое спасибо

1 Ответ

7 голосов
/ 23 апреля 2010

Это не означает, что вы должны загрузить одну и ту же запись в два места в таблице - это означает, что конкретная запись может быть загружена в или из двух мест в таблице. Альтернативой, когда вы можете сопоставить запись только одному месту в таблице, является TLB с прямым сопоставлением.

Основной недостаток TLB с прямым отображением возникает, если вы копируете из одной части памяти в другую, и (по любой схеме прямого отображения, используемой ЦП) переводы для обоих должны быть отображены в одно и то же место в TLB. В этом случае вы в конечном итоге перезагружаете запись TLB каждый раз, поэтому TLB приносит мало или совсем ничего хорошего. Имея двусторонний набор ассоциативных TLB, вы можете гарантировать, что любые две записи могут находиться в TLB одновременно, поэтому (например) перемещение блока из точки A в точку B не может испортить ваш день - но если вы читаете из двух областей, объединяете их и записываете результаты в одну треть (если все три использованных перевода отображают один и тот же набор записей TLB).

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

Со временем число способов, которые имеет смысл использовать в кеше или tlb, имеет тенденцию к увеличению. Разница в скорости между памятью и процессорами продолжает расти. Чем больше разница, тем больше циклов может использовать ЦП и при этом выдает результат в течение одного такта памяти (или заданного количества тактов памяти, даже если их больше одного).

...