OSDev

для всех
Текущее время: 29 апр 2024, 18:28

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 3 ] 
Автор Сообщение
СообщениеДобавлено: 24 сен 2013, 14:02 

Зарегистрирован: 31 июл 2013, 09:40
Сообщения: 28
Решил полностью отказаться от использования TSS. PUSHA/POPA+IRET прекрасно сделают своё дело. Вот только остается проблема с сопроцессором. Каждый раз сохранять и восстанавливать 512 байт при переключении не катит, ИМХО. Также не имеет смысла делать при каждом переключении LTR для установки TS. Есть мысль ручками устанавливать TS, но возникает вопрос, сильно ли скажется
Код:
mov eax,cr0
or eax,8
mov cr0,eax

на скорости переключения, учитывая, что придется переключать CR3 также вручную.

В манах интела не нашёл других способов поднять TS, кроме как ручками и через LTR(Почему STTS нету???). Знает ли кто-нибудь эти самые другие способы? Также интересуют способы вызвать #NM при исполнении инструкций сопроцессора. Выставление EM при запуске системы и эмуляцию сопроцессора не предлагать.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 24 сен 2013, 15:38 

Зарегистрирован: 10 май 2007, 11:33
Сообщения: 1206
Цитата:
Есть мысль ручками устанавливать TS, но возникает вопрос, сильно ли скажется
Код:
mov eax,cr0
or eax,8
mov cr0,eax

на скорости переключения, учитывая, что придется переключать CR3 также вручную.
Правильная мысль. Насколько знаю, так все и делают. Еще можно попробовать перезаписывать cr0, только когда это действительно необходимо.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 24 сен 2013, 21:03 

Зарегистрирован: 21 сен 2007, 17:24
Сообщения: 1088
Откуда: Балаково
sh2ezo писал(а):
Также интересуют способы вызвать #NM при исполнении инструкций сопроцессора.

При установке в CR0 бита TS, #NM вызывается на любой FPU инструкции. Если установлен и MP, то будет реагировать и на команды wait, fwait.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 3 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 15


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB