Как очистить TLB(Translation Look aside Buffer?)?

Тема в разделе "WASM.A&O", создана пользователем asmprogrammer, 25 июл 2009.

  1. asmprogrammer

    asmprogrammer New Member

    Публикаций:
    0
    Регистрация:
    25 июл 2009
    Сообщения:
    15
    Как очистить TLB(Translation Look aside Buffer?)?

    Например, чтобы очистить гарантировано кэш данных, надо взять заведомо большую область, чем кэш, и считать с неё, и тогда любая другая область будет пустой. А как поступить с TLB?

    Как узнать размер TLB для конкретного процессора?
    Как он устроен?
    в интернете информацию я не нашел.
     
  2. wsd

    wsd New Member

    Публикаций:
    0
    Регистрация:
    8 авг 2007
    Сообщения:
    2.824
    asmprogrammer
    CPUID?
     
  3. asmprogrammer

    asmprogrammer New Member

    Публикаций:
    0
    Регистрация:
    25 июл 2009
    Сообщения:
    15
    Да. Спасибо.
    Для EAX=2 CPUID возвращает то что мне нужно.
     
  4. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
  5. Medstrax

    Medstrax Забанен

    Публикаций:
    0
    Регистрация:
    18 июл 2006
    Сообщения:
    673
    invlpg очищает TLB частично(хотя в отдельных случаях это не так). Как полностью - глава 10.9 интеловских манов.
     
  6. cppasm

    cppasm New Member

    Публикаций:
    0
    Регистрация:
    18 июл 2006
    Сообщения:
    923
    Код (Text):
    1. mov eax,cr3
    2. mov cr3,eax
    Запись в CR3 сбрасывает TLB.
     
  7. rudik

    rudik Руденко Артём

    Публикаций:
    0
    Регистрация:
    6 дек 2006
    Сообщения:
    302
    Адрес:
    г. Харьков
    cppasm
    Сбрасывает в записях TLB только записи, не являющиеся глобальными
     
  8. cppasm

    cppasm New Member

    Публикаций:
    0
    Регистрация:
    18 июл 2006
    Сообщения:
    923
    Я знаю. А надо глобальные тоже сбрасывать?
    Если да - то зачем?
    Для сьроса глобальных страниц универсального способа нет кроме изменения CR0.
    MTRR и MSR не в счёт - есть не везде, и на разных камнях разные.