CFA LogoCFA Logo Computer
Новости Статьи Магазин Драйвера Контакты
Новости
RSS канал новостей
В конце марта компания ASRock анонсировала фирменную линейку графических ускорителей Phantom Gaming. ...
Компания Huawei продолжает заниматься расширением фирменной линейки смартфонов Y Series. Очередное ...
Компания Antec в своем очередном пресс-релизе анонсировала поставки фирменной серии блоков питания ...
Компания Thermalright отчиталась о готовности нового высокопроизводительного процессорного кулера ...
Компания Biostar сообщает в официальном пресс-релизе о готовности флагманской материнской платы ...
Самое интересное
Программаторы 25 SPI FLASH Адаптеры Optibay HDD Caddy Драйвера nVidia GeForce Драйвера AMD Radeon HD Игры на DVD Сравнение видеокарт Сравнение процессоров

АРХИВ СТАТЕЙ ЖУРНАЛА «МОЙ КОМПЬЮТЕР» ЗА 2002 ГОД

Бурный поток вычислений

Владимир СИРОТА vovsir@km.ru

Итак, дорогие друзья, перед нами во всей своей красе предстал Intel Pentium 4 3.06 ГГц с технологией Hyper-Threading…

Свершилось! На рынке массовых ПК появился процессор с тактовой частотой, превышающей три гигагерца.

Как долго шла ИТ-индустрия и ее лидер — компания Intel — к этому знаменательному событию? За 29 лет, которые протекли с момента выпуска первого процессора, Intel подняла частоту своих чипов до полутора гигагерц. А за последующие два года частота ЦПУ превысила отметку в три гигагерца. Что же будет еще через годик-другой?

Однако не частотой единой выделяется среди своих собратьев-процессоров нововышедший Pentium 4 3.06 ГГц. И хотя, на первый взгляд, он ничем от них не отличается — ядро Northwood, 512-Кб кэш L2, 0.13-мкм технология производства, такие же внешние формы (рис. 1) и то же количество ножек, но в недрах этого чипа скрыто нечто, что ставит его на новую ступень процессорной эволюции. Изюминка новинки — вовсе не в высокой рабочей частоте. Заключается она в не гигагерцах, а в поддержке уникальной технологии Hyper-Threading (НТ). Pentium 4 3.06 ГГц — это первый процессор для массовых ПК, в котором реализована поддержка упомянутой уникальной технологии, впервые появившейся на серверных ЦПУ Intel Xeon. Главная фишка технологии Hyper-Threading заключается в том, что она дает возможность однопроцессорному ПК при наличии «правильной» операционной системы обрабатывать информацию так, словно используется двухпроцессорный компьютер (благодаря технологии НТ один физический процессор воспринимается операционной системой и приложениями как два логических). А это, по уверениям компании Intel, практически Рис. 1
«бесплатно» повышает производительность ПК в среднем на четверть.

Исходя из вышесказанного, мы можем констатировать, что Intel Pentium 4 3.06 ГГц представляет собой не просто очередной экземпляр экстенсивно развивающейся линейки процессоров, а является действительно новым, можно даже сказать, революционным шагом в процессоростроении. Остается добавить, что все планируемые к выпуску последующие модели десктопных процессоров Pentium 4 будут поддерживать технологию Hyper-Threading.

Давайте же попытаемся проникнуть в «тайны» работы Hyper-Threading на процессоре Pentium 4 3.06 ГГц.

Как все начиналось

Для начала ознакомимся с краткой историей, приведшей к появлению Hyper-Threading (НТ) в процессорах Intel. А она такова:

1993 г. — Заметив, что очень часто ресурсы процессоров используются не полностью, почетный сотрудник корпорации Intel Глен Хинтон (Glenn Hinton) выдвинул идею технологии НТ;

1996 г. — Инженеры Intel приступили к интеграции технологии НТ в разработку с рабочим названием Willamette, которая стала ядром процессоров Intel Pentium 4 и IntelXeon;

1999 г. — Первое тестирование систем, использующих технологию НТ, в тестовых лабораториях корпорации Intel;

28 августа 2001 г. — Корпорация Intel впервые публично представила технологию Hyper-Threading;

