Как уже упоминалось, у вас есть двухъядерная система с 2 потоками на ядро.
Intel позиционирует это как гиперпоточность и в разные годы делала это разными способами.
Чтобы объяснить это в своей простейшей форме, каждое ядро ЦП состоит из «ядра» и различной архитектуры вокруг этого ядра, которая хранит информацию о состоянии и процессе для каждого потока. Однопоточное ядро имеет архитектуру, позволяющую хранить информацию о состоянии в 1 потоке за раз, гиперпоточное ядро хранит два разных набора информации о состоянии, позволяя двум отдельным процессам запускаться одновременно, если им требуются разные части ядра ( что вполне вероятно произойдет, так как ядро состоит из нескольких блоков нескольких различных типов блоков обработки).
Чтобы упростить восприятие ЦП в системе, каждый гиперпоток рассматривается как отдельный ЦП, поэтому двухъядерный двухпоточный процессор на ядро выглядит как четырехъядерный процессор.
Также возможно для операционной системы использовать Core-парковку (функция в новых процессорах Intel) позволяет операционная система приостановить одну половины hyperthreaded сердечника так , что , когда дополнительные возможности обработки гиперпоточности не требуются , а затем одинарная производительность резьбы увеличивается, поскольку ядро больше не разделяет свой кэш между 2 потоками и теперь может полностью выделить кэш на ядре одному потоку.
Причина - гиперпоточность , которую поддерживает ваш процессор. Гиперпоточность не является эквивалентом дополнительного процессора, но может реально повысить производительность в многопоточных приложениях. Для каждого физического процессорного ядра операционная система обращается к двум виртуальным процессорам и делит рабочую нагрузку между ними, когда это возможно.
источник
Все гораздо сложнее, чем в те дни, когда одна команда процессора выполнялась за один такт.
Теперь для каждой инструкции есть конвейер , состоящий из нескольких шагов. Я слышал целых 41, хотя это было некоторое время назад, и я понятия не имею, как выглядят текущие конвейеры ЦП. Я знаю, что если конвейер достаточно длинный, вы можете запустить новую инструкцию в конвейере до того, как последняя инструкция будет завершена, иногда в одном и том же тактовом цикле, так что ваше одно ядро эффективно выполняет две вещи одновременно.
Здесь есть хитрость. Вы не можете просто использовать это, чтобы ускорить скорость, с которой ваш процессор обрабатывает инструкции определенной программы. Существует проблема правильности: следующая инструкция может зависеть от еще не определенного результата предыдущей инструкции. Для того, чтобы воспользоваться преимуществами длинного конвейера безопасно , чип представит два отдельных процессорных ядер в планировщиком операционной системы, а также дополнительные команды , посылаемые для каждого ядра , так что две команды в одной и той же «ядро» никогда в трубопроводе , в то же время. Таким образом, мы можем быть уверены, что любые инструкции, выполняемые одновременно, не будут мешать друг другу. Это называется гиперпоточностью .
Здесь стоит отметить, что хотя гиперпоточность может значительно увеличить объем работы, выполняемой вашим процессором, это далеко не так хорошо, как наличие такого большого количества физических ядер. В зависимости от вашей рабочей нагрузки, это может означать всего лишь 15% улучшение или 40% улучшение. В некоторых случаях вы можете даже захотеть отключить эту функцию, чтобы оставшиеся ядра имели полный эксклюзивный доступ к кешу L1 / L2 для этого ядра (это иногда делается с выделенными серверами баз данных).
Когда ваш чип объявляет себя имеющим 2 ядра с 4 потоками, это означает, что это двухъядерный процессор, поддерживающий гиперпоточность.
источник
Взгляните на эту страницу с информацией о Intel - она содержит множество анимаций, показывающих, как гиперпоточность ускоряет выполнение ваших задач.
Это
Utilization of Processor Resources
лучшая анимация, посмотрите на нее и нажмите кнопку «продвинуть».источник
Проще говоря, ответ - да. Каждое ядро вашего процессора может поддерживать два независимых потока, всего 4. Но это не значит, что он имеет ту же производительность, что и четырехъядерный однопоточный процессор. практически производительность двухъядерного двухпоточного процессора ниже, чем у четырехъядерного однопоточного процессора. Как и AMD Phenom X4.
источник