Кеш

Тема в разделе "WASM.BEGINNERS", создана пользователем Hotwire, 17 июн 2007.

  1. Hotwire

    Hotwire New Member

    Публикаций:
    0
    Регистрация:
    13 янв 2007
    Сообщения:
    64
    Здравствуйте!
    Читая справочник по командам проца, нашел команды управления кешерованием. Приведу пример.

    INVD - Аннулирование данных в первичном кеше без обратной записи
    WBINVD - Обратная запись модифицированных строк и аннулирование кеш-памяти

    Команды есть, а где им найти применение в проге не знаю, но ведь зачем-то их сделали.

    Если у кого есть другие инструкции управления кешем, то напишите их. Я всего три видел, две из которых тут написал.
     
  2. leo

    leo Active Member

    Публикаций:
    0
    Регистрация:
    4 авг 2004
    Сообщения:
    2.542
    Адрес:
    Russia
    INVD, WBINVD и INVLPG это привелегированные системные инструкции, поэтому в защищенном режиме в юзермодной проге их использовать нельзя - и слава богу, иначе бы ты со своей любознательностью мог таких дров наломать ;))

    У меня лично никаких инструкций нет ;), а вот в расширениях SSE\SSE2 есть юзермодные инструкции, связанные с работой кэша
    MOVNTxxx - инструкции записи в память минуя кэш
    PREFETCHxxx - предзагрузка данных в кэш
    CLFLUSH - аналог WBINVD для одной линейки кэша
     
  3. rei3er

    rei3er maxim

    Публикаций:
    0
    Регистрация:
    15 янв 2007
    Сообщения:
    917
    Адрес:
    minsk
    вообще говоря WBINVD применяют в частности для изменения типов кэширования областей, которые заданы через MTRR
    Код (Text):
    1. ...
    2. cli
    3. mov ebx, cr4 ; save CR4
    4. mov eax, cr0
    5. or eax, 0x60000000
    6. mov cr0, eax ; disable caching
    7. wbinvd
    8. mov eax, cr3
    9. mov cr3, eax ; flush TLB
    10. mov ecx, 0x2FF
    11. rdmsr
    12. and eax, 0xFFFFF7FF
    13. wrmsr ; disable MTRRs
    14. ; change MTRRs
    15. ...
     
  4. Hotwire

    Hotwire New Member

    Публикаций:
    0
    Регистрация:
    13 янв 2007
    Сообщения:
    64
    Я понял, что лезть туда не следует. А про SSE & SSE2 интересно почитать.
     
  5. Hotwire

    Hotwire New Member

    Публикаций:
    0
    Регистрация:
    13 янв 2007
    Сообщения:
    64
    Читая про SSE нашел инструкции записывающие в память процессора, а читаюших нет.
     
  6. leo

    leo Active Member

    Публикаций:
    0
    Регистрация:
    4 авг 2004
    Сообщения:
    2.542
    Адрес:
    Russia
    Ответ #2
    Чтение выполняется обычными MOVxxx
     
  7. Hotwire

    Hotwire New Member

    Публикаций:
    0
    Регистрация:
    13 янв 2007
    Сообщения:
    64
    Как указывается адрес?
     
  8. leo

    leo Active Member

    Публикаций:
    0
    Регистрация:
    4 авг 2004
    Сообщения:
    2.542
    Адрес:
    Russia
    ??? Как обычно, ничего нового еще не изобрели ;)
    Тебе что, все виды адресации расписать ?
     
  9. Hotwire

    Hotwire New Member

    Публикаций:
    0
    Регистрация:
    13 янв 2007
    Сообщения:
    64
    Нет, спасибо сам знаю.