Как нумеруются процессоры/ядра?
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 21.12.08 09:23
Оценка:
Переехал на Quad, заметил интересную особенность — во всех режимах температура одного ядра на 8-12 градусов ниже, чем остальных. При этом от загрузки к загрузке номер этого ядра меняется — сначала оно было четвертым, потом третьим, потом снова четвертым, потом вторым, потом опять третьим. Получается, что нумерация процессоров/ядер не детерминирована? Типа, запускается стартовый код на каждом из, который инкрементит переменную и берет себе получившийся номер?
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re: Как нумеруются процессоры/ядра?
От: ДимДимыч Украина http://klug.org.ua
Дата: 22.12.08 18:52
Оценка:
Здравствуйте, Евгений Музыченко, Вы писали:

ЕМ>Получается, что нумерация процессоров/ядер не детерминирована? Типа, запускается стартовый код на каждом из, который инкрементит переменную и берет себе получившийся номер?


Еще есть вариант, что не детерминировано распределение нагрузки на процессоры, вследствие чего наименьшую нагрузку, а следовательно, более низкую температуру, каждый раз получает разный процессор.
Обязательно бахнем! И не раз. Весь мир в труху! Но потом. (ДМБ)
Re[2]: Как нумеруются процессоры/ядра?
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 22.12.08 19:05
Оценка:
Здравствуйте, ДимДимыч, Вы писали:

ДД>Еще есть вариант, что не детерминировано распределение нагрузки на процессоры, вследствие чего наименьшую нагрузку, а следовательно, более низкую температуру, каждый раз получает разный процессор.


Это, как раз, наименее вероятно — тесты ведь загружают процессоры до упора, и я даже представить не могу такой ситуации, чтобы на разных тестах меньше загружалось одно и то же ядро, причем от загрузки к загрузке это ядро менялось.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[3]: Как нумеруются процессоры/ядра?
От: fdn721  
Дата: 24.12.08 05:18
Оценка:
Здравствуйте, Евгений Музыченко, Вы писали:

ЕМ>Здравствуйте, ДимДимыч, Вы писали:


ДД>>Еще есть вариант, что не детерминировано распределение нагрузки на процессоры, вследствие чего наименьшую нагрузку, а следовательно, более низкую температуру, каждый раз получает разный процессор.


ЕМ>Это, как раз, наименее вероятно — тесты ведь загружают процессоры до упора, и я даже представить не могу такой ситуации, чтобы на разных тестах меньше загружалось одно и то же ядро, причем от загрузки к загрузке это ядро менялось.


4-х ядерный процессор до упора загрузить полезной деятельностью практически не возможно. Он уже давно упёрся рогами в пропускную способность шины памяти.
Re[4]: Как нумеруются процессоры/ядра?
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 24.12.08 07:46
Оценка:
Здравствуйте, fdn721, Вы писали:

ЕМ>>Это, как раз, наименее вероятно — тесты ведь загружают процессоры до упора, и я даже представить не могу такой ситуации, чтобы на разных тестах меньше загружалось одно и то же ядро, причем от загрузки к загрузке это ядро менялось.


F>4-х ядерный процессор до упора загрузить полезной деятельностью практически не возможно. Он уже давно упёрся рогами в пропускную способность шины памяти.


Где вы в тестовой загрузке видите полезную деятельность?
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[5]: Как нумеруются процессоры/ядра?
От: fdn721  
Дата: 24.12.08 08:31
Оценка:
Здравствуйте, Евгений Музыченко, Вы писали:

ЕМ>Здравствуйте, fdn721, Вы писали:


ЕМ>>>Это, как раз, наименее вероятно — тесты ведь загружают процессоры до упора, и я даже представить не могу такой ситуации, чтобы на разных тестах меньше загружалось одно и то же ядро, причем от загрузки к загрузке это ядро менялось.


F>>4-х ядерный процессор до упора загрузить полезной деятельностью практически не возможно. Он уже давно упёрся рогами в пропускную способность шины памяти.


ЕМ>Где вы в тестовой загрузке видите полезную деятельность?


Ну тесты это не тупое выполнение add eax,eax в четыре потока. Они как раз стараются померить скорость конкретных полезных алгоритмов.
Re[6]: Как нумеруются процессоры/ядра?
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 24.12.08 09:03
Оценка:
Здравствуйте, fdn721, Вы писали:

ЕМ>>Где вы в тестовой загрузке видите полезную деятельность?


F>Ну тесты это не тупое выполнение add eax,eax в четыре потока. Они как раз стараются померить скорость конкретных полезных алгоритмов.


