Введение
В соперничестве двух микропроцессорных гигантов, Intel и AMD, лидерство полностью перешло к первому. На анонс Pentium 4 с частотой 2.8 ГГц AMD еще смогла ответить хоть как-то, объявив о выпуске практически недоступного на рынке Athlon XP 2800+. Но в дальнейшем до конца этого года AMD никаких шагов на рынке настольных CPU предпринимать уже не будет. Intel же наоборот на конец года заготовил выпуск наиболее интересной своей новинки, процессора Pentium 4 3.06 ГГц. Этим, во-первых, он окончательно оставил позади линейку Athlon XP по производительности, а во-вторых, внедрил в процессоры для настольных компьютеров еще одну не применявшуюся ранее в CPU этого класса технологию Simultaneous Multi-Threading. Таким образом, перед началом сезона рождественских продаж в негласном соревновании AMD и Intel поставлена точка. В результате, в понимании большинства пользователей лидером этого года становится Intel, а AMD имеет возможность переломить эту тенденцию лишь в следующем году, когда в ее распоряжении будут новое процессорное ядро для Barton с 512-килобайтным кешем второго уровня и процессоры восьмого поколения семейства Hammer.
Следует отметить, что преодоление Intel трехгигагерцового рубежа стало более знаменательным событием, чем планировалось ранее. И дело тут в поддержке Simultaneous Multi-Threading, окрещенной Intel «поддержкой технологии Hyper-Threading» (в дальнейшем мы будем использовать интеловский термин). Технология Hyper-Threading уже используется Intel в линейке серверных процессоров компании - Xeon, а в настольные процессоры, как предполагалось ранее, она должна была прийти одновременно с выходом CPU c 0.09-микронным ядром Prescott. Однако, острая конкурентная борьба с AMD, а также маячащий на горизонте выход процессоров восьмого поколения Hammer от AMD, вынудил Intel скорректировать свои планы. В результате, технология Hyper-Threading появилась в процессорах Pentium 4 уже сейчас, почти на год ранее запланированного срока.
Технология Hyper-Threading представляет собой сравнительно недорогой с точки зрения увеличения площади процессорного ядра способ увеличения производительности процессоров, поэтому в этой статье принципам функционирования этой технологии будет уделено значительное внимание. Также, мы остановимся и на вопросах быстродействия Pentium 4 3.06 ГГц, а кроме того посмотрим, какой выигрыш в производительности дает "в чистом виде" Hyper-Threading в каждом конкретном случае.
Перед тем, как перейти непосредственно к описанию технологии, хочется заострить внимание на одном важном моменте. Как известно, существует масса способов усовершенствования процессорной архитектуры для увеличения производительности. Сюда относится конвейеризация, суперскаляризация, исполнение с изменением порядка следования команд, увеличение объема кеш-памяти и прочее. Однако использование всех этих общепринятых методов требует достаточно сильного увеличения размера процессорного ядра, а как следствие, стоимости и тепловыделения процессора. Технология же Hyper-Threading – это идеологически несколько иной подход, не столь дорогой с точки зрения «дополнительных транзисторов», однако для своего использования требующий поддержки со стороны операционной системы и программного обеспечения, другими словами, дополнительных усилий со стороны программистов.
Hyper-Threading: приобретая один процессор, второй получаешь бесплатно
Как известно, в общем случае производительность процессора складывается из двух составляющих - из тактовой частоты процессора и числа инструкций, исполняемых им за такт. Архитектура Pentium 4 изначально была предназначена для достижения высоких тактовых частот, так в этом процессоре используется чрезвычайно длинный по современным меркам 20-ступенчатый конвейер. Благодаря этому частоты Pentium 4 растут как на дрожжах, однако производительность этих CPU остается сравнимой со скоростью Athlon XP с гораздо меньшими тактовыми частотами. Объясняется это тем, что, во-первых, Athlon XP имеет большее число исполнительных модулей, работающих параллельно, а во-вторых, гораздо быстрее восстанавливает свой 10-ступенчатый конвейер после неправильных предсказаний переходов. Таким образом, Athlon XP исполняет большее число инструкций за такт, однако и он тоже не идеален. Впрочем, в дальнейшем рассказ будет идти в первую очередь касательно Pentium 4, поскольку именно этот процессор является героем сегодняшней статьи. Тем не менее, необходимо учитывать, что все сказанное равным образом (с необходимыми оговорками) можно перенести и на архитектуру Athlon XP.
Основная проблема увеличения производительности современных процессоров заключается в том, что число исполняемых за такт инструкций растет не пропорционально числу исполняемых модулей в процессоре, а гораздо медленнее. В частности, хотя Pentium 4 и содержит четыре параллельных блока для операций с целыми числами, два блока для работы с вещественными числами и два блока для работы с памятью, одновременно все эти ресурсы практически никогда не используются. В подавляющем большинстве случаев существенная часть процессора простаивает либо в ожидании данных, либо из-за ее ненужности при исполнении очередной операции. Если с простоями при отсутствии данных еще можно как-то бороться, наращивая объем кеш-памяти, то загрузить весь процессор целиком при существующей концепции последовательных вычислений никак не получится. Например, если уж программа выполняет сложение целых чисел, блоки операций с вещественными числами задействованы не будут ни при каком раскладе. В итоге, получаем достаточно печальную картину: большинство существующих x86 программ использует одновременно не более 35% исполнительных устройств процессора Pentium 4.
Именно этому факту и обязана своим появлением технология Hyper-Threading. Основная идея этой технологии была предложена еще в 1993 году почетным сотрудником корпорации Intel Гленом Хинтоном, заметившим еще почти десять лет тому назад, что ресурсы процессора используются не в полной мере. В 1996 году инженеры Intel приступили к интеграции этой технологии в разрабатываемую перспективную архитектуру процессоров следующего поколения - Willamette/Foster. 28 августа 2001 года новая технология Hyper-Threading, наконец, была представлена, а 6 февраля 2002 года были официально объявлены первые процессоры семейства Intel Xeon с Hyper-Threading. Сегодня же, 14 ноября 2002 года, Hyper-Threading пришел и в Pentium 4.
C 1993 года в компьютерном мире изменилось многое. В частности, рынок полностью завоевали многозадачные операционные системы, идеология которых построена на одновременном существовании нескольких вычислительных потоков (threads), относящихся к одному или разным активным приложениям, либо к самой операционной системе. Если на многопроцессорных системах эти потоки могут выполняться одновременно (по одному на процессор), то в однопроцессорных системах CPU вынуждены непрерывно переключаться между потоками, квантуя процессорное время между исполнением их различных частей.
Таким образом, если разрешить процессору одновременное выполнение более чем одного потока, его мощности можно загрузить более эффективно. Именно в этом и состоит основная идея Hyper-Threading. Благодаря технологии Hyper-Threading один физический процессор воспринимается операционной системой и приложениями как два логических процессора. Соответственно, операционная система и приложения предполагают, что CPU с технологией Hyper-Threading может одновременно выполнять два потока и загружает такой процессор работой гораздо сильнее.
Так работает технология Hyper-ThreadingСам же процессор при этом подвергнут лишь незначительным изменениям и использует для выполнения второго потока свои простаивающие ресурсы. То есть, Hyper-Threading – суть технология для увеличения коэффициента полезного действия процессора, действенная, впрочем, только в многозадачных и многопоточных средах.
Слева на рисунке схематично показан процессор с технологией Hyper-Threading, справа – обычная двухпроцессорная системаКоротко остановимся на изменениях, внесенных в процессоры с Hyper-Threading. Поскольку физический процессор с технологией Hyper-Threading представляет собой два логических CPU, в таких процессорах продублированы некоторые блоки. Причем, дубляжу подверглись лишь отдельные управляющие элементы, основные же исполнительные ресурсы остались теми же – теперь они попросту загружаются более плотно и эффективно. В итоге, в процессорах с Hyper-Threading дублированы регистры, включая регистры общего назначения и управляющие регистры, усовершенствованный программируемый контроллер прерываний (Advanced Programmable Interrupt Controller - APIC) и некоторые служебные регистры, например, Next Instruction Pointer – указатели на очередную инструкцию для исполнения. Остальные же ресурсы, включая кеши, исполнительные блоки, логику предсказания переходов, контроллер шины и т.п. логические процессоры разделяют друг с другом. Именно поэтому реализация технологии Hyper-Threading обошлась разработчикам достаточно дешево – площадь процессорного ядра увеличилась всего лишь примерно на 5%.
Новые элементы процессорного ядраHyper-Threading в действии
Рассмотрим работу процессора с технологией Hyper-Threading несколько подробнее (этот раздел предполагает знакомство читателя с архитектурой Pentium 4).
Начальная часть конвейера Pentium 4 отвечает за подачу микроопераций (uops – декодированных x86 инструкций) на исполнительную часть конвейера. Именно тут в основном и находятся дублирующиеся блоки для каждого из двух логических процессоров. На рисунке ниже приведена начальная часть конвейера в двух случаях – при наличии очередной инструкции в Trace Cache (a) и при ее отсутствии там (b).
Trace Cache содержит уже декодированные инструкции, называемые uops. Большинство команд при реальной работе процессора уже было декодировано ранее и находится в trace cache. Trace Cache не дублируется для каждого из логических процессоров, а разделяется между ними. Тем не менее, у каждого логического CPU существует свой собственный Instruction Pointer, ссылающийся на следующую инструкцию для выполнения для обоих логических CPU. Инструкции из Trace Cache выбираются по очереди и становятся в так называемую очередь выборки (uop queue), также индивидуальную для обоих логических процессоров.
При отсутствии очередной инструкции в Trace Cache, являющемся в Pentium 4 по своей иерархии кешем первого уровня для инструкций, процессор должен декодировать очередную x86 инструкцию из L2 кеша. Выборка инструкции осуществляется при участии Instruction Translation Lookaside Buffer (ITLB), переводящем адрес, хранящийся в Instruction Pointer, в физический адрес. ITLB является также индивидуальным для каждого процессора, а вот L2-кеш разделяется между логическими CPU. Декодер x86 инструкций в процессорах с технологией Hyper-Threading общий, поскольку его загрузка невелика – большинство декодированных инструкций уже хранится в Trace Cache. Если же оба логических процессора обращаются к декодеру одновременно, он чередует свою работу между логическими процессорами, но только после выполнения полного цикла декодирования для одного из логических CPU. Декодированные инструкции записываются в Trace Cache.
К исполнительному устройству декодированные последовательности инструкций приходят в двух очередях – для каждого из логических CPU. А вот, что происходит с ними дальше:
В первую очередь инструкции из двух входящих очередей проходят через блоки Allocator и Register Rename. Здесь происходит выделение необходимых ресурсов для исполнения команд. Машинные регистры и буфера при этом делятся поровну между логическими процессорами, однако при отказе одного из логических процессоров от использования тех или иных ресурсов они могут быть всецело выделены только одному логическому процессору.
После прохождения этой стадии команды попадают в две отсортированные очереди – для операций с памятью и для остальных операций, которые также разделены пополам – для каждого из логических процессоров.
Затем, рассортированные микрооперации приходят на стадию определения очередности выполнения (Scheduling), где выполняется сортировка порядка следования инструкций при поступлении на исполнительные устройства. Операции на блоки-планировщики приходят по мере поступления. При необходимости, планировщики переключаются с очередей одного логического процессора на очереди другого. На этом этапе, кстати, происходит окончательное смешение микроопераций, приходящих с логических процессоров, для возможности их одновременного исполнения. Поскольку машинные регистры физического процессора к этому моменту оказываются жестко привязанными к регистрам обоих логических процессоров, исполнение инструкций действительно становится возможным без разбора принадлежности команд.
После этапа выполнения, на котором процессор не различает логические процессоры, следует блок восстановления (Retirement), где восстанавливается изначальный порядок инструкций и их принадлежность к каждому из логических процессоров. При этом Re-Order Buffer делится пополам между логическими процессорами.
Заметим также, что хотя кеши первого и второго уровня являются разделяемыми между логическими процессорами, Data Translation Lookaside Buffer (DTLB), сопоставляющий адреса данных и их физические адреса, хоть и делится между процессорами, но записи в нем дополнены идентификатором процессора, которому принадлежит каждая из строк буфера.
Таким образом, технология Hyper-Threading действительно позволяет загрузить исполнительные устройства процессора значительно сильнее за счет одновременного выполнения двух потоков. Однако, следует понимать, что эффект от такого приема не всегда может быть положительным. Во-первых, если выполняемые потоки похожи по типу выполняемых инструкций, выигрыша может не быть вовсе, поскольку один из потоков будет полностью занимать все ресурсы, необходимые и другому потоку. Простои же остальных исполнительных устройств процессора от этого не исчезнут. Во-вторых, возможна и куда более катастрофичная ситуация. Один из потоков может попросту занять ресурсы, необходимые другому потоку, и ожидать при этом, например, поступления данных. Операционная система же при этом, пребывая в уверенности, что имеется два CPU, не будет предпринимать никаких действий, на самом же деле функционирование процессора будет попросту парализовано. Именно поэтому Intel призывает разработчиков программного обеспечения оптимизировать свои программы для Hyper-Threading. Один из основных принципов такой оптимизации – применение новой инструкции PAUSE, не блокирующей работу физического процессора, вместо пустых циклов ожидания.
Требования к системе
Естественно, поддержка технологии Hyper-Threading необходима не только со стороны программного обеспечения и операционной системы. Требуется она также и со стороны аппаратного обеспечения, поскольку процессор с технологией Hyper-Threading все же отличается от обычных CPU. Активизация обоих логических процессоров требует, как минимум, поддержку со стороны материнской платы и BIOS двух APIC и поддержки специфических алгоритмов перевода логических и физического процессоров в режимы энергосбережения.
В итоге, для того, чтобы в системе работал процессор с поддержкой технологии Hyper-Threading, помимо самого процессора требуется и материнская плата, основанная на наборе логики, поддерживающем эту технологию. Что касается современных чипсетов для Socket 478 материнских плат, то можно утверждать следующее. Все интеловские наборы микросхем, имеющие поддержку 533-мегагерцовой системной шины, Hyper-Threading поддерживают. Впрочем, есть и исключение. Набор микросхем i845G поддерживает Hyper-Threading только начиная с ревизии B. Старые же чипсеты i845G ревизии A технологию Hyper-Threading не поддерживают. С чипсетами других производителей ситуация менее определенная. По утверждениям VIA, их чипсеты Hyper-Threading поддерживают, SiS же, как ожидается, начнет выпуск обновленных ревизий своих наборов логики с поддержкой технологии Hyper-Threading в ближайшем будущем. Важно понимать, что Hyper-Threading является полностью открытой технологией, и производители наборов логики не должны платить никаких лицензионных отчислений Intel за ее реализацию в своих продуктах.
Помимо поддержки в чипсете, технология Hyper-Threading должна опознаваться и инициализироваться BIOS материнской платы. Только в этом случае оба логических процессора могут быть успешно инициализированы и распознаны операционной системой. В противном случае – если либо в чипсете, либо в BIOS технология Hyper-Threading не поддерживается – процессор с технологией Hyper-Threading будет опознан операционной системой как один обычный процессор.
В случае, если поддержка со стороны аппаратной платформы реализована верно, операционная система будет пребывать в уверенности, что в системе имеется два процессора:
Также, очевидно, что для полноценного использования ресурсов процессоров с технологией Hyper-Threading необходима мультизадачная операционная система с поддержкой двухпроцессорных конфигураций. Однако для того, чтобы производительность системы при этом действительно увеличивалась, требуется специальная оптимизация операционной системы под технологию Hyper-Threading, заключающаяся, в частности, в том, что системные потоки не должны использовать пустых циклов, о чем нами говорилось ранее.
В настоящее время для технологии Hyper-Threading оптимизированы две операционные системы – Linux 2.4.x и Microsoft Windows XP (включая Professional и Home Edition). Распространенные Windows 98 и Windows Me Hyper-Threading не поддерживают в силу отсутствия в них поддержки мультипроцессорности. Что же касается Windows 2000, то хотя эта система и поддерживает конфигурации с несколькими CPU и опознает процессор с технологией Hyper-Threading как два процессора, производительность этих процессоров будет в ряде случаев ниже, чем процессоров с аналогичными характеристиками, но без Hyper-Threading. Дело как раз заключается в том, что системные потоки Windows 2000 часто используют пустые циклы, являющиеся «грозой» Hyper-Threading.
Подробнее о Intel Pentium 4 3.06 ГГц
Итак, сегодня, 14 ноября 2002 года, компания Intel официально анонсировала свой очередной процессор в семействе Pentium 4, Intel Pentium 4 3.06 ГГц. Этот процессор является первым CPU в семействе, поддерживающем технологию Hyper-Threading, и имеет следующие характеристики:
Частота ядра – 3066 МГц, частота шины Quad Pumped Bus - 533 МГц, коэффициент умножения – 23x.
Размер кеша первого уровня: 8 Кбайт – для данных, 12 Кбайт – для инструкций. Размер кеша второго уровня – 512 Кбайт.
Процессорное ядро Northwood. Технология производства – 0.13 мкм с использованием медных соединений.
Номинальное напряжение питания ядра – 1.525 В.
Площадь ядра – 131 кв. мм, число транзисторов – 55 миллионов.
Физический интерфейс – Socket 478.
Поддержка наборов инструкций MMX, SSE, SSE2.
Поддержка технологии Hyper-Threading.
Как можно заметить, согласно приведенным данным процессорное ядро Pentium 4 3.06 ГГц имеет такую же площадь и количество транзисторов, как и у предшествующего Pentium 4 2.8 ГГц. Странно, не правда ли? Ведь, как говорилось выше, реализация технологии Hyper-Threading потребовала увеличения площади ядра примерно на 5%. Однако, объясняется этот факт достаточно просто. Оказывается, технология Hyper-Threading была встроена в интеловские процессоры семейства Pentium 4 гораздо раньше, а теперь она всего лишь активизирована. Как это не выглядит странным, но все процессоры, основанные на ядре Northwood, имели необходимые элементы для реализации Hyper-Threading. Более того, дублирующиеся блоки, требуемые для Hyper-Threading, присутствовали и в Pentium 4 на 0.18-микронном ядре Willamette с самых первых моделей. Однако до сегодняшнего дня на этапе сборки полупроводниковых кристаллов Intel аппаратно отключал поддержку Hyper-Threading в своих CPU. Поэтому, владельцы более старых Pentium 4, хотя их процессоры и имеют те самые дополнительные 5% транзисторов, включить Hyper-Threading в своих CPU не смогут.
Совершенно логичным после вышесказанного выглядит и то, что процессор Pentium 4 3.06 ГГц имеет тот же самый степпинг C1 процессорного ядра, что и его предшественник, Pentium 4 2.8 ГГц, и выпускается с использованием подложек диаметром 300 мм.
Следует заметить, что хотя полупроводниковые кристаллы, используемые в Pentium 4 3.06 ГГц и в процессорах с младшими тактовыми частотами по сути не отличаются друг от друга, Intel не собирается добавлять технологию Hyper-Threading в процессоры с меньшими частотами. Таким образом, Hyper-Threading останется прерогативой процессоров Pentium 4 с частотами свыше 3 ГГц.
Вторая модель CPU для рынка настольных компьютеров, в которой будет содержаться поддержка технологии Hyper-Threading, будет выпущена Intel во втором квартале 2003 года. Ею станет Pentium 4 с частотой 3.2 ГГц и также основанный на 0.13-микронном процессорном ядре Northwood. Далее, Hyper-Threading будет содержаться во всех CPU семейства Pentium 4, основанных на 90-нанометровом ядре Prescott, которое должно будет появиться во второй половине следующего года.
Теперь о больном месте процессоров семейства Pentium 4 – высоком тепловыделении. К сожалению, внедрение технологии Hyper-Threading влечет за собой достаточно серьезный рост типичного тепловыделения процессоров. Естественно, поскольку исполняющие блоки CPU теперь используются более активно, процессор с поддержкой Hyper-Threading выделяет больше тепла, чем аналогичный CPU без этой технологии. Вследствие этого, Intel был вынужден изменить требования к термальным и электрическим характеристикам систем, в которых предполагается использование процессоров Pentium 4 с поддержкой технологии Hyper-Threading.
Первоначальная версия требований Intel к дизайну материнских плат предполагала, что процессор будет рассеивать не более 77 Вт. Теперь же Intel пересмотрел свои требования и выпустил их новую версию, названную FMB2. Согласно ей, процессоры Pentium 4 теперь могут выделять до 82 Вт. В соответствии с этим производители материнских плат должны проверить и при необходимости изменить дизайн своих продуктов. Кроме того, возрос и максимальный ток, который может потреблять CPU. Теперь он составляет 70 А, в то время как согласно первоначальным требованиям он не превышал 60 А. В итоге, современные материнские платы, совместимые с процессорами Pentium 4 с частотами свыше 3 ГГц должны соответствовать обновленным требованиям к питанию и тепловому режиму.
Кроме того, естественно, Pentium 4 3.06 ГГц требует и лучшего охлаждения. В частности, теперь Intel рекомендует использовать новые и более производительные кулеры с медными вставками. Также, будет изменен и дизайн кулера, который будет поставлять сам Intel вместе с Pentium 4 3.06 в коробочных версиях. Новая модель кулера имеет медное основание, большое количество ребер и более производительный пятилопастной вентилятор с изменяемой скоростью вращения:

