CompTIA MCDST Воскресенье, 13.07.2025, 21:54
Приветствую Вас Гость | RSS
Меню сайта

Категории каталога
Процессоры [5]
Память [1]
Разное [6]
Накопители [9]
Видео и мониторы [3]
Принтеры [2]
Сканеры [1]
Связь [1]

Начало » Статьи » Процессоры

Процессор Pentium 4 3.06 и технология HyperThreading
Одной из полезных особенностей архитектуры процессора Pentium 4 является возможность достижения очень высоких тактовых частот. Почему это стало возможным? Не будем вдаваться в детали: поскольку исполнительный конвейер у этого процессора длиннее, чем у предшественников и конкурирующих процессоров, общее время выполнения одной команды поделено на несколько коротких этапов, каждый из которых может выполняться достаточно быстро. Сокращение длины одного такта - это ничто иное, как увеличение тактовой частоты. Поэтому, отлаживая технологию производства, корпорация Intel может постепенно наращивать частоту процессора. Что она и делает, с завидной периодичностью объявляя все новые и новые модели Pentium 4.
Осенью 2002 года увидел свет очередной процессор, тактовая частота которого достигла значения 3 ГГц. Но не только в круглой цифре (ну, почти круглой :) его уникальность. Это - первый настольный (то есть предназначенный для обычных ПК) процессор, обладающий поддержкой HyperThreading. Эта статья посвящена теории и практике применения этой уникальной технологии, позволяющей реализовать многопроцессорную обработку на обычных персоналках.

Идея

Для чего применяется многопроцессорная обработка - понятно: если в системе имеются два и более вычислительных устройства, их можно загрузить работой и тем самым увеличить быстродействие системы. Вопрос только в том, как разбить задачу на несколько независимых подзадач, которые можно выполнять параллельно. Но современные операционные системы уже являются многозадачными и многопоточными - они одновременно выполняют множество служебных и прикладных задач. Очевидно, что выигрыш от наличия нескольких процессоров, хотя бы теоретический, должен получить любой компьютер, работающий под управлением многозадачной ОС.
Однако добавление второго процессора многократно увеличивает сложность, а, следовательно, и стоимость системы. Для сервера, постоянно загруженного работой, это оправданно. Но не для персоналки.
Но было найдено простое и эффективное решение. В его основе лежит использование особенностей современных процессоров. Они, как известно, являются конвейерными и суперскалярными, то есть выполнение команд в них идет параллельно, по этапам и на нескольких конвейерах сразу. Для того чтобы разбить команды на параллельные потоки, процессору необходимо проанализировать зависимость их друг от друга и расположить их в таком порядке, чтобы логика программы не искажалась. Понятно, что если программа не скомпилирована с расчетом на параллельное выполнение команд, или ее оптимизация не подходит под архитектуру процессора, большинство дублирующихся вычислительных блоков процессора будет простаивать. Если бы в процессор поступали потоки независимых команд, он мог бы обрабатывать их параллельно, или иногда заполнять свободные блоки подходящими командами из другого, независимого потока.
Каким образом организовать поступление в процессор нескольких потоков команд, позволяющих оптимальнее использовать его ресурсы? А если возложить эту задачу на программное обеспечение, например, на операционную систему. Скажем, заставить ее думать, что в системе имеется не один, а два процессора. Тогда команды станут поступать в двух не зависимых друг от друга потоках, гарантированно подходящих для параллельной обработки. Процессор сможет выделять потокам ресурсы по мере их освобождения, выполняя работу за двоих. Прирост скорости будет обусловлен тем, что процессор будет работать эффективнее.

Преимущества и недостатки

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

