0
Zend
15.04.13
✎
19:41
|
В процессорах Core i3, Core i5 и Core i7 используется Hyper-threading, при этом каждое физическое ядро процессора определяется операционной системой как два логических.
Собственно имея двухъядерный процессор Core i3 и с включёной опцией Hyper-threading было как бы 4 логически ядра.
Когда 1С работала, она загружала процессор на 25% т.е. одно логическое ядро.
Я в Bios'е отключил Hyper-threading. 1С стало загружать процессор под 50%, т.е. просто как одно ядро.
Но скорость при этом не увеличилась. Она осталась как и была. Так и должно быть?
|
|
2
Fragster
гуру
15.04.13
✎
19:45
|
Принцип работы
В процессорах с использованием этой технологии каждый физический процессор может хранить состояние сразу двух потоков, что для операционной системы выглядит как наличие двух логических процессоров (англ. Logical processor). Физически у каждого из логических процессоров есть свой набор регистров и контроллер прерываний (APIC), а остальные элементы процессора являются общими. Когда при исполнении потока одним из логических процессоров возникает пауза (в результате кэш-промаха, ошибки предсказания ветвлений, ожидания результата предыдущей инструкции), то управление передаётся потоку в другом логическом процессоре. Таким образом, пока один процесс ждёт, например, данные из памяти, вычислительные ресурсы физического процессора используются для обработки другого процесса.[1]
|
|
3
Jump
15.04.13
✎
19:48
|
Да.
Что в первом случае использовалось одно физическое ядро, что во втором.
Суть гипертрединга в следующем - даже при 100% загрузке одного ядра оно может простаивать, банальная ошибка в предсказаниях и нужных данных нет в кэше, в итоге логика ядра простаивает, ожидая данных.
При включенном гипертрединге во время такого вынужденного простоя логика ядра переключается на контекст виртуального ядра, и работает с его данными пока не подтянутся данные в основном.
В твоем случае этого не происходит. В итоге от гипертрединга тебе в данной ситуации нет ни пользы ни вреда.
|
|