6 февраля 2002 г. — Технологией Hyper-Threading оснащаются серверы на базе процессоров Intel Xeon;

18 апреля 2002 г. — Президент корпорации Intel Пол Отеллини (Paul Otellini) на конференции Microsoft Windows Hardware Engineering Conference в Сиэтле впервые продемонстрировал применение технологии НТ в настольных ПК, пообещав, что в настольных ПК она появится в 2003 году;

9 сентября 2002 г. — Пол Отеллини объявил о том, что технология НТ появится в настольных ПК в четвертом квартале 2002 г., почти на год раньше запланированного срока.

О тонкостях работы Hyper-Threading

Из вышесказанного легко понять, в чем заключалась главная задача НТ, — заставить эффективно заработать те самые «часто простаивающие в ожидании данных» блоки процессора (рис. 2), о которых говорил Глен Хинтон еще десять лет назад, тем самым ускорив работу ПО.

Однако сразу следует отметить, что технология Hyper-Threading позволяет наиболее ощутимо повысить производительность компьютера при работе с программным обеспечением, применяющим многопоточную обработку данных, или в случае использования в ОС многозадачности. Давайте же попробуем разобраться, в каких случаях нам нужно ожидать значительного выигрыша от Hyper-Threading.

На современном компьютере исполняются самые разнообразные программы. Те приложения, которые обеспечивают одновременную работу с несколькими фрагментами кода (так называемыми «потоками» (threads), пример приведен на рисунке 3: WinCommander породил 2 потока, а Winword — целых пять), должны воспринимать единственный физический процессор Pentium 4 с технологией НТ как два логических и распределять «потоки» по ним. В свою очередь, Hyper-Threading позволит самому процессору обрабатывать эти два независимых потока данных не по очереди, как это делалось ранее, а одновременно. Не стоит, впрочем, думать, что параллелизм в новом ядре Pentium 4 доведен до абсолюта, и все исполнительные блоки ядра продублированы.

Рис. 2   Рис. 3

Ничего подобного, Intel избрал наиболее экономичный путь, введя параллелизм лишь там, где это действительно необходимо (см. раздел статьи «Кусочек чистого железа»), ведь некоторые блоки нового ЦПУ вынуждены работать по принципу очередности исполнения поступающих данных (рис. 4). Легко понять, почему это делается — ведь тот же блок Re-Order Buffer вычислительного конвейера обязан по очереди выдавать данные требующему этого по стандарту системному окружению.

Что же касается работы отдельных приложений, то использование технологии Hyper-Threading повышает скорость их работы в многозадачной среде, если несколько программ (процессов, рис. 5) выполняются одновременно. А ведь такая ситуация встречается довольно часто — вспомните, сколько окон у вас бывает открыто одновременно, особенно во время блужданий по просторам Всемирной Паутины. В данном случае НТ способна поднять производительность системы, даже если все работающие в многозадачном режиме приложения ничего не слышали об этой технологии и понятия не имеют о потоках. Однако, как уже упоминалось ранее, важно, чтобы компьютер работал под управлением операционных систем, корректно поддерживающих «логическую многопроцессорность» Pentium 4 с Hyper-Threading. К таким ОС можно отнести достаточно распространенную Windows XP, во всех «инкарнациях», а также свежайшие релизы Linux’ов.

Рис. 4   Рис. 5

Кстати, никогда не путайте процессы и потоки — первые могут порождать последние, но не наоборот. И вместе с основным процессом завершаются все вызванные им потоки. Разумеется, если не происходило сбоев, и ОС сумела аккуратно завершить процесс.

Благодаря применению Hyper-Threading в обоих случаях — и при многопоточности, и при многозадачности, — результатом для конечного пользователя будет существенное повышение производительности компьютера. Так, согласно данным компании Intel, одновременная обработка музыки и редактирование видеоматериалов с помощью ПК на базе процессора Pentium 4 с тактовой частотой 3.06 ГГц и технологией НТ происходит на 21% быстрее, нежели на таком же ПК без использования НТ. Антивирусное сканирование, шифрование, сжатие и другие фоновые приложения с помощью НТ можно запускать одновременно, без риска потери доступности приложений или снижения эффективности их работы. Так, при компрессии папки в Outlook во время работы WinZip технология НТ обеспечивает прирост производительности на 35%. Adobe Photoshop при одновременном поиске вирусов программой MacAfee трудится на 21% быстрее, опять же, по сведениям компании Intel.

