TLB flush и бит страницы глобальный
В структуре таблицы страниц Intel есть бит "page global", который указывает, что запись таблицы страниц используется глобально. В моем понимании, эта глобальная запись не будет сброшена во время сброса TLB, вызванного перезаписью CR3. у меня вопрос, можем ли мы предположить, что глобальная запись PTE никогда не будет сброшена из TLB после ее установки?
1 ответ
Решение
Вы не можете предполагать это. Есть много причин для сброса записи TLB, например:
- TLB заполнен, и новая запись должна быть кэширована, и рассматриваемая запись заменяется новой.
- Существует инструкция для явного аннулирования записи TLB, которая также может использоваться для таких страниц.
- Есть много других условий, в которых HW полностью очистит TLB, чтобы сохранить согласованность по причинам, отличным от CR3.
Короче говоря, вы не можете предполагать, что когда перевод страницы находится в TLB, он всегда останется там.