Процессор рассматривает оба потока команд и по очереди запускает на выполнение команды то из одного, то из другого, или сразу их двух, если есть свободные вычислительные ресурсы. Нельзя сказать, что один из потоков является приоритетным - процессор старается обработать оба. Если один из потоков команд останавливается в ожидании события или зацикливается, то процессор просто переключается на второй поток команд. С этим связан эффект ускорения низкоуровневых операций (доступ к подсистемам ввода-вывода), когда работающий драйвер не вызывает блокировки системы.
Однако один процессор не может работать с такой же скоростью, как два процессора. Он может лишь более эффективно использовать свои внутренние ресурсы. Это особенно хорошо заметно, если потоки команд, грубо говоря, не похожи друг на друга, то есть содержат разные типы команд. Тогда обработка одного потока может совмещаться с замедленной обработкой другого, то есть процессор за одно и то же время будет успевать делать полтора дела. Несколько одновременно запущенных приложений, использующих разные алгоритмы обработки данных, будут получать серьезный выигрыш от HyperThreading. И в то же время не стоит забывать, что эффективность новой технологии зависит от работы операционной системы. Разделять команды на потоки будет именно она. И если операционка будет нагружать один из процессоров своими внутренними, системными задачами, то даже одно приложение сможет ускорить работу благодаря HyperThreading.
От приложения тоже зависит, сможет ли оно использовать новые возможности новой технологии. Оно должно выполняться в нескольких потоках, причем эти потоки должны быть спроектированы так, чтобы не пересекаться и не зависеть друг от друга. Ведь если, например, один поток ждет результата работы второго, то HyperThreading может давать отрицательный эффект из-за того, что один поток может забрать почти все ресурсы и не давать работать второму.
В общем, прирост скорости сильно зависит от выполняемых задач. В некоторых случаях он может достигать 25-35% (по данным Intel). Или, например, "заточенные" под многозадачность программы ускоряются на 15-20%. А в других случаях разница не будет заметна или вообще будет отрицательной.

Поддержка

На самом деле технология HyperThreading не так уж и нова. Ее поддержка была заложена в самые первые процессоры семейства Pentium 4 (те самые, с ядром Willamette), но до последнего времени не работала. В смежном рынке серверов и рабочих станций, на процессорах Xeon она была включена раньше, более года назад. Однако на настольном рынке ее появление было задержано. И только после объявления Pentium 4 3.06 было решено, что в обновленной линейке процессоров, как младших, так и старших, еще не вышедших, HyperThreading будет поддерживаться в обязательном порядке.
(HyperThreading не была включена раньше потому, что до последнего времени на настольном рынке доминировала ОС Windows 9x/ME, которая принципиально не способна поддерживать многопроцессорный режим работы. Только с распространением Windows XP появилась возможность задействовать HyperThreading в обычных условиях).
Кроме процессора, необходимо позаботиться о поддержке новой технологии со стороны других компонентов системы. Так, нужен подходящий чипсет материнской платы. Согласно данным, полученным от представителей Intel, технология HyperThreading поддерживается следующими чипсетами:
• i850E (Rambus-чипсет);
• i845E, i845PE;
• i845G*, i845GE, i845GV;
• i865G/P/PE;
• i875P;
• все будущие чипсеты Intel для настольных ПК и рабочих станций, а также серверные чипсеты ServerWorks.
(* - Чипсет i845G помечен потому, что изначально он не имел поддержки HyperThreading. Новый степпинг чипсета исправляет эту проблему. Тем не менее, не стоит рассчитывать на то, что ваша уже купленная плата на i845G будет на новом степпинге - это очень популярный и массовый чипсет, и старые чипы еще долго будут использоваться в производстве).
О чипсетах других производителей есть следующие сведения:
• SIS 645DX, 648, 651 и 655 изначально не поддерживают новую технологию, но в новых ревизиях чипов этот недостаток будет исправлен. Правда, SIS может и не получить лицензию на использование HyperThreading, и тогда фирме придется как-то выкручиваться.
• VIA выпустит новую линейку чипсетов PTxxx, начав с PT400. Эти чипсеты будут поддерживать HyperThreading, ничем не отличаясь от предшественников серии P4X. Лицензию получать не нужно - ее не было с самого начала.
• Безусловно, ALi тоже поддержит HyperThreading, но это никого не интересует из-за крайне низкой популярности продукции этой фирмы.
Кроме чипсета, о HyperThreading должна знать и BIOS платы. Это нужно для того, чтобы была подготовлена таблица конфигурации и произведена инициализация "второго процессора". У производителей плат первого звена уже вышли необходимые обновления BIOS.
Для работы новой технологии нужна также одна из двух операционных систем - либо Windows XP (Home или Pro - не важно), либо Linux с новым ядром, поддерживающим HyperThreading.

Категория: Процессоры | Добавил: Admin (04.02.2007)
Просмотров: 1020 | Рейтинг: 0.0

Поиск по каталогу

Друзья сайта

Статистика

Copyright MyCorp © 2007Сайт управляется системой uCoz