Кусочек чистого железа

В этом разделе статьи мы заглянем в «железную» часть процессора Pentium 4 с НТ. Как же реализована эта технология аппаратно? По сути, к обычному процессорному ядру добавили еще один блок Architectural State (AS), который содержит состояние регистров (общего назначения, управляющих, APIC, служебных). Фактически первый AS, а также единственное (общее) ядро процессора (блоки предсказания ветвлений, ALU, FPU, SIMD-блоки и др.) представляет собой один логический процессор, а второй AS вместе с тем же самым ядром — второй логический процессор. У каждого из логических процессоров есть свой собственный контроллер прерываний (APIC — Advanced Programmable Interrupt Controller) и набор регистров. Для корректного использования регистров двумя логическими процессорами существует специальная таблица —RAT (Register Alias Table). С помощью ее данных можно установить соответствие между регистрами общего назначения, используемых «общим» ядром процессора. RAT у каждого логического процессора своя. Такой вот комбинацией из двух AS мы получили схему, при которой на одном и том же ядре могут выполняться два независимых фрагмента кода. То есть создали аппаратную многопроцессорную систему, использовав… всего один ЦПУ :-).

Особо следует подчеркнуть, что, применив Hyper-Threading в своих чипах, компания Intel нашла достаточно эффективный способ повышения быстродействия массовых ПК. Часто применявшиеся ранее «традиционные» методы убыстрения процессоров, используемые в микроархитектуре чипов для повышения производительности, такие как увеличение объема кэш-памяти или числа исполнительных блоков для выполнения операций с плавающей запятой, увеличивают размер кристалла чипа на 20–30% (пропорционально росту числа транзисторов). При этом может быть обеспечено повышение производительности в среднем на 10% (помните пресловутое увеличение кэш-памяти при переходе с Willamette на Northwood?). В случае же с технологией Hyper-Threading картина выглядит куда более впечатляющей. Использование технологии НТ обеспечивает повышение производительности до 25%, при том что ее применение потребовало увеличения размера ядра процессора менее чем на 5%! Понятно, откуда взялись эти 5% — именно они и «ушли» на дублирование некоторых блоков процессора, необходимых для эффективного использования НТ.

Следует подчеркнуть, что с новыми процессорами Pentium 4, обладающими Hyper-Threading, совместимы все чипсеты компании Intel, поддерживающие 533-МГц системную шину (i850E, i845PE/GE, i845E/G). Исключение составляют только набор микросхем i845G первой ревизии (А). Чипсеты других производителей пока не могут похвастать умением работать с Hyper-Threading. Но поскольку стандарт НТ является открытым, то, наверняка, вскоре мы сможем увидеть наборы микросхем с поддержкой НТ и от других изготовителей наборов системной логики. Кстати, не забывайте, что поддержка Hyper-Threading в материнской плате должна быть обеспечена не только на уровне чипсета, но и на уровне BIOS, так что обратите на это внимание, приобретая платы для Pentium 4. Ибо если интегрированный на материнке чипсет трижды поддерживает :-) Pentium 4 с НТ, а BIOS — нет, то и «кина», то бишь никакого Hyper-Threading, с такой системной платой не будет.

Раздел пессимиста

Ну и что же, возразят другие, подумаешь — два логических процессора, два потока вычислений. Вон, одна только Windows запускает при старте добрых полтора десятка процессов — и ничего, все шустренько работает! Так-то оно так, но обратите внимание, что запущенные процессы большую часть времени не активны, то есть не задействуют ресурсы процессора (если они не глючат или коряво написаны), а просто тихо «висят в памяти». Поэтому работе Hyper-Threading они мешать не будут :-).