Однако, и это еще не все. Изменил Intel и требования к тепловому режиму корпусов, в которых предполагается использовать процессоры Pentium 4 с частотами более 3 ГГц. Одним из основных изменений следует считать то, что теперь температура воздуха внутри корпуса, который используется для охлаждения процессора, не должна превышать 42 градусов, в то время как ранее допускались температуры не более 45 градусов. Да и вообще, теперь Intel будет активно ратовать за использование внутри корпусов воздуховодов, позволяющих забирать воздух для обдува кулера процессора непосредственно извне системы.
Как мы тестировали
Целью данного тестирования являлось выяснение производительности нового Pentium 4 3.06 ГГц с технологией Hyper-Threading. Производительность этого CPU мы сравнивали со скоростью этого же процессора с отключенной технологией Hyper-Threading (технология Hyper-Threading может быть разрешена или запрещена в BIOS Setup материнских плат), а также со скоростью предшественника – процессора Pentium 4 2.8 ГГц. Учитывая то, что в системах на базе Pentium 4 в данный момент возможно применение двух принципиально разных типов памяти: RDRAM и DDR SDRAM, в тестах было использовано две платформы, использующие различные типы памяти и основанные на чипсетах i850E и i845PE. Эти чипсеты поддерживают технологию Hyper-Threading и позволяют использование наиболее производительных на сегодняшний день модификаций памяти – DDR333 SDRAM и PC1066 RDRAM.
Быстродействие систем, использующих процессоры Pentium 4, сопоставлялось со скоростями конкурирующих продуктов от компании AMD, наиболее скоростных процессоров Athlon XP с процессорным рейтингом 2700+ и 2800+. Системы с Athlon XP были построены на базе самого производительного на данный момент Socket A чипсета NVIDIA nForce2 с двухканальным DDR333 SDRAM интерфейсом.
Итак, состав тестовых систем, принимавших участие в подготовке этого обзора, описывается следующей таблицей:
| Pentium 4 i850E | Pentium 4 i845PE | Athlon XP NVIDIA nForce2
|
---|
Процессоры | Intel Pentium 4 3.06 with Hyper-Threading technology Intel Pentium 4 3.06, Hyper-Threading technology disabled Intel Pentium 4 2.8 | AMD Athlon XP 2800+ AMD Athlon XP 2700+
|
Системные платы | ASUS P4T533-C | ASUS P4PE | ASUS A7N8X
|
Память | Samsung PC1066 RDRAM, 512 Мбайт | Crucial DDR333 CL2 SDRAM, 512 Мбайт |
Видеокарта | ATI RADEON 9700 Pro |
Жесткий диск | Seagate Barracuda ATA IV, 80 Гбайт |
Все тесты выполнялись в операционной системе MS Windows XP Professional, а BIOS Setup материнских плат был настроен на максимальное быстродействие.
Производительность в офисных приложениях и приложениях для создания контента
Итак, в первую очередь мы решили посмотреть на скорость работы нового Pentium 4 3.06 ГГц с технологией Htyper-Threading в классических тестах.
Тест SYSmark 2002 моделирует работу обычного пользователя в офисных приложениях и приложениях для создания контента. Как видим, даже в этом случае использование новой технологии Hyper-Threading способно дать определенный эффект: выигрыш от ее применения составляет в данном случае 3-5%. Достигается он как раз за счет того, что процессор с Hyper-Threading позволяет одновременное исполнение двух потоков, а многие из современных приложений разработаны многопоточными. Более того, и в однопоточных приложениях Hyper-Threading способен также дать некоторое ускорение, благодаря тому, что фоновые потоки, принадлежащие сервисам операционной системы, имеют возможность исполняться параллельно основной задаче.

