Как работает Hyper Threading в процессорах Intel Core i7?

Вы много раз слышали термин Hyper-Threading. Предполагается, что это какая-то волшебная технология, которая после включения удваивает скорость вашего процессора. Компании могут включить или выключить его и взимать гораздо больше, как надбавку.

Я хотел бы сказать, что все это полная чушь и что эта статья направлена ​​на то, чтобы научить вас лучше понимать, что такое Hyper-Threading. Эта статья будет очень удобна для новичков.

Предисловие

В прежние времена, если Intel или AMD приходилось создавать более быстрый процессор, они обычно увеличивали бы потенциальное количество транзисторов, уменьшая их и помещая больше в том же пространстве, и пытались увеличить свои частоты (измеренные в МГц / ГГц). У всех процессоров было только одно ядро. Процессоры стали 32-битными и могли обрабатывать оперативную память до 4 ГБ. Позже они перешли на 64-битные процессоры, которые могли обрабатывать объем оперативной памяти более 4 ГБ. Затем было решено использовать несколько ядер и распределить рабочие нагрузки между этими несколькими ядрами для более эффективных вычислений. Все ядра взаимодействуют друг с другом для распределения любой задачи. Такая задача называется многопоточной.

Части процессора

ЦП состоит из следующих частей, которые работают согласованно. Как упоминалось выше, это будет чрезмерным упрощением. Это просто ускоренный курс, и не принимайте эту информацию как слово Евангелия. Эти части не перечислены в каком-либо определенном порядке:

  • Планировщик (собственно на уровне ОС)
  • Сборщик
  • Декодер
  • Основной
  • Нить
  • Кеш
  • Контроллер памяти и ввода / вывода
  • FPU (блок с плавающей запятой)
  • Регистры

Функции этих частей заключаются в следующем.

Контроллер памяти и ввода-вывода управляет входом и выходом данных в ЦП и из него. Данные переносятся с жесткого диска или SSD в оперативную память, а затем более важные данные помещаются в кэш ЦП. Кэш имеет 3 уровня. Например, Core i7 7700K имеет кэш L3 объемом 8 МБ. Этот кеш используется всем ЦП из расчета 2 МБ на ядро. Данные отсюда собираются более быстрым кешем L2. Каждое ядро ​​имеет свой собственный кэш L2, который составляет всего 1 МБ и 256 КБ на ядро. Как и в случае с Core i7, он поддерживает технологию Hyper-Threading. Каждое ядро ​​имеет 2 потока, поэтому этот кеш L2 используется обоими потоками. Общий размер кэша L1 составляет 256 КБ по 32 КБ на поток. Затем данные поступают в регистры, которые в общей сложности составляют 8 регистров в 32-битном режиме и 16 регистров в 64-битном режиме. ОС (операционная система) планирует процессы или инструкции для доступного потока. Поскольку в i7 8 потоков, он будет переключаться между потоками в ядрах и обратно. Такие ОС, как Windows или Linux, достаточно умны, чтобы знать, что такое физические ядра, а какие логические.

Как работает Hyper Threading?

В традиционном многоядерном ЦП каждое физическое ядро ​​имеет свои собственные ресурсы, и каждое ядро ​​состоит из одного потока, который имеет независимый доступ ко всем ресурсам. Hyper-Threading включает в себя 2 (или в редких случаях больше) потоков, использующих одни и те же ресурсы. Планировщик может переключать задачи и процессы между этими потоками.

В традиционном многоядерном ЦП ядро ​​может «припарковаться» или оставаться в режиме ожидания, если ему не назначены какие-либо данные или процесс. Это состояние называется голоданием и решается с помощью SMT или Hyper-Threading.

Физические и логические ядра (и что такое потоки)

Если вы прочитаете спецификации почти для каждого Core i5, вы заметите, что он имеет 4 физических ядра и 4 логических ядра или 4 потока (у Coffee Lake i5 6 ядер и 6 потоков). Все i7 до 7700K имеют 4 ядра и 8 потоковых / логических ядер. В контексте архитектуры процессоров Intel потоки и логические ядра – это одно и то же. Они не меняли планировку своей архитектуры с Nehalem 1-го поколения до сегодняшнего дня с Coffee Lake, поэтому эта информация будет актуальной. Этой информации будет недостаточно для старых процессоров AMD, но Ryzen также сильно изменил свою компоновку, и их процессоры теперь похожи по конструкции на Intel.

Преимущества Hyper Threading

  • Hyper-Threading решает проблему «голодания». Если ядро ​​или поток свободны, планировщик может передать ему данные вместо того, чтобы ядро ​​оставалось бездействующим или ожидало прохождения через него каких-либо других новых данных.
  • Гораздо более крупные и параллельные рабочие нагрузки можно выполнять с большей эффективностью. Поскольку существует больше потоков для распараллеливания, приложения, которые сильно зависят от нескольких потоков, могут значительно увеличить свою работу (хотя и не вдвое быстрее).
  • Если вы играете и у вас есть какая-то важная задача, выполняемая в фоновом режиме, ЦП не будет бороться за предоставление адекватных кадров и плавное выполнение этой задачи, поскольку он может переключать ресурсы между потоками.

Недостатки Hyper Threading

Следующее – не так много недостатков, скорее, неудобств больше.

  • Чтобы воспользоваться преимуществами Hyper-Threading, требуется реализация на программном уровне. Несмотря на то, что все больше и больше приложений разрабатываются для использования преимуществ нескольких потоков, приложения, которые не используют преимущества какой-либо технологии SMT (одновременной многопоточности) или даже нескольких физических ядер, будут работать точно так же независимо. Производительность этих приложений больше зависит от тактовой частоты и IPC процессора.
  • Hyper-Threading может привести к увеличению нагрева ЦП. Вот почему i5s раньше работали намного выше, чем i7, потому что они не нагреваются так сильно, как у них меньше потоков.
  • Несколько потоков используют одни и те же ресурсы в ядре. Вот почему производительность не увеличивается вдвое. Напротив, это очень умный метод повышения эффективности и производительности там, где это возможно.

Вывод

Hyper-Threading – это старая технология, но она никуда не годится. Поскольку требования к приложениям становятся все более и более требовательными, а уровень смертности по закону Мура растет, возможность распараллеливания рабочих нагрузок помогла значительно повысить производительность. Возможность запускать частично параллельные рабочие нагрузки помогает повысить вашу продуктивность и ускорить выполнение работы без заиканий. А если вы хотите купить лучшую материнскую плату для процессора i7 7-го поколения, прочтите эту статью.

Последнее обновление 2021-03-03 в 19:30 / Партнерские ссылки / Изображения из Amazon Product Advertising API

Похожие записи

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *