Гиперпоточность


Hyper-threading (официально называемая Hyper-Threading Technology или HT Technology и сокращенно HTT или HT ) — это запатентованная Intel реализация одновременной многопоточности (SMT), используемая для улучшения распараллеливания вычислений (выполнение нескольких задач одновременно), выполняемых на микропроцессорах x86 . Она была представлена ​​на серверных процессорах Xeon в феврале 2002 г. и на процессорах Pentium 4 для настольных ПК в ноябре 2002 г. [4] С тех пор Intel включила эту технологию в Itanium , ЦП Atom и Core серии «i» среди прочих.[5]

Для каждого физически присутствующего ядра процессора операционная система обращается к двум виртуальным (логическим) ядрам и по возможности распределяет нагрузку между ними. Основная функция гиперпоточности — увеличить количество независимых инструкций в конвейере; он использует преимущества суперскалярной архитектуры, в которой несколько инструкций обрабатывают отдельные данные параллельно . С HTT одно физическое ядро ​​представляется операционной системе как два процессора, что позволяет одновременно планировать два процесса на ядро. Кроме того, два или более процессов могут использовать одни и те же ресурсы: если ресурсы для одного процесса недоступны, то другой процесс может продолжать работу, если его ресурсы доступны.

В дополнение к необходимости одновременной поддержки многопоточности в операционной системе, гиперпоточность может быть правильно использована только в операционной системе, специально оптимизированной для этого. [6]

Технология Hyper-Threading — это разновидность технологии одновременной многопоточности , представленная Intel, а концепция этой технологии была запатентована Sun Microsystems . Архитектурно процессор с технологией Hyper-Threading состоит из двух логических процессоров на ядро, каждый из которых имеет собственное архитектурное состояние процессора. Каждый логический процессор может быть индивидуально остановлен, прерван или направлен на выполнение определенного потока независимо от другого логического процессора, использующего то же физическое ядро. [8]

В отличие от традиционной двухпроцессорной конфигурации, в которой используются два отдельных физических процессора, логические процессоры в ядре с многопоточностью совместно используют ресурсы выполнения. Эти ресурсы включают механизм выполнения, кэши и интерфейс системной шины; совместное использование ресурсов позволяет двум логическим процессорам более эффективно работать друг с другом и позволяет логическому процессору заимствовать ресурсы из зависшего логического ядра (при условии, что оба логических ядра связаны с одним и тем же физическим ядром). Процессор останавливается, когда он ожидает отправленных им данных, чтобы завершить обработку текущего потока. Степень выгоды, наблюдаемой при использовании многопоточного или многоядерного процессора, зависит от потребностей программного обеспечения и от того, насколько хорошо оно и операционная система написаны для эффективного управления процессором. [8]

Гиперпоточность работает за счет дублирования определенных разделов процессора — тех, которые хранят архитектурное состояние , — но не дублирования основных ресурсов выполнения . Это позволяет процессору с гиперпоточностью выглядеть как обычный «физический» процессор и дополнительный « логический » процессор для операционной системы хоста (операционные системы, не поддерживающие HTT, видят два «физических» процессора), позволяя операционной системе планировать два потока. или обрабатывает одновременно и соответствующим образом. Когда ресурсы выполнения не будут использоваться текущей задачей в процессоре без гиперпоточности, и особенно когда процессор остановлен, процессор, оборудованный гиперпоточностью, может использовать эти ресурсы выполнения для выполнения другой запланированной задачи.промах кеша , неправильное предсказание ветвления или зависимость от данных .) [9]


В этом высокоуровневом изображении HTT инструкции извлекаются из ОЗУ (разные цветные прямоугольники представляют инструкции четырех разных процессов ), декодируются и переупорядочиваются во внешнем интерфейсе (белые прямоугольники представляют собой пузырьки конвейера ) и передаются исполняющему ядру, способному выполнять выполнение инструкций из двух разных программ в течение одного и того же тактового цикла . [1] [2] [3]
Модель процессора Intel Pentium 4 с тактовой частотой 3 ГГц, включающая технологию Hyper-Threading [7] .