TheFreeMan> Нет, HT не делает context switch.
Ему и не надо. "Виртуальные процессоры" имеют свой набор физических регистров.
То есть, если имеем 8 одновременно исполняемых процессов (или потоков), то 4 ядра + НТ при разумном шедулере и прочих равных даст выигрыш против 4-х "однопоточных" ядер. Не нужно менять контекст.
TheFreeMan> От того что код на двух HT попытается одновремнно пропистаь ЕАХ регистер, транзисторов в CPU больше не станет, комманды станут в очередь....
Это если весь код в двух потоках - одинаков и вдоль и поперёк.
А поскольку код таки по мере исполнения меняется (команды разные там одна за другой следуют), то два потока на разной стадии исполнения одного и того же кода могут задействовать разные исполняющие устройства.
Проигрыш НТ начинает давать если идёт код, тяжёло загружающий одни и те же блоки (сильная арифметика, например). А это всё-таки код специфичный.
Так что какой резон отключать НТ обычному пользователю?
Пользы от него немного, тут согласен. Ну а вред какой?