Pentium 4 с частотой 3 ГГц и технология HyperThreading

На прошлой неделе, а именно - 14 ноября, в Москве состоялась официальная презентация нового процессора Intel - Pentium 4 с частотой 3.06 ГГц. Перед собравшимися по этому поводу журналистами с докладом выступил вице-президент корпорации Intel, главный директор по информационным технологиям Даглас Буш. Он рассказал, в частности, как и где сегодня применяются персональные компьютеры и почему им необходима дополнительная вычислительная мощность.

Интересно, что дата объявления нового процессора совпала с несколькими другими, очень значимыми для IT-индустрии датами. Так, 31 год назад на свет появился первый микропроцессор - Intel 4004, с которого и началось развитие персональной вычислительной техники. А два года назад был объявлен процессор Pentium 4 1.5 ГГц. Закон Гордона Мура, одного из основателей Intel, подтвердился и для тактовых частот: потребовалось ровно два года, чтобы увеличить тактовую частоту Pentium 4 в два раза.

Однако новый процессор интересен не только как взявший очередной рубеж частот, но и как первый настольный (то есть предназначенный для потребительских компьютеров) процессор с поддержкой технологии HyperThreading. Большая часть упомянутой выше презентации была посвящена именно основам функционирования и преимуществам новой технологии Intel. Доклад менеджера по развитию технологий Intel в странах СНГ Павла Бороха перемежался с демонстрациями работы нового процессора. Присутствующие могли наглядно убедиться в том, что HyperThreading практически во всех случаях дает существенный прирост скорости, особенно при одновременной работе нескольких приложений.

Что же это за технология, которая позволяет ускорить работу программ без применения классических приемов - увеличения таковой частоты, объема памяти, быстродействия диска? Каким образом разработчикам Intel удалось повысить эффективность работы процессора? Какие усовершенствования были внесены в архитектуру Pentium 4? Попробуем разобраться.


Идея

 

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

Каким образом организовать поступление в процессор нескольких потоков команд? Логично возложить эту задачу на программное обеспечение, а точнее, на операционную систему. Скажем, заставить ее думать, что в системе имеется не один, а несколько независимых процессоров.


Как работает

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

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


Какие преимущества

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

В то же время не стоит забывать, что эффективность новой технологии зависит от работы операционной системы. Разделять команды на потоки будет именно она. Если операционка будет нагружать один из процессоров своими внутренними, системными, задачами, то даже одно приложение сможет ускорить работу благодаря HyperThreading.

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

Прирост скорости сильно зависит от выполняемых задач. В некоторых случаях он достигает 25-35% (по данным Intel), "заточенные" под многозадачность программы ускоряются на 15-20%, в других случаях разница незаметна.


Что необходимо для поддержки

Поддержка технологии HyperThreading была заложена в самые первые процессоры семейства Pentium 4. Мало того, она успешно работает в смежном рынке серверов вот уже более года, так как впервые была включена в процессоры Xeon. Что касается настольного рынка, то пока что в планах Intel - поддерживать HyperThreading только в процессорах Pentium 4 с частотами от 3 ГГц. (HyperThreading не была включена раньше потому, что до последнего времени на настольном рынке доминировала ОС Windows 9x/ME, которая принципиально не способна поддерживать многопроцессорный режим работы. Только с распространением Windows XP появилась возможность задействовать HyperThreading в обычных условиях).

Кроме процессора, необходимо позаботиться о поддержке новой технологии со стороны других компонентов системы. Так, нужен подходящий чипсет материнской платы. Согласно данным, полученным от представителей Intel, технология HyperThreading поддерживается следующими чипсетами:

  • i850E (Rambus-чипсет);
  • i845E, i845PE;
  • i845G*, i845GE;
  • все будущие чипсеты Intel для настольных ПК и рабочих станций, а также серверные чипсеты ServerWorks.

Чипсет i845G помечен потому, что изначально он не имел поддержки HyperThreading. Новый степпинг чипсета исправляет эту проблему. Тем не менее, не стоит рассчитывать на то, что ваша уже купленная плата на i845G будет на новом степпинге - i845G очень популярный и массовый чипсет, и старые чипы еще долго будут использоваться в производстве. Что касается бюджетных чипсетов без встроенной графики, i845GL и i845GV, то они рассчитаны на процессоры Celeron и потому HyperThreading поддерживать не должны.

О чипсетах других производителей точных сведений пока нет. Есть предположения, что SIS648 не имеет проблем с HyperThreading, однако реального подтверждения им я пока не видел.

Кроме чипсета, о HyperThreading должна знать и BIOS платы. Это нужно для того, чтобы была подготовлена таблица конфигурации и произведена инициализация "второго процессора". У производителей первого звена уже вышли необходимые обновления BIOS, а на некоторых платах даже со старыми Pentium 4 уже появляется второй отключенный процессор - побочный эффект HyperThreading.

Для работы новой технологии нужна одна из двух операционных систем - либо Windows XP (Home или Pro - неважно), либо Linux с новым ядром, поддерживающим HyperThreading.


Итог

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

P.S. Как вы думаете, какая тема сейчас вызывает наибольший интерес на форумах "железных" веб-сайтов? "Взлом" старых процессоров Pentium 4 для включения у них HyperThreading!

Макс КУРМАЗ,
max@hw.by,
"Белорусский 'железный' сайт" (
www.hw.by)

Версия для печатиВерсия для печати

Номер: 

45 за 2002 год

Рубрика: 

Hardware
Заметили ошибку? Выделите ее мышкой и нажмите Ctrl+Enter!