А зачем вообще огород городили — заявят некоторые — ведь и так в современном ПК процессор одновременно благополучно обрабатывает множество приложений в многозадачной среде? Однако на самом деле в обычном компьютере (разумеется, на однопроцессорной системе) в одно и то же время выполняется одна и только одна задача, просто переключение между участками исполняемого кода разных приложений происходит очень быстро, и у пользователя создается ощущение одновременной и непрерывной работы нескольких приложений. Но это всего лишь иллюзия, и не более того. А технология Hyper-Threading обеспечивает именно реальную аппаратную параллельность выполнения задач, ранее достижимую только на двухпроцессорных системах. А это уже весомый вклад в повышение быстродействия ПК. Плюс ко всему, НТ не позволяет захватить одному приложению слишком много процессорных ресурсов и ввести систему в состояние «глубокой задумчивости», а кроме того, дает возможность избегать так нелюбимых всеми «тормозов» при параллельной работе приложений.

Что же касается возмущенных возгласов, почему, мол, новый чип Pentium 4 имеет всего два логических процессора, а не три, четыре или еще лучше десять, что было бы вообще круто, то отвечу так: согласно аналитическим данным, полученным в самой компании Intel, «дуальная» логичность оказалась наиболее оправданной. И большее количество логических процессоров на одном ядре, по крайней мере, пока, лишено всякого смысла.

Ну да ладно, чтобы Hyper-Threading вовсе уж малиной не казался, сообщу: Intel признается, что существуют приложения, при использовании которых производительность от применения НТ может не изменяться, а то и вообще, падать. Надеюсь, такими умозаключениями я очень утешил всех пессимистов :-).

Оптимистическое тестирование

Много хороших слов мы сказали во славу Pentium 4 с технологией Hyper-Threading. Но давайте на практике проверим, насколько НТ актуальна для нынешних пользователей ПК. Итак, у нас есть: собственно процессор Pentium 4 3.06 ГГц с технологией Hyper-Threading и новым «родным» интеловским кулером с медным сердечником, материнская плата Intel на чипсете i850E, память Samsung PC1066 RDRAM, видеокарта Shuttle Radeon 9700 PRO 128 Мб DDR, жесткий диск Seagate Barracuda ATA IV 40 Гб 7200 об/мин, ОС — Windows ХР Professional.

Вы знаете, иногда на довольно серьезных форумах, посвященных развитию компьютерных технологий, вероятно, от «непродвинутых» журналистов, приходиться выслушивать нечто вроде такого. А не пора ли остановить процессорную гонку, вон, мол, компьютеры и так работают достаточно быстро, и мы за ними не поспеваем :-). Сразу ясно, что такие «уникумы» никогда не садились рендерить сцены в 3DSMAX, а рамки используемого ими ПО, видимо, не выходят за окна Winword’a. Но мы то с вами знаем, что производительности процессора никогда не бывает много. Чем еще хорош 3DSMAX в качестве теста, кроме того, что он сильно «напрягает» систему, так это тем, что данное приложение разбивает рендеринг сцен на несколько потоков, что дает возможность оценить реальный прирост производительности от использования Hyper-Threading. Давайте посмотрим на диаграмму 1: здесь отражено, как один и тот же процессор Pentium 4 3.06 ГГц рендерит вот такую картинку (рис. 6) до такой сцены (рис. 7) с использованием Hyper-Threading и без задействования данной технологии. И что же мы видим? Благодаря НТ мы сэкономили 20% (пятую часть) драгоценного рабочего времени. Впечатляющий результат!

Рис. 6    Рис. 7

Увеличим нагрузку на ЦПУ, запустив в фоновом режиме два фильма в формате MPEG4. Кстати, и с «кином» наблюдается интересная картина: при запуске одного видеопотока загруженность процессора доходит до 5–8%, при запуске двух фильмов с использованием Hyper-Threading загрузка ЦПУ возрастает до 18–22%, в то время как без применения данной технологии загруженность процессора двумя фильмами колеблется на уровне 25–35%. Примечательный факт.

Но вернемся к тестам. При увеличении вычислительной нагрузки картина в 3DSMAX 5 принципиально не меняется — процессор с НТ вновь впереди, хотя его преимущество и несколько сократилось (~7%). Ну что ж, тоже неплохо.

О том, что в многопоточном рендеринге Hyper-Threading силен, свидетельствуют и результаты замеров с помощью Cinema 4D Demo: рендеринг этого изображения в такую картинку с использованием НТ требует на 23% меньше времени, чем при работе «обычного» ЦПУ (диаграмма 2).

Как мы видим из вышеприведенного, в ресурсоемких приложениях прирост производительности от Hyper-Threading есть, и назвать его просто скромным никак нельзя — он весьма весом. Попробуем оценить его в «рафинированном» виде, померив производительность ЦПУ с помощью пакета SiSoftSandra2002, «понимающего» процессор с НТ. Оговоримся сразу, быстродействие системных компонент, включая подсистему памяти, одинаково как для процессора, применяющего НТ, так и не задействующего эту технологию (диаграмма 3, рис. 8, 9). А изменения же процессорной производительности (рис. 10) при активации НТ можно оценить по диаграммам 4 и 5. Видим, что прирост вычислительной мощи от активирования НТ варьируется от 14 до 54%.

Рис. 8   Рис. 9   Рис. 10

В отличие от 3DSMAX и Cinema 4D, в Photoshop 7.0 никаких радикальных улучшений быстродействия от включения НТ при работе единственно этого приложения не наблюдалось. Системы с НТ и без нее находились практически на одинаковом уровне производительности, а отличия между ними по некоторым показателям, если и есть (диаграмма 6), то мизерные, то есть могут быть вообще списаны на случайные погрешности измерения.

Вернемся к приложениям, которые актуальны для многих. Будем измерять вычислительную скорость нашей тестовой платформы на задачах Direct3D и OpenGL. В первом случае мы воспользуемся 3D Mark2001 SE, во втором —Quake III.

Итак, в 3D Mark2001 SE мной получены результаты, которые отражены в диаграмме 7. Смею вас заверить, что никакого отставания процессора с включенным НТ в этом тесте не наблюдалось, потому позволю себе усомниться в тех результатах, которыми «опускали» НТ на некоторых сайтах. Возможно, проблема заключалась в драйверах под GeForce’ы, работающих на этих тестовых платформах и плохо «стыкующихся» с НТ. Важно отметить, что с ростом нагрузки на исполнительные блоки ЦПУ («озадаченного» двумя фильмами MPEG4) процессор с НТ ничуть не утрачивал своих позиций, как, впрочем, не сдавал их и чип без НТ. Скорее всего, в данном случае можно констатировать, что на данный тест (как и многие Direct3D-приложения) НТ значительного влияния, по крайней мере, пока, не оказывает.

А что же мы видим в Quake III (диаграмма 8)? При «вольготном» прогоне демо-сцены, когда процессор «не озадачен» другими процессами, Квака чувствует себя одинаково хорошо на обеих платформах. Но стоит немного приподнять планку нагрузки на ЦПУ (запустив в фоне все те же два фильма), как картина меняется. Система, использующая Hyper-Threading, выходит в безоговорочные лидеры, демонстрируя более, чем 4%-ное преимущество перед конкуренткой по частоте смены кадров. То есть мы можем констатировать, что для любителей поиграть технология НТ тоже имеет свои преимущества: геймы будут меньше «подтормаживать», если во время игры в фоне запущена какая-либо ресурсоемкая задача.

Диаграмма 1   Диаграмма 2   Диаграмма 3

Диаграмма 4   Диаграмма 5   Диаграмма 6

Диаграмма 7   Диаграмма 8

Hyper-вывод

Ну вот, собственно, и все. Пора делать выводы. А поскольку уже давно перевалило за полночь :-), то буду краток. С уверенностью можно утверждать, что Hyper-Threading обеспечивает реальный прирост производительности в ресурсоемких многопоточных либо многозадачных режимах работы ПО и ОС. То есть Hyper-Threading — это технология будущего, которая великолепно показывает себя в компьютерах уже сегодня.

Благодарствую:

украинскому представительству компании Intel за предоставленные процессор Pentium 4 3.06 ГГц с технологией Hyper-Threading, кулер, материнскую плату и память Samsung PC1066 RDRAM;

компании Elko Kiev за видеокарту Shuttle Radeon 9700 PRO 128 Мб DDR.

Рекомендуем ещё прочитать:






Данную страницу никто не комментировал. Вы можете стать первым.

Ваше имя:
Ваша почта:

RSS
Комментарий:
Введите символы или вычислите пример: *
captcha
Обновить





Хостинг на серверах в Украине, США и Германии. © sector.biz.ua 2006-2015 design by Vadim Popov