Что такое перестрелка TLB? - PullRequest
       49

Что такое перестрелка TLB?

64 голосов
/ 20 сентября 2010

Что такое сбой TLB в SMP?

Я не могу найти много информации относительно этой концепции.Любой хороший пример был бы очень признателен.

Ответы [ 3 ]

98 голосов
/ 20 сентября 2010

TLB (Translation Lookaside Buffer) - это кэш переводов из адресов виртуальной памяти в адреса физической памяти. Когда процессор изменяет виртуальное физическое сопоставление адреса, он должен указать другим процессорам аннулировать это сопоставление в своих кэшах.

Этот процесс называется "перестрелкой TLB".

56 голосов
/ 20 сентября 2010

Быстрый пример:

  1. У вас есть часть памяти, используемая всеми процессорами вашей системы.

  2. Один из ваших процессоров ограничивает доступ к странице этой общей памяти.

  3. Теперь все процессоры должны сбросить свои TLB, чтобы те, кому был разрешен доступ к этой странице, больше не могли этого делать.

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

6 голосов
/ 26 января 2018

Я думаю, что вопрос требует более подробного ответа.

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

однако таблица страниц может быть довольно большой, и просмотр таблицы страниц (чтобы найти соответствующий физический адрес виртуального адреса) может занять много времени.Чтобы ускорить этот процесс, используется кеш, называемый TLB (Translation Lookaside Buffer), в котором хранятся адреса виртуальной памяти, к которым недавно обращались.

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

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

Сброс TLB может запускаться различными операциями с виртуальной памятью, которые изменяют записи таблицы страниц, такие как миграция страниц, освобождение страниц и т. Д.

...