OSDev http://osdev.su/ |
|
Отслеживание использования сопроцессора без переключений TSS http://osdev.su/viewtopic.php?f=5&t=803 |
Страница 1 из 1 |
Автор: | sh2ezo [ 24 сен 2013, 14:02 ] |
Заголовок сообщения: | Отслеживание использования сопроцессора без переключений TSS |
Решил полностью отказаться от использования TSS. PUSHA/POPA+IRET прекрасно сделают своё дело. Вот только остается проблема с сопроцессором. Каждый раз сохранять и восстанавливать 512 байт при переключении не катит, ИМХО. Также не имеет смысла делать при каждом переключении LTR для установки TS. Есть мысль ручками устанавливать TS, но возникает вопрос, сильно ли скажется Код: mov eax,cr0 or eax,8 mov cr0,eax на скорости переключения, учитывая, что придется переключать CR3 также вручную. В манах интела не нашёл других способов поднять TS, кроме как ручками и через LTR(Почему STTS нету???). Знает ли кто-нибудь эти самые другие способы? Также интересуют способы вызвать #NM при исполнении инструкций сопроцессора. Выставление EM при запуске системы и эмуляцию сопроцессора не предлагать. |
Автор: | phantom-84 [ 24 сен 2013, 15:38 ] |
Заголовок сообщения: | Re: Отслеживание использования сопроцессора без переключений |
Цитата: Есть мысль ручками устанавливать TS, но возникает вопрос, сильно ли скажется Правильная мысль. Насколько знаю, так все и делают. Еще можно попробовать перезаписывать cr0, только когда это действительно необходимо.
Код: mov eax,cr0 or eax,8 mov cr0,eax на скорости переключения, учитывая, что придется переключать CR3 также вручную. |
Автор: | Himik [ 24 сен 2013, 21:03 ] |
Заголовок сообщения: | Re: Отслеживание использования сопроцессора без переключений |
sh2ezo писал(а): Также интересуют способы вызвать #NM при исполнении инструкций сопроцессора. При установке в CR0 бита TS, #NM вызывается на любой FPU инструкции. Если установлен и MP, то будет реагировать и на команды wait, fwait. |
Страница 1 из 1 | Часовой пояс: UTC + 3 часа |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |