Hyper-Threading и Dual-Core, в чем разница?

В разговоре с сетевым администратором я упомянул, что моя машина была двухъядерной. Он сказал мне, что это не так. Я поднял диспетчер задач, перешел на вкладку производительности и показал ему, что есть два отдельных графика использования ЦП. У меня есть четырехъядерная машина дома, и у нее четыре графика. Он сказал, что на этой машине есть два графика из-за гиперпоточности. Раньше у меня был процессор с процессором npentium 4, но я никогда не понимал, что это значит. Так в чем же разница между гиперпотоками и двухъядерными? И как вы узнаете, какой у вас есть?

Hyper-threading предоставляет несколько логических ядер для одного физического ядра процессора. Говоря простыми словами, гиперпоточность делает контекст-коммутацию более эффективной для каждого ядра ЦП.

С другой стороны, двухъядерные чипы фактически имеют два физических ядра CPU, которые могут выполнять разные процессы одновременно.

Существуют также другие многоядерные чипы, которые имеют гораздо больше двух ядер, и, как отметил Svish, новейшие многоядерные предложения Intel также поддерживают Hyper-threading на всех ядрах.

Вы можете использовать утилиту идентификации ЦП, такую ​​как CPU-Z, чтобы определить, сколько ядер у вас есть. Как вы можете видеть в нижней части скриншота, CPU в этом случае имеет 2 физических ядра. Если количество потоков больше, чем количество ядер, включена Hyper-threading. На сегодняшний день все ориентированные на потребителя процессоры с Hyper-threading имеют 2 потока на ядро, поэтому, если HT включен, количество потоков будет составлять 2x количество ядер.

Введите описание изображения здесь

Если у вас есть процессор Intel, вы можете скачать утилиту Intel ID .

Гиперпоточность – это то, где ваш процессор претендует на то, чтобы иметь 2 физических процессорных ядра, но имеет только 1 и некоторый дополнительный барахло.

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

См. Также: Этот вопрос

Hyperthreading – более дешевая и медленная альтернатива наличию двухжильных ядер

TODO медленнее на сколько процентов в среднем в реальных приложениях?

Гиперпоточность возможна, потому что современные ядра одиночных процессоров уже выполняют сразу несколько инструкций с конвейером команд https://en.wikipedia.org/wiki/Instruction_pipelining

Конвейер команд – это разделение функций внутри одного ядра, чтобы гарантировать, что каждая часть схемы используется в любой момент времени: чтение памяти, инструкции декодирования, выполнение инструкций и т. Д.

Hyperthreading дополнительно разделяет функции, используя:

  • Один бэкэнд, который фактически выполняет инструкции с помощью своего конвейера.

    У двухъядерных процессоров есть два выхода, что объясняет большую стоимость и производительность.

  • Два интерфейса, которые принимают два потока инструкций и упорядочивают их таким образом, чтобы максимизировать конвейерное использование одного бэкэнд, избегая опасностей .

    Двойное ядро ​​также имеет 2 фронтальных конца, по одному для каждого бэкэнд.

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

Два гиперпотока в одном ядре используют дополнительные уровни кеша (TODO, сколько? L1?), Чем два разных ядра, которые делят только L3: https://stackoverflow.com/questions/944966/cache-memories-in-multicore-cpus

Интерфейс, который каждый гиперпоток предоставляет операционной системе, аналогичен интерфейсу реального ядра, и оба они могут управляться отдельно. Таким образом, cat /proc/cpuinfo показывает мне 4 процессора, хотя у меня есть только 2 ядра с двумя гиперпотоками.

Однако операционные системы могут использовать преимущества того, какие гиперпотоки находятся на одном ядре для запуска нескольких потоков данной программы на одном ядре, что может улучшить использование кеша.

Это видео LinusTechTips содержит легкое нетехническое объяснение: https://www.youtube.com/watch?v=wnS50lJicXc

Руководство по системному программированию Intel Manual Volume 3 – 325384-056US Сентябрь 2015 г. 8.7 «АРХИТЕКТУРА ТЕХНОЛОГИИ INTEL HYPER-THREADING ARCHITECTURE» кратко описывает HT. Он содержит следующую диаграмму:

Введите описание изображения здесь

  • Есть ли эквивалент Memtest86 для процессоров?
  • Обновите ноутбук от i3-330M до i5
  • Как прекратить процесс простоя системы?
  • Мой ноутбук Samsung R480 замерзает для коротких и непоследовательных периодов времени
  • Как я могу контролировать температуру процессора в Linux?
  • Curios: Что делает процессоры лучше других?
  • Как правильно заменить материнскую плату и процессор на компьютере с Windows 7?
  • Температура процессора, требуемая для автоматического отключения
  • Почему более новые поколения процессоров работают быстрее с одинаковой тактовой частотой?
  • Что такое гиперпоточность и как она работает?
  • Процессоры поддерживают скорость процессора
  • Давайте будем гением компьютера.