Поиск:

Ответ в темуСоздание новой темы Создание опроса
> програмно вкл/выкл Hyper Threading 
V
    Опции темы
ksili
Дата 18.10.2007, 06:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2069
Регистрация: 3.11.2005
Где: Красноярск

Репутация: нет
Всего: 17



Люди, поделитесь, кто знает... Как можно программно включать-выключать режим Hyper Threading'а на Pentium 4? Какие там флаги за это отвечают?


--------------------
Ничто так не развивает аналитическое мышление, как отладка сложной программы без возможности пошагового выполнения (с)
PM MAIL   Вверх
MAKCim
Дата 18.10.2007, 08:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

Репутация: нет
Всего: 207



имхо, он не выключается
его можно использовать, а можно и не использовать


--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
ksili
Дата 18.10.2007, 08:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2069
Регистрация: 3.11.2005
Где: Красноярск

Репутация: нет
Всего: 17



А "использовать/не использовать" действует сразу на всю систему или на отдельную программу, которая его использует/не использует? И как можно задать прораммно используется он или нет?


Цитата(MAKCim @  18.10.2007,  13:41 Найти цитируемый пост)
имхо, он не выключается

А в BIOS'е "Hyper-Threading -----  Enable/Disable" это случайно не вкл/выкл?




--------------------
Ничто так не развивает аналитическое мышление, как отладка сложной программы без возможности пошагового выполнения (с)
PM MAIL   Вверх
MAKCim
Дата 18.10.2007, 09:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

Репутация: нет
Всего: 207



Цитата(ksili @  18.10.2007,  08:45 Найти цитируемый пост)
А в BIOS'е "Hyper-Threading -----  Enable/Disable" это случайно не вкл/выкл?

нет
есть так называемая MP спецификация, которая предусматривает создание кодом BIOS MP таблиц в случае, если процессор поддерживает MP в том или ином виде (multi core, hyper-threading и т. д)
Enable/Disable позволяет разрешить/запретить формирование MP таблиц
SMP ОС использует (если это правильная ОС  smile) эти таблицы для определения различных MP параметров (идентификаторы логических процессоров и т. д) и в целом для определения поддержки MP системой
если таблицы не сформированы, отсюда следует, что ОС не будет использовать ту или иную MP технологию
в твоем случае hyper-threading
Цитата(ksili @  18.10.2007,  08:45 Найти цитируемый пост)
А "использовать/не использовать" действует сразу на всю систему или на отдельную программу, которая его использует/не использует? И как можно задать прораммно используется он или нет?

на всю систему

Это сообщение отредактировал(а) MAKCim - 18.10.2007, 09:01


--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
ksili
Дата 18.10.2007, 09:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2069
Регистрация: 3.11.2005
Где: Красноярск

Репутация: нет
Всего: 17



так может ли программа (не ОС) на время включить hyper-threading (напрмер, для выполнения участка кода, где это будет полезно с т.зр. увеличения эффективности), а потом выключить. ЕСли да, то как?

Если всё же нельзя, то как можно проверить включена эта опция всё-таки в BIOS'е или нет?


--------------------
Ничто так не развивает аналитическое мышление, как отладка сложной программы без возможности пошагового выполнения (с)
PM MAIL   Вверх
MAKCim
Дата 18.10.2007, 09:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

Репутация: нет
Всего: 207



Цитата(ksili @  18.10.2007,  09:27 Найти цитируемый пост)
так может ли программа (не ОС) на время включить hyper-threading (напрмер, для выполнения участка кода, где это будет полезно с т.зр. увеличения эффективности), а потом выключить. ЕСли да, то как?

можно, но сложно
писать драйвер придется
не проще ли включить hyper-threading в BIOS и поставить MP ОС?
потом запустить нужный код в отдельном потоке



--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
ksili
Дата 18.10.2007, 09:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2069
Регистрация: 3.11.2005
Где: Красноярск

Репутация: нет
Всего: 17



понятно... Я не думал, что это так сложно. Вон в защищённый и реальный режим зайти/выйти можно установкой/сбросом бита...

А в SSE3 (которое появилось как раз в Pentium 4 HT) присутствуют две команды для синхронизации потоков. Они имеют отношение к hyper-threading? Или не связаны с ним?


--------------------
Ничто так не развивает аналитическое мышление, как отладка сложной программы без возможности пошагового выполнения (с)
PM MAIL   Вверх
MAKCim
Дата 18.10.2007, 10:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

Репутация: нет
Всего: 207



ksili
а в какой ты среде работаешь и что за код, который тебе надо запустить?
если поддержка MP отключена, то BIOS не проводит MP инициализацию и второе логическое ядро (AP) находится в состоянии wait SIPI
чтобы его "разбудить", нужно:
1. самостоятельно провести MP инициализацию
2. пропатчить IDT с целью создания шлюза для вызова процедур на втором логическом ядре

Добавлено через 33 секунды
Цитата(ksili @  18.10.2007,  09:50 Найти цитируемый пост)
А в SSE3 (которое появилось как раз в Pentium 4 HT) присутствуют две команды для синхронизации потоков. Они имеют отношение к hyper-threading? Или не связаны с ним? 

что за команды?


--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
ksili
Дата 18.10.2007, 10:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2069
Регистрация: 3.11.2005
Где: Красноярск

Репутация: нет
Всего: 17



Цитата(MAKCim @  18.10.2007,  15:03 Найти цитируемый пост)
что за команды? 

