Отключаем кэш

Тема в разделе "WASM.ASSEMBLER", создана пользователем NoName, 12 авг 2005.

Статус темы:
Закрыта.
  1. NoName

    NoName New Member

    Публикаций:
    0
    Регистрация:
    1 авг 2004
    Сообщения:
    1.229
    Как надежно отключить кэш л1 и л2 у проца, да так чтобы надежно (биосы не предлагать)? Справочника под рукой сейчас нет.
     
  2. NoName

    NoName New Member

    Публикаций:
    0
    Регистрация:
    1 авг 2004
    Сообщения:
    1.229
    да, еще интересует как точно узнать статус проца в этом контексте.
     
  3. R_NEW

    R_NEW New Member

    Публикаций:
    0
    Регистрация:
    6 май 2005
    Сообщения:
    86
    Адрес:
    Россия
    Ставь в 1 биты 30 и 31 регистра cr0
     
  4. NoName

    NoName New Member

    Публикаций:
    0
    Регистрация:
    1 авг 2004
    Сообщения:
    1.229
    ого
     
  5. Four-F

    Four-F New Member

    Публикаций:
    0
    Регистрация:
    31 авг 2002
    Сообщения:
    1.237
    <font color="gray][ R_NEW</font><!--color--><font color="gray]: Ставь в 1 биты 30 и 31 регистра cr0 ]</font><!--color-->



    Это наоборот - включает кэширование. Давненько баловался с этим. Сразу говорю, ничего не помню, но драйвер остался. Дока под руками есть, но залезать в неё лень и чем отличается
    Код (Text):
    1. mov eax, cr0
    2. or eax, 01100000000000000000000000000000y
    3. mov cr0, eax
    4. wbinvd
    от
    Код (Text):
    1. mov eax, cr3
    2. or eax, 011000y
    3. mov cr3, eax
    я тоже не помню ;)



    Для посылки контролов в драйвер можно заюзать KmdManager (из KmdKit)



    222004 - выключает кэширование

    222008 - включает



    Какие там конкретно кэши дисейблятся ... тоже хз ;)))





    [​IMG] _582740736__CacheWorks.rar
     
  6. _DEN_

    _DEN_ DEN

    Публикаций:
    0
    Регистрация:
    8 окт 2003
    Сообщения:
    5.383
    Адрес:
    Йобастан
    R_NEW







    Хто ж тебе даст cr0 с третьего кольца модифить?
     
  7. NoName

    NoName New Member

    Публикаций:
    0
    Регистрация:
    1 авг 2004
    Сообщения:
    1.229
    Все нормально, мне для 0 или 3-го пойдет, пока разбираюсь.

    Но лучше все-таки 3.
     
  8. NoName

    NoName New Member

    Публикаций:
    0
    Регистрация:
    1 авг 2004
    Сообщения:
    1.229
    R_NEW

    нужно ставить CD и NW, а это 30 и 29.



    Four-F



    Если выполнен первый алгаритм, второй процессор игнорирует.

    Первый отключает кэш второй управляет способом кэширования (кэширование каталога страниц запрещено, используется кэширование сквозной записи для L1,L2).

    wbinvd объявляет кэш недействительным с записью в RAM.



    Вроде бы разобрался.
     
  9. R_NEW

    R_NEW New Member

    Публикаций:
    0
    Регистрация:
    6 май 2005
    Сообщения:
    86
    Адрес:
    Россия
    NoName

    пардон, действительно 29 и 30



    Для того, чтобы выключить кеш L3(если он есть:) ), нужно установить бит 6 в MSR регистре 0x1A0
     
  10. NoName

    NoName New Member

    Публикаций:
    0
    Регистрация:
    1 авг 2004
    Сообщения:
    1.229
    R_NEW

    Есть ли связь между существованием кэша L3 и MSR?

    Где подробнее можно узнать, интел не предлагать.

    Как универсально (без фишек ОС) определить поддерживает ли проц MSR?
     
  11. R_NEW

    R_NEW New Member

    Публикаций:
    0
    Регистрация:
    6 май 2005
    Сообщения:
    86
    Адрес:
    Россия
    mov eax,1

    cpuid

    and edx,100000b

    jnz proc_has_MSR
     
  12. NoName

    NoName New Member

    Публикаций:
    0
    Регистрация:
    1 авг 2004
    Сообщения:
    1.229
    R_NEW

    Да, верно 5-ый бит. Я думаю лучше test чем and в данном случае.
     
  13. NoName

    NoName New Member

    Публикаций:
    0
    Регистрация:
    1 авг 2004
    Сообщения:
    1.229
    кстати попытка чтения msr L3 control приводит к синему экрану если таковое не поддерживается...
     
  14. NoName

    NoName New Member

    Публикаций:
    0
    Регистрация:
    1 авг 2004
    Сообщения:
    1.229
    Прочитал у интела, что p4 & xeon не поддерживают cd=1, nw=1 в качестве отключения кэша, т.е. как я понял он не отключается (L1,L2), так ли это?
     
  15. _Phantom_

    _Phantom_ New Member

    Публикаций:
    0
    Регистрация:
    4 авг 2005
    Сообщения:
    3
    Адрес:
    Russia
    Ээээээээ люди насколько я знаю L1 вообще нельзя отключить)

    А L2(и L3) должны вроде так отключаться (см. выше)
     
  16. S_T_A_S_

    S_T_A_S_ New Member

    Публикаций:
    0
    Регистрация:
    27 окт 2003
    Сообщения:
    1.754
    NoName >




    Ошибаешся, test не имеет sign-extended формы ;)

    сравни:
    Код (Text):
    1.  83E2 20          and     edx, 20
    2.  F7C2 20000000    test    edx, 20
    3.  F6C2 20          test    dl, 20
     
  17. NoName

    NoName New Member

    Публикаций:
    0
    Регистрация:
    1 авг 2004
    Сообщения:
    1.229


    Да кое где в книжке интела это проскакивало, сейчас снова смотрел - не нашел. А во всех манулах написано что можно, поэтому непонятно можно или нет.





    Я имел ввиду полную форму записи, чтобы не происходила запись в регистр. Или через короткую форму быстрее?
     
  18. R_NEW

    R_NEW New Member

    Публикаций:
    0
    Регистрация:
    6 май 2005
    Сообщения:
    86
    Адрес:
    Россия
    Вот чё пишет Интел по этому поводу.

    Значит, можно сделать вывод, что биты CD и NW както влияют и на L3.

    [​IMG] 1266184799__cach.rar
     
  19. NoName

    NoName New Member

    Публикаций:
    0
    Регистрация:
    1 авг 2004
    Сообщения:
    1.229
    R_NEW

    положи пж-та в зипе.
     
  20. NoName

    NoName New Member

    Публикаций:
    0
    Регистрация:
    1 авг 2004
    Сообщения:
    1.229
    кстати с чего ты взял что влияют, для работы с ним есть отдельный флаг.
     
Статус темы:
Закрыта.