Как известно, производительность ЦПУ в основном построена на двух составных частях: тактовая частота ядра процессора и количество инструкций обрабатываемых за такт. Архитектура Pentium 4 изначально предназначена для высоких тактовых частот, т.к. этот процессор использует чрезвычайно длинный 20-ступеньчатый конвейер. Хотя и производительность Pentium 4 сравнима с Athlon, реально работающим на более низких частотах. Данный факт объясняется тем, что Athlon имеет больше исполнительных устройств, работающих параллельно, а также гораздо быстрее восстанавливает 10-супеньчатый конвейер при ошибочном предсказании. Таким образом Athlon может обрабатывать большее количество инструкций за такт.
Главная проблема увеличения производительности современных процессоров состоит в то, что количество инструкций обработанных за такт растет не пропорционально количеству исполняющих модулей, а гораздо медленнее. В частности, несмотря 3 параллельных целочисленных модуля, 2 модуля операций с плавающей точкой и 2 модуля работы с памятью в Pentium 4, все эти средства никогда не включаются одновременно. В большинстве случаев основная часть этих ресурсов остается в ожидании данных или просто не используется в отдельных операциях. Невозможно полностью загрузить CPU с существующей концепцией последовательных вычислений. Например, если программа складывает какие-нибудь целые числа, то FPU соответственно простаивает. В результате, мы имеем действительно печальную картинку: большинство существующих x86-программ может загрузить не более чем 35% исполняющих устройств Pentium 4 одновременно. Для решения данной проблемы Intel и разработала технологию Hyper-Threading, которая в феврале 2002 года впервые была представлена в процессорах Xeon, а с ноября 2002 года уже в семействе Pentium 4.
Идеология современных многопоточных систем основывается на одновременной работе нескольких вычислительных потоков имеющих отношение к конкретному активному приложению или непосредственно ОС. Если мультипроцессорные системы не имеют затруднений с одновременной обработкой потоков (каждый процессор в системе обрабатывает один поток), то в однопроцессорных системах CPU должен постоянно переключаться между несколькими потоками разделяя время для каждого.
При использовании технологии Hyper-Threading один физический процессор распознается ОС и приложениями как два логических. В результате ОС и приложения предполагают, что CPU может обрабатывать два потока одновременно, поэтому большая загрузка загружают ресурсов процессора.
|
| Принцип работы Hyper-Threading. |
Однако процессор подвергся не очень значительным изменениям для извлечения пользы из незанятых ресурсов для второго потока. Другими словами Hyper-Threading - технология, которая позволяет увеличить эффективность CPU, только когда он работает только в многозадачных и многопоточных системах.
На следующей схеме: слева (a) можно видеть ЦПУ с Hyper-Threading, а справа (b) -
современная двухпроцессорная система.
|
Несколько слов об изменениях внесенных в процессор, которые включают поддержку Hyper-Threading. Физически в процессоре с технологией Hyper-Threading дублированы некоторые модули с разделенным управлением. Исполняющие модули остались без изменений, только на них приходится большая нагрузка. CPU с технологией Hyper-Threading имеет дублированные регистры включая основные регистры и регистры управления, программируемый контроллер прерываний (APIC - Advanced Programmable Interrupt Controller), а также некоторые внутренние регистры, такие как Указатель на следующую инструкцию (Next Instruction Pointer). Все остальные ресурсы включая кэш, исполняющие модули, блок предсказания переходов, шина и т.п. распределяются между двумя логическими процессорами. Поэтому реализация Hyper-Threading стоит для разработчиков не много: размер процессора увеличился только на 5%.
| 3. Характеристики блоков процессора Pentium 4 | Содержание |