Есть тесты чисто для ядра процессора (те же S&M, различные burn'еры и т.п.). Они нигде не упираются в пропускную способность памяти, ибо работают исключительно в пределах кэша. Почему они тоже греют одно ядро на 8-10 градусов меньше? И это относится не обязательно к предельной температуре — пока она растет, одно ядро тоже отстает на 8-10 от остальных, и в течение одного сеанса работы это ядро не меняется, но после перезагрузки оно может измениться.

Если же все без исключения производители тестов намеренно недогружают одно ядро — почему это проявляется только на некоторых процессорах, а не на всех подряд?
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re: Как нумеруются процессоры/ядра?
От: Аноним  
Дата: 24.12.08 09:23
Оценка:
ЕМ>Переехал на Quad, заметил интересную особенность — во всех режимах температура одного ядра на 8-12 градусов ниже, чем остальных. При этом от загрузки к загрузке номер этого ядра меняется — сначала оно было четвертым, потом третьим, потом снова четвертым, потом вторым, потом опять третьим. Получается, что нумерация процессоров/ядер не детерминирована? Типа, запускается стартовый код на каждом из, который инкрементит переменную и берет себе получившийся номер?
А разве существует какой либо аппаратный номер для процессоров? Если нет, и аппаратно система полностью симметрична, то такой алгоритм вполне логичен.
Re[7]: Как нумеруются процессоры/ядра?
От: TarasCo  
Дата: 24.12.08 10:19
Оценка:
ЕМ>Если же все без исключения производители тестов намеренно недогружают одно ядро — почему это проявляется только на некоторых процессорах, а не на всех подряд?

Может это ядро обрабатывает прерывания от SMM и "латает" BIOS? А что там в обработчике понаписано — одному Богу известно.
Да пребудет с тобою сила
Re[2]: Как нумеруются процессоры/ядра?
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 24.12.08 10:19
Оценка:
Здравствуйте, <Аноним>, Вы писали:

А>А разве существует какой либо аппаратный номер для процессоров? Если нет, и аппаратно система полностью симметрична, то такой алгоритм вполне логичен.


Например, у каждого процессора есть собственный APIC, имеющий собственный адрес — они ведь как-то упорядочиваются.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[8]: Как нумеруются процессоры/ядра?
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 24.12.08 10:35
Оценка:
Здравствуйте, TarasCo, Вы писали:

TC>Может это ядро обрабатывает прерывания от SMM и "латает" BIOS? А что там в обработчике понаписано — одному Богу известно.


Как-то не верится, чтоб при выполнении чисто вычислительных тестов возникало столько прерываний, что ядро греется аж на десяток градусов меньше. Мне более логичным кажется предположение, что греется меньше одно и то же ядро, которое просто получает разные номера.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[9]: Как нумеруются процессоры/ядра?
От: IID Россия  
Дата: 24.12.08 12:23
Оценка:
Здравствуйте, Евгений Музыченко, Вы писали:

ЕМ>Как-то не верится, чтоб при выполнении чисто вычислительных тестов возникало столько прерываний, что ядро греется аж на десяток градусов меньше. Мне более логичным кажется предположение, что греется меньше одно и то же ядро, которое просто получает разные номера.


А как температуру меряете ? может измеритель лажу выдаёт ? Ядрышки то все на одном кристалле, может даже переплетены между собой. Одно ядро замечательно будет греть соседей, как-то странно представить, что в одном углу малюсенькой пластинки температура так сильно отличается. Опять же, кулер плотно пристёгнут к процессору сверху, и тоже "поможет" в теплопередаче, равномерно размазать температуру по кристаллу. Я бы понял, если бы вы меряли температуру на разных физических процессорах, а так какую-то лажу намеряли непонятно чем и очень этому удивляетесь.
kalsarikännit
Re[10]: Как нумеруются процессоры/ядра?
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 24.12.08 12:53
Оценка:
Здравствуйте, IID, Вы писали:

IID>А как температуру меряете ? может измеритель лажу выдаёт?


Температуру показывают многие современные утилиты — OCCT, SpeedFan, Everest и т.п. Берут ее с собственных датчиков процессора, показывают все одинаково.

IID> Ядрышки то все на одном кристалле, может даже переплетены между собой. Одно ядро замечательно будет греть соседей, как-то странно представить, что в одном углу малюсенькой пластинки температура так сильно отличается. Опять же, кулер плотно пристёгнут к процессору сверху, и тоже "поможет" в теплопередаче, равномерно размазать температуру по кристаллу.


Это все коню понятно. Скорее всего, просто датчик врет. Меня интересует другое — почему номер ядра, у которого показание датчика отличается, меняется от сеанса к сеансу? Каков алгоритм нумерации ядер системой при инициализации?

Блин, вот поленился лезть в Intel SMP Spec — думал, тут кто-нибудь уже вопросом владеет, и сразу ответит. Написали же всякой ерунды, и все не по делу.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[9]: Как нумеруются процессоры/ядра?
От: TarasCo  
Дата: 24.12.08 15:44
Оценка:
ЕМ>Как-то не верится, чтоб при выполнении чисто вычислительных тестов возникало столько прерываний, что ядро греется аж на десяток градусов меньше.

Да запросто. Там в коде где нибудь может hlt присутствует к примеру.

Совсем безумная идея: а может это сама процедура измерения температуры вызывает такой артефакт?
Да пребудет с тобою сила
Re[10]: Как нумеруются процессоры/ядра?
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 24.12.08 16:02
Оценка:
Здравствуйте, TarasCo, Вы писали:

ЕМ>>Как-то не верится, чтоб при выполнении чисто вычислительных тестов возникало столько прерываний, что ядро греется аж на десяток градусов меньше.


TC>Да запросто. Там в коде где нибудь может hlt присутствует к примеру.


И в этом случае все упирается в последовательность нумерации ядер, коли этот гипотетический SMM-код после перезагрузки оказывается на другом ядре. Если бы температура ядер просто хаотично плавала — я бы не удивлялся.

TC>Совсем безумная идея: а может это сама процедура измерения температуры вызывает такой артефакт?


Так процедура заключается в чтении процессорного регистра, содержащего показания встроенного цифрового датчика температуры. И к ней опять-таки применим вывод из предыдущего абзаца.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[3]: Как нумеруются процессоры/ядра?
От: Аноним  
Дата: 24.12.08 16:13
Оценка:
А>>А разве существует какой либо аппаратный номер для процессоров? Если нет, и аппаратно система полностью симметрична, то такой алгоритм вполне логичен.
ЕМ>Например, у каждого процессора есть собственный APIC, имеющий собственный адрес — они ведь как-то упорядочиваются.
Первым процессором полагаю будет назначен тот, на котором исполнялся биос и загрузчик ос. От винды это не зависит. Это дело биоса, а то и железа.
Re[4]: Как нумеруются процессоры/ядра?
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 24.12.08 16:33
Оценка:
Здравствуйте, <Аноним>, Вы писали:

А>Первым процессором полагаю будет назначен тот, на котором исполнялся биос и загрузчик ос. От винды это не зависит. Это дело биоса, а то и железа.


Согласен, а остальные? И как выбирается тот процессор, на котором будет исполняться биос?
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[5]: Как нумеруются процессоры/ядра?
От: crash override  
Дата: 25.12.08 01:27
Оценка: 14 (1)
Здравствуйте, Евгений Музыченко, Вы писали:

А>>Первым процессором полагаю будет назначен тот, на котором исполнялся биос и загрузчик ос. От винды это не зависит. Это дело биоса, а то и железа.


ЕМ>Согласен, а остальные? И как выбирается тот процессор, на котором будет исполняться биос?


В соответствии с интеловским мануалом (Intel® 64 and IA-32 Architectures Software Developer’s Manual Volume 3A):

The MP initialization protocol defines two classes of processors: the bootstrap
processor (BSP) and the application processors (APs). Following a power-up or
RESET of an MP system, system hardware dynamically selects one of the processors
on the system bus as the BSP. The remaining processors are designated as APs.

As part of the BSP selection mechanism, the BSP flag is set in the IA32_APIC_BASE
MSR (see Figure 8-5) of the BSP, indicating that it is the BSP. This flag is cleared for
all other processors.
The BSP executes the BIOS’s boot-strap code to configure the APIC environment,
sets up system-wide data structures, and starts and initializes the APs. When the BSP
and APs are initialized, the BSP then begins executing the operating-system initialization
code.
Re[6]: Как нумеруются процессоры/ядра?
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 25.12.08 04:11
Оценка:
Здравствуйте, crash override, Вы писали:

CO>As part of the BSP selection mechanism, the BSP flag is set in the IA32_APIC_BASE

CO>MSR (see Figure 8-5) of the BSP, indicating that it is the BSP. This flag is cleared for
CO>all other processors.

То есть, и стартовый процессор выбирается случайно, и остальные между собой разбираются в случайном порядке. Теперь понятно, спасибо!

Говорю ж — надо было мне сразу скачать спецификацию, а не надеяться, что кто-нибудь уже знает ответ.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.