В приложениях для создания цифрового контента эффект от Hyper-Threading проявляется гораздо сильнее в системе с PC1066 RDRAM. Объясняется это, по-видимому, тем, что исполнение двух потоков параллельно накладывает более жесткие требования на пропускную способность памяти, и в платформе, где использована DDR333 SDRAM, подсистема памяти становится узким местом.
Как можно заметить по результатам SYSmark 2002 конкурирующие продукты от AMD, процессоры Athlon XP, оказываются далеко позади Pentium 4. Однако, AMD имеет существенные претензии к разработчикам теста, компании BAPCO, обвиняя их в оптимизации своего теста под Pentium 4. Поэтому, нами также были использованы альтернативные тесты от E-Testing Labs, моделирующие типичную работу пользователя в офисных приложениях и приложениях для создания контента.
Действительно, в Business Winstone 2001 скорость Athlon XP уже не так уж и низка. Однако, новые Pentium 4 с частотой 3.06 ГГц все же обгоняют старший Athlon XP 2800+ как со включенной технологией Hyper-Threading, так и без нее. Впрочем, тут выигрыш от использования этой новомодной технологии от Intel не так уж и велик и находится на уровне менее 1%.
Content Creation Winstone 2002 же и вовсе является первым примером теста, в котором технология Hyper-Threading дает не прирост в производительности, а ее уменьшение. О возможных причинах этого явления нами говорилось выше.
Производительность при обработке потоковых данных
При банальном сжатии информации с помощью WinRAR использование Hyper-Threading дает неплохой прирост в скорости, составляющий порядка 3-5%. Однако ни это, ни увеличение тактовой частоты до 3.06 ГГц не дает возможности процессору Pentium 4 обогнать Athlon XP 2800+. Впрочем, это и неудивительно. Скорость сжатия информации во многом связана с пропускной способностью подсистемы памяти, а после выхода Socket A чипсета NVIDIA nForce2 с двумя каналами DDR SDRAM состязаться с Athlon XP-системами по этому параметру стало до поры до времени бесполезно.
Кодирование звука в формат mp3 демонстрирует преимущества Hyper-Threading и NetBurst архитектуры процессоров семейства Pentium 4. Включение Hyper-Threading увеличивает скорость обработки на Pentium 4 на 8%. Впрочем, кодек LAME, использовавшийся нами, поддерживает многопоточность, а посему подобный результат совершенно неудивителен.
Кодирование видео – еще один тип задач, где технология Hyper-Threading приходится явно к месту, и прирост от ее активизации достигает 10%. Объясняется это, в частности тем, что используемое нами приложение вновь использует многопоточность.
Производительность в игровых приложениях
Как видим, скорости процессоров Pentium 4 в 3DMark2001 не различаются при включении и отключении технологии Hyper-Threading (имеющееся различие между результатами – погрешность измерений). Действительно, как и большинство игровых приложений 3DMark2001 не использует многопоточность, в результате чего Hyper-Threading в данном случае оказывается совершенно бесполезной вещью.
Аналогичная ситуация и в Return to Castle Wolfenstein. Впрочем, в этой игре, построенной на движке Quake3, Pentium 4 значительно обгоняет Athlon XP и без технологии Hyper-Threading.
Зато в новейшем Unreal Tournament 2003 ситуация обратная. Athlon XP достаточно сильно превосходит в скорости Pentium 4, несмотря на их гораздо более высокие тактовые частоты. Не спасает интеловские процессоры и технология Hyper-Threading, которая, как показали тесты, в играх является совершенно никчемной.
Производительность при 3D-рендеринге
Прирост производительности от технологии Hyper-Threading при финальном рендеринге в 3ds max 5.0 оказывается чрезвычайно высоким и составляет более 15%. Таким образом, это дает нам ясно понять, что при качественной оптимизации от Hyper-Threading можно ожидать многого.
А вот тестирование в Lightwave 7.5 дает нам понять и обратное. Несмотря на то, что это приложение поддерживает многопоточность, прироста от активизации Hyper-Threading в нем нет практически совсем. По-видимому, при расчете финальных сцен Lightwave формирует похожие по характеру выполняемых инструкций потоки, в результате чего их параллельное выполнение на мощностях одного процессора оказывается невозможным.
Также, отметим и еще один факт. Хотя выполнение финального рендеринга представляет собой чисто вычислительную задачу, где ранее по быстродействию лидировали процессоры Athlon XP, теперь ситуация изменилась. Дело в том, что разработчики постепенно оптимизировали алгоритмы, применяемые в их пакетах под использование набора инструкций SSE2, который в Athlon XP не поддерживается. В результате, Athlon XP утратил свое лидерство в этом классе задач.
Производительность в CAD
Результаты измерения общей производительности в AutoCAD 2002 выявляют два факта: Athlon XP является более быстрым процессором в этом пакете, а технология Hyper-Threading не дает Pentium 4 ничего хорошего. Ознакомимся с результатами подробнее.
При использовании каркасного 3D режима ничего интересного выявить не удается. Pentium 4 3.06 ГГц опережает Athlon XP 2800+ только в случае использования самого быстрого набора логики i850E и активизации технологии Hyper-Threading.
Быстродействие систем в AutoCAD во многом зависит от пропускной системы памяти. Поэтому, гораздо больший прирост производительности у Pentium 4 обеспечивается переходом на использование PC1066 RDRAM, нежели активизацией технологии Hyper-Threading. Про скорость Athlon XP и говорить даже не хочется – все и так понятно из картинки. :)
Хотя AutoCAD сам по себе поддерживает многопоточые вычисления, вычислительная производительность при активизации Hyper-Threading практически не растет. Дело тут, видимо, в том же, что и при финальном рендеринге в Lightwave – приложение оптимизировано под физическую многопроцессорность, но никак не под виртуальную.
Оказывается, Hyper-Threading способен не только увеличивать производительность системы, но и значительно уменьшать ее. Причины «торможения» Pentium 4 с Hyper-Threading обсуждались нами выше, тут же мы видим, каких масштабов оно может достичь. При работе с 2D графикой в AutoCAD скорость от Hyper-Threading падает на 10-12%.
Производительность при научных расчетах
Для тестирования скорости новых CPU от AMD при научных расчетах был использован пакет ScienceMark 2.0, подробности об этом тесте можно получить
тут. Этот бенчмарк поддерживает многопоточность, а также все наборы SIMD-инструкций, включая MMX, 3DNow!, SSE и SSE2. На диаграммах, относящихся к результатам ScienceMark, показано время решения различных задач, поэтому меньший результат означает более высокую производительность.
То, что в задачах физического моделирования или криптографии процессоры семейства Athlon XP показывают себя с наилучшей стороны, известно давно. Здесь мы видим еще одно подтверждение этого факта. Hyper-Threading же в данном случае также оказывается к месту, обеспечивая прирост производительности, достигающий 17% в тесте Molecular Dynamics Benchmark, в котором различные потоки выполняют различающиеся по характеру вычисления. В остальных двух случаях потоки похожи по составу выполняемых инструкций, и быстродействие растет не так уж и впечатляюще.
Производительность в профессиональных OpenGL приложениях
В бенчмарках, входящих в состав пакета SPECviewperf 7.0, процессоры Athlon XP достаточно сильны. Причины уже не раз обсуждались нами: используемые в тестах алгоритмы достаточно стары и не используют SSE2 инструкций. Ну а при выполнении интенсивной вычислительной работы равных Athlon XP все еще нет.
Кроме того, в тестах пакета вновь прослеживается тенденция, что Hyper-Threading «вредит» производительности. Впрочем, ничего другого можно было и не ожидать. Потоки, создаваемые SPECviewperf 7.0, похожи по своему характеру и борются друг с другом за один и тот же ресурс – OpenGL контекст.
Производительность при многозадачности
Технология Hyper-Threading, как мы заметили, приводит к увеличению производительности в некоторых многопоточных приложениях. Однако, очевидно, что наибольший эффект от этой новой технологии должен быть виден в многозадачных средах в ситуации, когда различные приложения используют различные ресурсы процессора. Такое распределение вычислительных нагрузок позволит более эффективно озадачивать исполнительные устройства физического процессора. Поэтому нами было принято решение испытать Pentium 4 3.06 ГГц с технологией Hyper-Threading и в таких условиях.
Для тестирования применялась следующая методика. На системе с испытуемым процессором запускалась одна из пяти задач, достаточно сильно загружающая процессор: WinRAR 3.0, FlasK 0.78.39/DiVX 5.02, 3ds max 5, Lighwave 7.5 или ScienceMark. Параллельно работающему приложению из приведенного списка запускалось демо dm-antalus из игры Unreal Tournament 2003, при помощи которого измерялась производительность. В результате, были получены следующие цифры, характеризующие скорость работы Unreal Tournament 2003 при работе «в параллели» с иными приложениями различного характера:
| Pentium 4 3.06 with Hyper-Threading | Pentium 4 3.06, Hyper-Threading Disabled | Пророст от использования Hyper-Threading
|
---|
Idle | 59.5 | 59.3 | 0.30%
|
Data Compression, WinRAR 3.0 | 35.41 | 28.36 | 24.90%
|
MPEG-4 Encoding, FlasK 0.78.39/DiVX 5.02 | 33.88 | 27.01 | 25.40%
|
3ds max 5, Final Rendering | 29.59 | 29.73 | -0.50%
|
Lighwave 7.5, Final Rendering | 43.3 | 29.71 | 45.70%
|
ScienceMark, Primordia | 39.75 | 29.19 | 36.20%
|
Как видим, при работе двух различных приложений одновременно производительность системы от использования технологии Hyper-Threading может возрастать достаточно ощутимо. Максимальная величина прироста, полученная нами, составила более 45%. Однако, как показала практика, при этом существуют и ситуации, когда производительность от включения Hyper-Threading не возрастает вовсе. Как уже говорилось не раз, все зависит от характера приложений, выполняемых одновременно и от того, как они используют ресурсы системы. Впрочем, можно говорить и о том, что в среднем прирост производительности в многозадачных средах от использования Hyper-Threading составляет порядка 20-30%.
Заметим также, что при работе со включенной технологией Hyper-Threading характер функционирования Unreal Tournament 2003, работающего параллельно с другими приложениями, изменяется качественно. Те из наших читателей, кто в своей жизни уделяет большое внимание компьютерным играм, знают, что в обычных условиях играть на компьютере, где кроме самой игры запущены еще какие-то приложения, невозможно. Причина этого кроется в том, что из-за постоянного переключения процессора между задачами игра работает заметными «рывками», что при сохранении достаточного среднего fps приводит к полной неиграбельности. Технология же Hyper-Threading в значительной мере позволяет избавиться от этого эффекта. Действительно, при работе Unreal Tournament 2003 параллельно с другими приложениями, характерное «подтормаживание» отсутствовало, что вполне может позволить играть во время работы других приложений в системах, оборудованных процессорами с технологией Hyper-Threading.
Выводы
Выпустив сегодня новый процессор семейства Pentium 4 с тактовой частотой 3.06 ГГц, Intel смог не только поднять планку производительности своих CPU, добившись лидерства в производительности над продуктами AMD в целом классе задач, но и представил чрезвычайно интересную технологию Hyper-Threading.
Оценивать же Hyper-Threading однозначно сегодня нельзя. С одной стороны, эта технология откроет дорогу виртуальным двухпроцессорным системам на рынок производительных домашних и офисных компьютеров. Плюсы очевидны – во многих случаях повысится как производительность, так и быстрота реакции при работе с существующими приложениями. Однако у этой технологии есть и обратные стороны. Многие сегодняшние задачи, имеющие оптимизацию под настоящую, а не под «виртуальную» многопроцессорность, от использования Hyper-Threading способны замедляться, причем порой достаточно существенно. Также, существует достаточно широкий круг задач, в первую очередь компьютерные игры, скорость в которых никак от Hyper-Threading не зависит. Однако, положительный эффект все же преобладает над отрицательным, и в большинстве случаев, если на систему не возложено никаких специальных задач, использование Hyper-Threading не лишено смысла.
Еще один большой плюс Hyper-Threading – достаточно небольшое увеличение процессорного ядра. Это означает, что производство процессоров с этой технологией будет практически не дороже, чем выпуск CPU без этой технологии. Таким образом, Intel, внедривший Hyper-Threading в свои CPU, повысил их производительность достаточно малой кровью.
К сожалению, розничная цена процессоров Intel Pentium 4 3.06 ГГц в настоящий момент баснословно высока и приближается к $650. В результате, говорить о том, что выпуск нового процессора может как-то повлиять на соотношение сил на рынке, не приходится. В то же время, в следующем году число моделей Pentium 4 с Hyper-Threading значительно увеличится, и эта технология вполне может прийти и в массовые компьютеры.
Внедрение технологии Hyper-Threading в массовые процессоры также означает и то, что новые программные средства будут разрабатываться оптимизированными и под нее. А это значит, что в скором времени Pentium 4 станет еще более привлекательным продуктом.