Чем TLB отличается от таблицы Ha sh? - PullRequest
0 голосов
/ 12 марта 2020

Я нуб, извините, я понимаю, что такое таблица ha sh и что такое буфер трансляций (TLB), но похоже, что они работают по схожим принципам. Что мне здесь не хватает?

1 Ответ

0 голосов
/ 12 марта 2020

В таблице ha sh используется функция ha sh, которая отображает определенное пространство исходных значений в меньшее пространство результирующих значений. Идея состоит в том, что если исходное пространство обычно не используется полностью, лучше использовать отображенное пространство, например, для поиска в таблице. Поскольку в этом сопоставлении более одного исходного значения сопоставляется одному и тому же результирующему значению, могут возникать конфликты, которые требуют разрешения конфликтов, что не представляет проблемы.
TLB, с другой стороны, используется для сопоставления большой виртуальной памяти пространство для небольшого физического пространства памяти. Для этого он кэширует виртуальные адреса, т. Е. Сопоставляет виртуальный адрес с физическим адресом. Есть много способов сделать это. Наиболее простым (для пояснения) является кэш с прямым отображением. В качестве адреса кеш-памяти используется верхняя часть виртуального адреса. Там хранится нижняя часть виртуального адреса вместе с соответствующим физическим адресом. Таким образом, можно рассматривать это как таблицу ha sh с функцией ha sh, которая отображает все виртуальные адреса с одинаковыми старшими битами на один и тот же адрес кэша. Однако конфликты здесь (в кеше прямого сопоставления) разрешаются путем замены старой записи новой записью. Если организация кеша является более сложной, то есть как многоканальный ассоциативный кеш, конфликты обрабатываются путем распределения новых записей среди доступных ассоциативных хранилищ.
Итак, вы правы, между ha sh нет существенной разницы столы и TLB.

...