Введение
Intel очень незаметно начала отходить от своего привычного лозунга, говорящего о преобладающем влиянии тактовой частоты на производительность процессора. Новый 3,06 ГГц Pentium 4 оснащен технологией HyperThreading, позволяющей получить (как считает Intel) 24% прирост производительности независимо от тактовой частоты. Два года назад Intel выпустила первый Pentium 4, который смог значительно увеличить тактовые частоты в силу использования 20-ступенчатого конвейера и в ущерб производительности.
Intel, по всей видимости, продолжит тратить миллионы долларов на маркетинг для убеждения потребителей в том, что производительность процессора измеряется одной лишь тактовой частотой. Однако после прихода технологи HT на настольные компьютеры, увеличение производительности процессоров Pentium 4 не будет измеряться на одном лишь уровне мегагерцев.
Что такое HyperThreading?
Если не вдаваться в детали, то HyperThreading позволяет одному физическому процессору работать как два логических процессора. Причем операционная система и программы будут считать, что они работают на двух физических процессорах. Мы получаем два ощутимых преимущества: при работе в многозадачной среде, HT позволяет ускорить совместное исполнение любых приложений. При этом время их параллельного исполнения будет меньше, чем время их исполнения друг за другом. Выигрыш зависит от типа запускаемых приложений, от их нагрузки на процессор и от рода используемых ресурсов.
Например, вы создаете слайд-шоу с музыкой. Параллельно с кодированием музыки в фоне вы работаете с картинками. При этом вы выполните всю работу быстрее. Сейчас вы имеете прекрасную отзывчивость программы по работе с картинками, в то время как раньше, без HT, вам приходилось некоторое время ждать. Иногда приложение теряло свою отзывчивость совсем, и процесс ожидания затягивался.
Что касается офисных приложений, то там наиболее требовательны к вычислительным ресурсам программы по антивирусному сканированию и кодированию. Если вы работаете с каким-либо легким приложением, при этом в фоне включено антивирусное сканирование, то открытие большого документа PowerPoint приведет к ощутимому торможению компьютера. Если без HT подобный процесс займет несколько минут, то при включении HyperThreading презентация PowerPoint откроется за несколько секунд.
Преимущества в одиночных приложениях
Некоторые сегодняшние приложения тоже будут быстрее работать с включением HT, даже если разработчики и не учитывали потенциал HT при разработке программ. Среди таких приложений можно отметить Adobe Photoshop и Windows Media Encoder.
Если во многих приложениях многопоточность была специально добавлена для работы на двухпроцессорных станциях, то в некоторых программах многопоточность явилась следствием желаний разработчиков упростить процесс отладки программ. Поскольку отладчики работают на двухпроцессорных станциях и используют множество потоков, то процесс отладки таких приложений проходит быстрее. Пользователь в однопоточном окружений вряд ли получит от этого какое-либо преимущество, но на HT процессоре вы заметите рост скорости. Причем подобные приложения прекрасно работают в одиночном окружении.
Троянский конь Pentium 4?
Как мы считаем, HT поможет Pentium 4 компенсировать слишком низкие результаты в некоторых тестах по сравнению с Athlon и Pentium 3.
Как вы знаете, одна из основных особенностей Pentium 4 – очень длинный конвейер. Конвейер Pentium III, для сравнения, занимал 10 ступеней, а у Athlon длина конвейера составляет 10 ступеней. Конвейер же Pentium 4 насчитывает 20 ступеней. Именно по причине использования подобной архитектуры, производительность в большинстве офисных приложений в расчете на мегагерц у Pentium 4 ниже, чем у Pentium 3 и Athlon (такую особенность AMD уже подчеркивала в своей рекламной компании Athlon XP).
Указанная разница в производительности даже привела к подаче нескольких групповых исков. Этим летом групповые иски были поданы против Intel, Gateway и Hewlett-Packard. В иск были включены все граждане США, которые когда-либо покупали или арендовали компьютер с Pentium 4. Потенциально в роли истца могут оказаться сотни тысяч людей. Однако сегодня Intel утверждает, что включение HT позволяет работать архитектуре с длинным конвейером в полную силу. Является ли HT троянским конем Intel, который сможет кардинально повысить производительность Pentium 4?
Два потока лучше, чем один
Благодаря тому, что один физический процессор работает как два логических процессора, HT представляет собой отход от традиционных улучшений производительности процессоров, типа увеличения тактовой частоты или дизайна кэша.
HT обеспечивает второй логический процессор в одном физическом чипе, поэтому две отдельные логические архитектуры разделяют между собой лишь один набор физических ресурсов. С точки зрения программ или архитектуры, операционная система и пользовательские программы могут распределять процессы или потоки по логическим процессорам, как это происходит с физическими процессорами в многопроцессорном окружении. С точки зрения же микроархитектуры, инструкции для логических процессоров должны исполняться одновременно на разделяемом ресурсе исполнения.
С двумя копиями архитектурного состояния на каждом физическом процессоре, в системе появится четыре логических устройства исполнения, предсказателя ветвлений, логики управления и шины.
Каждый логический процессор имеет свой собственный контроллер прерываний. Прерывания посылаются отдельному логическому процессору и обрабатываются только этим логическим процессором.
Конвейер
Как радостно отмечает Intel, каждая ступень 20-ступенчатого конвейера Pentium 4 имеет достаточную длину для одновременной репликации и использования своих ресурсов при обработке более чем одного потока.
К примеру, на переднем крае конвейера, который отвечает за доставку инструкций на следующие ступени конвейера, операционная система распределяет и привязывает потоки кода к каждому процессору. Если поток не привязан, то соответствующий логический процессор будет простаивать.
Когда поток распределен и привязан к логическому процессору, HT задействует необходимые вычислительные ресурсы для исполнения потока.
Когда второй поток распределяется и привязывается к другому процессору, ресурсы дублируются или разделяются для выполнения второго потока. Как только каждый поток закончит свою работу, операционная система выставляет неиспользованный процессор в режим бездействия, таким образом, освобождая ресурсы для работающего процессора.
Для оптимизации производительности многопроцессорных систем с HT, операционная система должна быть сконфигурирована для распределения и привязки потоков, прежде всего, к физическим процессорам, а не пытаться привязать поток к логическому процессору, если в это время доступен физический.
История параллелизма
Параллелизм и многопоточные вычисления, на основе которых и строится технология HyperThreading, конечно же, не являются чем-то новым. Фактически, технология HyperThreading уже была включена при выпуске серверного процессора Intel Xeon чуть раньше в этом году. Параллелизм на уровне потоков сегодня используется в процессорах Intel, Sun, IBM и Compaq.
По своему определению, параллелизм увеличивает производительность благодаря возможности исполнять несколько независимых задач параллельно. С середины 90-х годов Intel пытается улучшить параллелизм в процессоре для того, чтобы выжать максимально возможную производительность из кристалла для серверных приложений.
Что касается HT, то эта технология опирается на параллелизм на уровне потоков (TLP), который предусматривает переключение использования ресурсов чипа между текущим потоком и новым потоком, в то время как текущий исполняемый поток задействует операцию с большим периодом ожидания. Такой подход уменьшает простой длинного конвейера благодаря возможности исполнения второго потока во время простоя первого.
Переключение ресурсов процессора между потоками понижает производительность, поскольку инструкции текущего потока должны быть удалены из конвейера. Необходимо сохранить архитектурное состояние потока в конвейере, активировать новый логический процессор и передать инструкции нового потока на ресурсы процессора. Эти шаги могут занять до 40 тактов для их выполнения.
Однако с технологией HyperThreading, программы с поддержкой многопроцессорности могут прекрасно работать с использованием удвоенного числа логических процессоров. Каждый логический процессор будет отвечать на прерывания независимо. Первый логический процессор может выполнять один поток программы, в то время как второй логический процессор будет одновременно выполнять второй поток. Поскольку оба потока разделяют между собой одни и те же исполнительные ресурсы, HT может использовать те ресурсы, которые бы простаивали при выполнении лишь одного потока. В результате мы получаем увеличение использования исполнительных ресурсов внутри одного физического процессора.
К примеру, один логический процессор может выполнять операцию с плавающей запятой, в то время как второй логический процессор будет выполнять операцию сложения и загрузки. HT дополняет возможности многопроцессорных систем, поскольку операционная система может не только одновременно распределять потоки между физическими процессорами, но и использовать для распределения потоков новые логические процессоры.
В результате общая производительность и реакция системы увеличиваются, поскольку потоки будут быстрее распределяться благодаря удвоенному количеству доступных системе логических процессоров. Но даже если число доступных логических процессоров и удвоено, они разделяют между собой один набор исполнительных ресурсов. Поэтому вполне очевидно, что прирост производительности от добавления еще одного физического процессора со своими исполнительными ресурсами будет выше, чем от включения HT. Другими словами, HT дополняет многопроцессорность с помощью увеличения параллелизма внутри каждого процессора системы, но эта технология отнюдь не заменяет двухпроцессорность или многопроцессорность.
Заключение: HT более полезна, чем тактовые частоты
HT не означает радикального сдвига от существующей архитектуры Pentium 4, равно как она не потребует от программистов освоения новых навыков. Преимущества от HT получат только пользователи, в то время как переход на HT будет прозрачен для разработчиков. Приложения, умеющие использовать многопроцессорность, будут точно так же задействовать и два логических процессора HyperThreading. В соответствии с нашими тестами, HT приводит к заметному увеличению производительности независимо от тактовых частот 3,06 ГГц Pentium 4. Причем увеличение производительности работающего приложения не учитывает другие преимущества многозадачности, типа мгновенного открытия документа PowerPoint параллельно с работающим в фоне антивирусным приложением.
Однако сегодня только Windows XP умеет корректно работать с HyperThreading среди операционных систем Windows, поэтому старые версии ставить на машину с HT бесполезно.
В заключение хотелось бы сказать, что с таким большим количеством улучшений, не зависящих от тактовой частоты, Intel, возможно, прекратит упорствовать на гонке мегагерц с AMD. Нельзя не приветствовать, что Intel решила обратить внимание пользователей на свои процессоры не только мегагерцами.