да я не помню, читал в интеловском мануале. Сейчас под рукой нет.
Цитата(MAKCim @  18.10.2007,  15:03 Найти цитируемый пост)
а в какой ты среде работаешь и что за код, который тебе надо запустить?

Если честно, то реально я этого делать в ближайшее время не собираюсь. Хотел узнать насколько это сложно. А вообще интересно было под WinXP (я думал это от оси не очень зависит - главное чтобы она поддерживала HT)

Цитата(MAKCim @  18.10.2007,  15:03 Найти цитируемый пост)
1. самостоятельно провести MP инициализацию
2. пропатчить IDT с целью создания шлюза для вызова процедур на втором логическом ядре

1. Если ось поддерживает SMT и соответствующая настройка включена в BIOS'е, то надо ли выполнять первый шаг?
2. почему IDT? Все потоки, которые выполняются на втором логическом ядре, вызывается через шлюзовый механизм, через шлюз задачи?

Добавлено через 8 минут и 52 секунды
Я читал когда-то в одной статье, что из-за бесполезности hyper-threading для большинства случаев (когда обычный юзер запустил несколько офисных приложений), Intel предоставила программистам возможность вкл/выкл hyper-threading. То есть если он считает, что на данном отрезке кода полезен hyper-threading, он его включает и система пашет на двух ядрах, затем, если он бесполезен, его можно отключить. Вот мне и стало интересно, реально ли это и там гон был. 
Вообще насколько, я понял из ваших объяснений MAKCim, то если в BIOS'е включена соответствующая настройка, то hyper-threading жёстко включен и нельзя его временно отключить. Если наоборот, то его использовать можно, но при этом придётся делать кучу вспомогательных действий (формировать MP-таблицы и т.д.). В общем наверно те заявления Intel наверно были чисто рекламными и на практике это использовать очень затруднительно...


--------------------
Ничто так не развивает аналитическое мышление, как отладка сложной программы без возможности пошагового выполнения (с)
PM MAIL   Вверх
MAKCim
Дата 18.10.2007, 11:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

Репутация: нет
Всего: 207



Цитата(ksili @  18.10.2007,  10:33 Найти цитируемый пост)
я думал это от оси не очень зависит - главное чтобы она поддерживала HT

я же уже говорил
если есть MP ОС, то не надо ничего придумывать, запускай код в отдельном потоке и будет тебе счастье
Цитата(ksili @  18.10.2007,  10:33 Найти цитируемый пост)
1. Если ось поддерживает SMT и соответствующая настройка включена в BIOS'е, то надо ли выполнять первый шаг?

тогда вообще ничего делать не надо (см. выше)
Цитата(ksili @  18.10.2007,  10:33 Найти цитируемый пост)
2. почему IDT? Все потоки, которые выполняются на втором логическом ядре, вызывается через шлюзовый механизм, через шлюз задачи?

я о другом
подробно описывать то, что я имел в виду, очень долго
сейчас нет времени

Цитата(ksili @  18.10.2007,  10:33 Найти цитируемый пост)
Вообще насколько, я понял из ваших объяснений MAKCim, то если в BIOS'е включена соответствующая настройка, то hyper-threading жёстко включен и нельзя его временно отключить. Если наоборот, то его использовать можно, но при этом придётся делать кучу вспомогательных действий (формировать MP-таблицы и т.д.). В общем наверно те заявления Intel наверно были чисто рекламными и на практике это использовать очень затруднительно... 

HP включен всегда, если процессор его поддерживает
нет такого понятия как включение/выключение HT
все дело в ОС и в BIOS
если в BIOS он отключен, вся система работает на одном ядре
включить второе ядро можно, но сложно (см. выше)
если BIOS он включен и ОС поддерживает MP, то используется 2 ядра
если ОС не поддерживает MP, то будет использовано одно ядро вне зависимости от настроек BIOS


--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
ksili
Дата 18.10.2007, 11:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2069
Регистрация: 3.11.2005
Где: Красноярск

Репутация: нет
Всего: 17



Спасибо. Будем считать вопрос закрытым


--------------------
Ничто так не развивает аналитическое мышление, как отладка сложной программы без возможности пошагового выполнения (с)
PM MAIL   Вверх
ksili
Дата 22.10.2007, 05:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2069
Регистрация: 3.11.2005
Где: Красноярск

Репутация: нет
Всего: 17



Те две инструкции из SSE3 называются MWAIT и MONITOR. Прочитал я про них в интеловском документе "IA-32 Intel® Architecture Software Developer’s Manual. Volume 1: Basic Architecture" от 2004 года. Вот что там конкретно про них пишется:
Код

12.3.6. Two Thread Synchronization Instructions
The MONITOR instruction sets up an address range that is used to monitor write-back-stores.
MWAIT enables a logical processor to enter into an optimized state while waiting for a writeback-
store to the address range set up by MONITOR. MONITOR and MWAIT require the use
of general purpose registers for its input. The registers used by MONITOR and MWAIT must
be initialized properly; register content is not modified by these instructions.

Чуть ниже там ещё пишется, как проверить что проц поддерживает эти две инструкции. В этом описании нет ни слова про HT. Так что, думаю, они не связаны


--------------------
Ничто так не развивает аналитическое мышление, как отладка сложной программы без возможности пошагового выполнения (с)
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Asm для Windows/DOS"
MAKCim
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • Не забывайте пользоваться кнопкой КОД.
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к разделу форума. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim.

 
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Asm для Windows/Dos | Следующая тема »


 




[ Время генерации скрипта: 0.0889 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.