Что такое гиперпоточность

Гиперпоточность когда-то была функцией, доступной только на высокопроизводительных профессиональных процессорах. Тем не менее, Hyperthreading теперь используется и в основных потребительских процессорах. Так что же такое Hyperthreading и стоит ли искать его в своем следующем процессоре?

Что такое программный поток

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

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

Так ваш компьютер может выполнять «многозадачность» и (например) запускать текстовый процессор. а также воспроизводит музыку и загружает видеоигру в фоновом режиме. Технически ядро ЦП на самом деле не выполняет все эти задачи одновременно.

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

Настоящая параллельная обработка данных на домашних компьютерах

Для большинства персональных компьютеров история, в вашем компьютере было только одно ядро процессора. Ну, тогда мы не говорили о «ядрах», так как было только одно, и это был весь ЦП. Однако в середине 2000-х у производителей ЦП появилась блестящая идея втиснуть два полных ЦП в один корпус ЦП. Эти двухъядерные процессоры могли фактически обрабатывать два потока инструкций одновременно. Это означало, что, например, ваша видеоигра могла иметь 100% ядра, а ваша операционная система могла полностью использовать другое ядро.

Технический специалист держит процессор над материнской платой.

Сегодня количество ядер ЦП быстро растет. Основные процессоры с 6, 8 и даже 10 ядрами являются общими. Высокопроизводительные процессоры предлагают десятки ядер, а процессоры, такие как AMD Threadripper 3990X, содержат колоссальные 64 ядра.

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

Перегрузка ядер ЦП с помощью Hyperthreading

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

Не все потоки требуют одинаковой вычислительной мощности. Например, поток, выполняющий рендеринг видео, будет использовать 100 % доступной мощности ядра ЦП, а поток, выполняющий ваш текстовый процессор или веб-страницу в социальной сети, нуждается лишь в части мощности, предлагаемой современным ядром ЦП.

Точно так же в видеоигре может быть несколько параллельных потоков, например, один обрабатывает физику, а другой обрабатывает искусственный интеллект персонажей. Это важные задания, но для их нормальной работы может не потребоваться все одно ядро.

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

Правильное общее название гиперпоточности — одновременная многопоточность. «Гиперпоточность» на самом деле является собственным маркетинговым названием, используемым Intel, но так же, как и «Пылесос», оно стало общим термином для технологии в целом.

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

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

Зачем нужна технология Hyperthreading

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

В прошлом только профессиональное программное обеспечение, такое как видеоредакторы или задачи по обработке научных данных, действительно нуждались в гиперпоточности. У обычных пользователей едва ли было запущено достаточно приложений, чтобы нуждаться в таком количестве потоков. Видеоиграм также потребовалось много времени, чтобы внедрить использование нескольких потоков, но теперь 8-ядерные игровые системы стали массовыми, и количество потоков будет продолжать расти.

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

Оцените статью
SERGOOT.RU
Добавить комментарий