www.team.ru
Поиск
sales@team.ru

Обзор процессоров для настольных компьютеров (1-й квартал 2002 г.)

"А вместо сердца - пламенный мотор"

Введение

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

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

Ниже рассматривается текущее состояние ("моментальный снимок") для настольных процессоров (Desktop Processors), т.е. процессоров для настольных компьютеров, как наиболее интересных для домашнего пользователя (существуют еще серверные и мобильные процессоры).

Естественно, рассмотрение будет ограничено x86-процессорами, которые, по сути, определяют PC компьютеры. ОС Windows "признает" только такие процессоры (но на них работают также многие разновидности ОС UNIX, в частности популярная ОС Linux). Впрочем, об этом можно говорить только для кругозора: единственные альтернативные компьютеры Mac, использующие другие процессоры, можно встретить в небольших количествах разве что в Америке.

Дополнительный материал (для желающих) вынесен в Приложения. В конце статьи для удобства помещен Глоссарий.

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

Современный состав семейства x86

Помимо родоначальника семейства x86 - компании Intel к производству процессоров подключались в различное время и другие компании, и их состав был переменным. Вот каков текущий состав производителей.

Процессоры Intel

Компания Intel производит большую часть всех процессоров семейства (около 80 % за 2001 г.).

  • Pentium 4 - для высокопроизводительных компьютеров с мультимедийным уклоном.
  • Pentium III - для высокопроизводительных компьютеров. Относится к предыдущему поколению по отношению к Pentium 4, однако по производительности не уступает Pentium 4 кроме приложений, оптимизированных под последний. По планам Intel должен быть снят с производства в ближайшем будущем.
  • Celeron - для недорогих домашних и офисных компьютеров. Является урезанной версией Pentium III: новые модели отличаются в основном уменьшенной внешней частотой. Celeron и Pentium III совместимы по гнездам и взаимозаменяемы (если сделаны с одинаковым техшагом, см.) на системной плате. Несмотря на низкую цену и отлаженные системные платы для него, низкая внешняя фронтальная частота делает его бесперспективным. Положение должно измениться в Q2 2002 г. когда Celeron будет сделан на базе урезанной версии Pentium 4.

Процессоры AMD

Компания AMD (Advanced Micro Devices) является вторым производителем после Intel (около 20 % за 2001 г.) и его реальным коммерческим и технологическим конкурентом.

  • Athlon XP - для высокопроизводительных компьютеров. Прямой конкурент Pentium 4. Даже частота указывается не физическая, а эквивалентная Pentium 4. По большому счету оба процессора сейчас равноценны.
  • Duron - для недорогих домашних и офисных компьютеров. Является урезанной версией Athlon XP (в отношении фронтальной частоты и размера кэша). Прямой и более производительный конкурент Celeron'а. Athlon XP и Duron совместимы по гнездам и взаимозаменяемы (если сделаны с одинаковым техшагом, см.) на системной плате.

Процессоры VIA

Компания VIA Technology мизерную часть (около 1 % за 2001 г.) процессоров семейства. Несмотря на то, что ее процессоры быстро прогрессируют, пока флагманская модель C3 имеет недостаточную производительность и годится только для сверх дешевых офисных компьютеров. Кроме того, процессоры не представлены широко в продаже. Поэтому они пока не представляют интереса, и будут ниже рассматриваться эпизодически.

Блок-схема процессора

Эта схема полезна для понимания и для дальнейшего изложения.

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

Встроенные кэши L1 и L2 (т.е. уровня 1 и 2) значительно уменьшают потребность обращения к основной памяти (через шину процессора), ускоряя обработку данных.

Для связи процессора с другими устройствами на системной плате, в частности к основной памяти, осуществляется через шину процессора. Заметим, что раньше и основная память и процессор "сидели" на одной шине, которая называлась системной. Сейчас для повышения производительности процессор имеет собственную шину.

Основные параметры процессора

Внешняя частота процессора

Это частота, с которой процессора обменивается данными со своей шиной. Эта шина (со времен, когда кэш L2 был внешним и его шина называлась BSB) называется еще FSB (Front Side Bus). Название FSB перенеслось и на внешнюю частоту, которая также называется FSB (следует только иметь в виду, что физическая частота шины может быть вдвое (или даже вчетверо) меньше, если данные передаются на обоих фронтах импульсов). Чем выше FSB, тем лучше.

Вообще, увеличение внешней частоты свыше штатного значения называется внешним разгоном процессора. Продвинутые системные платы предоставляют возможность постепенно увеличивать частоту FSB с шагом 1 мГц пока не будет найдена наибольшая FSB, на которой вся система еще стабильно работает. Внешний разгон значительно больший эффект чем внутренний разгон процессора (см.), так как увеличивает скорость обмена с процессором.

Процессоры FSBa мГц

Intel Celeron

66, 100

Intel Penitum III

100, 133

VIA C3

100, 133

AMD Duron

100 (200)

AMD Athlon XP

133 (266)

Intel Penitum 4

100 (400)

В скобках указана эффективная частота, которая оказывается выше, так как за такт передается вдвое больше данных.

Две частоты у процессоров Intel означает, что есть старые модели, которые поддерживают только меньшую частоту и есть новые модели, которые поддерживают обе частоты. Новые модели обозначаются суффиксом В (bus), например, Penitum IIIB 800. Ниже основное внимание уделим производительным новым моделям.

Чтобы оценить насколько удачны приведенные частоты шины FSB, посмотрим на следующую блок схему.

Из нее видно, что должен быть приблизительный баланс между пропускной способностью шины процессора и шины памяти. Ширина обеих шин одинакова (64 разряда для данных ), так что пропускная способность определяется только эффективными частотами. В настоящее время наиболее эффективна память типа DDR SDRAM, которая, являясь немного дороже SDRAM, значительно превосходит ее по производительности. Сейчас выпускаются модули памяти, работающие на следующих частотах.

Память

Другое название

Тип

Частота памяти мГц

Физическая частота шины мГц

PC100

 

SDRAM

100

100

PC133

 

SDRAM

133

133

PC1600

DDR200

DDR

200

100

PC2100

DDR266

DDR

266

133

PC2700

DDR333

DDR

333

166

Как видно из сравнения таблиц FSB у процессора Celeron в 2 и более раза отстает от частот DDR памяти: он просто не может использовать ее потенциал. Положение могло бы немного спасти перевод Celeron'а на 133 мГц, однако Intel тянет с этим, так как ее младшие модели Penitum 4 не блещут производительностью и "ускоренный" Celeron (который ничем не отличался бы от Penitum III) стал бы им конкурентом.

Совет: если в линейке процессоров одного типа присутствуют модели с разными внешними частотами, отдавайте предпочтение тем, у которых частоты больше.

Частота процессора

Частота процессора

Частота процессора - тактовая частота, на которой работает процессор. Ее можно было бы назвать еще внутренней частотой (противопоставляя внешней). Различие в частотах появилось еще в "незапамятные" времена процессора i486 и реализовало более высокую скорость развития процессоров по сравнению с другими компонентами.

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

Каждый тип процессора (например, Celeron) стоит из целой линейки моделей, отличающихся частотами (внешняя частота у них одинакова). Частота процессора обязательно указывается в названии модели через пробел, например, Duron 1.1 гГц.

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

Совет: не покупайте самую верхнюю модель линейки

Дело в том, что ее цена сильно завышена по сравнению с предпоследними моделями, а выигрыш в производительности малозаметен. Снижение цен происходит довольно часто - раз в 1-2 месяца, так что стоит дождаться появления новой модели и связанного с этим снижения цен.

Совет: покупайте процессор с частотой от 1 гГц.

Это позволяет уверенно использовать HSP-технологии в мультимедийных приложениях (пример - софт миди синтезатор).

На текущий момент диапазоны частот были такими:

Процессоры

Частоты гГц

Intel

Celeron, FSB=100 *

1.0A, 1.1, 1.2, 1.3

Penitum III FSB=133 *

1.13, 1.2, 1.33

Penitum 4 *

2.0A, 2.2

AMD

Duron

1.0, 1.1, 1.2, 1.3

Athlon XP *

1.6+ (1.4),
1.7+ (1.47),
1.8+ (1.53),
1.9+ (1.6),
2.0+ (1.67),
2.1+ (1.73)

*) модели с меньшей FSB и большим техшагом (см.) не приводятся в виду их неэффективности.Суффикс "А" в частоте как раз и означает модель с новым ядром, если одновременно выпускается старая с такой же частотой (см. ниже).

Замечание: xx33 мГц на самом деле означает xx331/3 мГц, xx66 мГц - xx662/3 ~ xx67 мГц.

Для процессоров Athlon XP вне скобок указаны эффективные частоты, а в скобках - физические (см. ниже).

Эффективность частот

Частота процессора реализуется так. Внутри процессора стоит умножитель частоты с фиксированным множителем. На вход этого умножителя подается внешняя частота, на выходе получается умноженная частота. Например, для модели Celeron 1.1 гГц этот коэффициент равен 11 (так как внешняя частота 100 мГц).

Так как фиксирован только коэффициент, то реальная частота зависит от внешней частоты, так что при внешнем разгоне повышается и частота процессора.

Заметим, что для прежних поколений процессоров коэффициент можно было конфигурировать и, оставляя неизменной внешнюю частоту увеличивать внутреннюю. Это называлось внутренним разгоном (и даже сейчас возможно некоторыми манипуляциями над процессорами AMD), однако такой разгон куда менее неэффективен внешнего по причинам, которые будут ясны чуть ниже.

Когда коэффициент, связывающий внешние и внутренние частоты достигает значения 10, то его увеличение уже мало что дает в плане прироста производительности. Это было подкреплено в свое время сравнением Celeron 1.2 гГц и 1.3 гГц, которое показало, что модели практически равны по производительности.

Так что коэффициенты свыше 10 можно считать "неприлично высокими". Дело в том, что когда частота и соответственно производительность становится достаточно большой, то FSB шина уже не успевает подавать обрабатываемые данные и процессор простаивает.

С учетом того, что модели с более высокими частотами хуже разгоняются (верхняя частота ограничена техшагом) приобретение модели с более низкой частотой оказаться более выгодной. Мало того, что она стоит дешевле, так для нее шину FSB можно разогнать до более высоких частот. Например, для Celeron 1.0 гГц можно было FSB разогнать до 133 мГц (и использовать память PC133), а для Celeron 1.3 гГц это уже невозможно.

Совет: имейте в виду, что модели с коэффициентами умножения 12 и выше уступают по соотношению производительность / цена младшим моделям линейки с коэффициентом 10.

Эквивалентные частоты AMD Athlon

В приведенной выше таблице частоты процессоров AMD Athlon приведены со знаком плюс. Это означает следующее. AMD признает доминирование конкурента в лице Pentium 4 и из маркетинговых соображений приводит частоту, которая бы соответствовала эквивалентной частоте Pentium 4. Эквивалентная частота вычисляется на процессорных тестах. Физическая же частота оказывается ниже (она приведена в таблице в скобках). При одинаковых ценах малоискушенные юзеры приобрели бы Pentium 4, имеющий большую частоту. Для юзера эквивалентные частоты также удобны, так как позволяют легче сравнивать и выбирать альтернативныепроцессоры.

Техшаг процессора

Процессор состоит из миллионов транзисторов. Последние можно условно представить себе в виде квадратиков, расположенных в узлах прямоугольной сетки (как зерна на ЭЛТ дисплеях). Техшаг (сокращение от технологический шаг) можно себе мыслить как расстояние между соседними транзисторами, т.е. шаг сетки (аналогично шагу зерна в ЭЛТ).

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

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

Сейчас процессоры имеют техшаг 0.18 и 0.13 мк (микрон), причем планируется все 0.18 процессоры перевести на 0.13 техшаг. В линейке обычно присутствуют старые и новые процессоры. Поэтому

Совет: покупайте процессор с меньшим шагом.

Имя ядра

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

Для того чтобы было удобно отличать процессоры одного типа их ядрам принято присваивать звонкие имена. Впрочем, имена ядер вводятся больше для удобства журналистов, а в документации производителей они часто вообще отсутствуют. Вместо них используются длинные и подробные названия, например, Intel Pentium III Processor Based on 0.13 Micron Process Up to 1.33 GHz. Однако имена попадаются и в грамотно составленных прайслистах.

Заметим, что неправильно связывать техшаг с ядром: процессор изготовляется как единое целое с ядром и кэшами, так что техшаг относится ко всем компонентам.

Часто бывает, что в линейке одного типа процессора представлены модели с новым и старым ядрами. Причем бывает, что они и по частотам пересекаются. В последнем случае Intel присваивает суффикс "А" моделям с новым ядром, например, Pentium 4 2.0 (старое ядро Willamette) и Pentium 4 2.0A (новое ядро Northwood). Здесь 2.0 - частота гГц.

Текущие имена представлены ниже в таблице.

Процессоры

Новое ядро, техшаг

Старое ядро, техшаг

Intel

Celeron

Tualatin, 0.13

Coppermine, 0.18

Penitum III

Tualatin, 0.13

Coppermine, 0.18

Penitum 4 *

Northwood, 0.13

Willamette, 0.18

AMD

Duron

Morgan, 0.18

Spitfire, 0.18

Athlon XP *

Palomino, 0.18

Thunderbird

Кэши L1 и L2

Буква "L" является сокращением от Level - уровень. Чем меньше уровень, тем ближе кэш к ядру процессора (см. схему выше).

Кэш L1 изначально был интегрирован в процессор (поэтому не встает вопрос о ширине его шины). В него помещают инструкции процессора (расшифрованные команды программ) и данные для этих инструкций, обычно половина кэша отводится для инструкций, а половина - для данных. Только у Penitum 4 сделан перекос в сторону инструкций, видимо временный. Большой кэш L1 очень полезен в условиях многозадачности, так как он хранит так называемый контекст задач, т.е. информацию, необходимую для переключения на эти задачи при поочередном выполнении.

Кэш L2 появился как результат отрыва частоты процессора от внешней частоты (начиная с процессора i486DX 4-го поколения), а значит скорости доступа к памяти. В нем хранятся такие же не декодированные данные, как и в памяти. Вначале кэш L2 был внешним и работал на меньших частотах. Со временем он стал интегрированным (а значит работающим на частоте процессора). Однако остался такой параметр как ширина связывающей его шины BSB (backside bus - шина заднего плана). Другими параметром являются, естественно, размер кэша L2.

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

 

Intel Celeron

Intel Penitum III

Intel Penitum 4

AMD Duron

AMD Athlon XP

L1 К

32

32

20

128

128

L2 К

256

256

512

64

256

шина L2 бит

256

256

256

64

64

эксклюзивность L2

нет

нет

нет

да

да

Эксклюзивность L2 означает отсутствие дублирования содержимого L1.

Из таблицы нетрудно видеть процессоры от AMD в отношении использования кэшей имеют и плюсы, и минусы по сравнению с процессорами от Intel:

  • Эксклюзивность L2 повышает эффективное использование суммарных размеров кэшей у процессоров AMD.
  • Узкая шина L2 у процессоров AMD снижает эффективное использование этого кэша.
  • Размер кэша L1 у процессоров AMD намного больше, чем у процессоров Intel.

Встроенные средства термозащиты

Современные гигагерцовые процессоры (особенно с большим техшагом и для старших моделей Atloon и Pentium 4) выделяют тепло в несколько десятков ватт, что создает две проблемы:

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

Рассмотрим первую проблему, так как вторая относится к оснащенности системной платы. Здесь тоже можно выделить две подпроблемы:

  • оснащенность процессора хорошим кулером и термопастой
  • средства автоматической защиты самого процессора.

Будем рассматривать только вторую подпроблему, так как первая относится к аксессуарам процессора.

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

В современных процессорах есть следующие средства термозащиты:

  • термодиод (Thermal Diode). Важно, что он встроен в сам процессор, что позволяет значительно точнее измерять температуру по сравнению с размещением датчиков снаружи или на процессорном гнезде. Этот термодиод использует система мониторинга системной платы. Выставление пороговых значений - через BIOS setup. К сожалению, термодиод обладает высокой инерционностью и хорош только для измерения установившейся температуры. Термодиод встроен сейчас во все рассматриваемые процессоры.
  • Внутренний термомониторинг. Основан на точном встроенном термическом сенсоре и малоинерционной цепи мониторинга. При превышении температуры эта обратная связь снижает частоту процессора, вставляя холостые такты, а при превышении максимально допустимой немедленно переводит процессор на холостой ход и выдает внешний сигнал на систему мониторинга системной платы на аварийное отключение системы. Пока это очень надежное средство есть только у линейки Intel Penitum 4, и называется Thermal Monitor.

Ниже в таблице рассматриваются только процессоры с новым (уменьшенным) техшагом.

 

Intel Celeron

Intel Penitum III

Intel Penitum 4

AMD Duron

AMD Athlon XP

Термодиод

да

да

да

да

да

Внутренний термомониторинг

нет

нет

да

нет

нет

Тепловая мощность макс Вт

28-33

27-34

55

42-60

60-70

Температура макс. (°C)

70

70

69

90

90

Для целей охлаждения важную роль играет еще упаковка ядра процессора (см. ниже).

Корпус процессора

Корпус процессора (package, иногда употребляют термин картридж) является важным эксплуатационным параметром, так как влияет на его охлаждение и на стойкость при прикреплении к нему радиатора.

Сами процессоры имеют форму квадратной пластины. Ножки выводов расположены на одной стороне по ее периметру перпендикулярно к плоскости. По центру находится ядро процессора.

Корпус FC-PGA2 для процессоров от Intel

Во всех процессорах от Intel используется конструктив корпуса, называемый FC-PGA2, т.е. FC-PGA второго поколения. В свою очередь FC-PGA - это аббревиатура от Flip Chip Pin Grid Array - перевернутый чип с массивом игольчатых контактов. Дело в том, что кристалл перевернут и выходит на верхнюю часть для лучшего охлаждения. Основным отличием от предыдущего конструктива FC-PGA является закрытие ядра сверху теплорассеивателем (Integrated Heat Spreader), который представляет собой медную пластину, покрытую тонким защитным слоем.

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

Несколько хуже обстоят дела у процессоров AMD Athlon XP, для которых используются пластиковая упаковка (organic pin grid array, OPGA). Выглядит это точно также, только вместо металла используется тонкий слой пластика.

Худший корпус у AMD Duron - он керамической (ceramic pin grid array, CPGA) и поэтому хуже отводит тепло, более хрупкий (может отколоться при неаккуратном надевании радиатора), и к тому же дорогой.

Боксовый вариант процессора

Если процессор поставляется в боксовом варианте (а также "In Box", "boxed", "box" в предложениях продавцов), то это означает, что процессор:

  • собран с кулером: радиатором и вентилятором. Оба компонента кулера обычно качественные, например, вентилятор с бесшумными подшипниками качения. Также крепление радиатора к процессору является качественным и плотным;
  • снабжен руководством по установке;
  • продается в упаковочной коробке;
  • имеет удлиненную 3-летнюю гарантию (вместо одногодичной).

Стоимость процессора in Box примерно на $5 выше, чем в "голой" OEM упаковке, что совсем недорого с учетом цены на кулер. Для конечного юзера боксовый вариант - наиболее удобнаяформа приобретения.

Совет: приобретайте боксовый вариант процессора.

Однако воспользоваться этим советом могут только выбравшие процессоры от Intel. Боксовые варианты интеловских процессоров всегда были доступны. Боксовые процессоры AMD, вообще говоря, выпускаются, но у нас пока не доступны.

Наборы мультимедийных инструкций

Введение

Когда процессор 5-го поколения Pentium-133 в далеком 1996 г. смог "на лету" декодировать MPEG-1 видео, стало ясно, что PC-компьютеры созрели для мультимедиа. Intel выдвинута концепцию NSP (Native Signal Processing - собственная обработка сигналов), согласно которой мощный центральный процессор должен сам выполнять обработку сигналов (аудио, 3D-графики, видео, связь), которые традиционно выполняли DSP (digital signal processor) - цифровые сигнальные процессоры. Для этого нужно было дополнить стандартный набор i386-инструкций мультимедийным расширением. В настоящее время вместо термина NSP предпочитают HSP - Host Signal Processing, где Host означает центральный процессор и противопоставляется сопроцессору DSP.

Специфика мультимедийных задач состоит в том, что они требуют выполнения специальных однотипных операций над большими потоками данных сигнального типа. Для того чтобы повысить эффективность команд операнды стали использовать длинные и составные (еще говорят упакованные), так чтобы обработать их одной командой. Например, в 64-битный операнд может включать 8 чисел по 8 разрядов, 4 числа по 16 разрядов, 2 числа по 32 разряда и 1 число в 64 разряда. Так что можно одной инструкцией, например, увеличить яркость нескольких графических пикселей. Принцип блочной обработки нескольких данных одной инструкцией получил название SIMD (Single Instruction - Many Data, одна инструкция - много данных).

Мультимедийные наборы внедряются медленно, так как требуется переписать приложения (есть и другие способы, но они менее эффективны).

Вот как появлялись в хронологическом порядке наборы мультимедийных инструкций.

Набор MMX

MMX - аббревиатура от multimedia extension - мультимедийное расширение. Инструкции MMX работают с 64-битными операндами целого типа (обычные операнды 32-разрядные). Главной является инструкция, реализующая скалярное произведение (перемножить два числа и добавить произведение к сумме).

Набор внедрен компания Intel в 1997 г. Уже первый процессор Pentium MMX-166 справлялся с MIDI софт синтезом по таблице волн. Ускорение при декодировании MPEG клипов возрастает на 40%, при микшировании аудио сигналов - на 25%, при выводе 3D графики - на 30%. Известный графический пакет Adobe Photoshop начинает работать в 3 раза быстрее для большинства операций. Набор значительно ускоряет также кодирование в сжатое аудио.

Особенностью набора MMX было то, что в качестве MMX регистров используются плавающие регистры. Это удешевляло процессор, сохраняло совместимость новых MMX процессоров по гнездам со старыми. Но приводило к тому, что MMX инструкции не могут параллельно выполняться с FPU-инструкциями, которые в то время широко использовались в 3D графике. Кроме того, процессору нужно было время на переключение с MMX на FPU-инструкции.

SSE и 3DNow!

Следующим шагом стало создание новых расширений из мультимедийных команд, работающих уже с плавающими (нецелочисленными) операндами. Такие команды примерно удваивают производительность процессора в соответствующих приложениях: 3D графики, а также софт декодирование DVD-видео, распознавание речи и др. Они с успехом заменяют тут FPU.

Но тогда два основных производителя процессоров разработали функционально равноценные, но различные, т.е. несовместимые наборы.

Первым появился в середине 1998 г. набор AMD 3DNow! (в процессорах K6-2; название отражает факт опережения конкурентов). Инструкции оперируют все теми же 64-разрядными MMX регистрами.

Полугодом позже, в начале 1999 г. появился набор Intel SSE (Streaming SIMD Extensions - потоковое SIMD расширение) в процессорах Pentium III. Команды оперируют новыми специально для этого выделенными 128-разрядными XMM регистрами. В каждый такой регистр можно записать по 4 плавающих числа одинарной точности (32 разряда).

Осенью 1999 г. набор 3DNow! пополнился и получил название Enhanced 3DNow!. Он был реализован в процессоре Athlon. Дело давнее и в настоящее время под 3DNow! понимают именно Enhanced 3DNow! (иногда встречается обозначение 3DNow!+).

Оба набора функционально и эффективно. И хотя оба набора были поддержаны вMS DirectX (это основные мультимедийные библиотеки), но их различие затрудняло разработчиков приложений, вынужденных поддерживать оба набора.

Так как выделенные регистры SSE более эффективны, чем регистры MMX, то компания AMD лицензировала SSE и в середине 2001 г. встроила его в свои процессоры Athlon XP, а потом и в Duron (с ядром Morgan). Реализация SSE от AMD (по утверждению AMD более эффективная, чем у Intel) получила название 3DNow! Professional.

Таким образом, сейчас набор SSE стал стандартом де-факто.

SSE2

Новый и обширный набор инструкций от Intel также работает со 128-разрядными XMM регистрами. Составными операндами могут быть как плавающие числа, так и с целые. Те команды, которые раньше работали с вдвое меньшими MMX регистрами (64-разрядными), теперь работают и с XMM регистрами. Еще интересный момент: в 128-разрядный XMM регистр можно вложить уже не только 4 плавающих 32-разрядных числа (одинарной точности) как в SSE, но и два плавающих 64-разрядных числа (двойной точности). Так что можно сказать, что SSE2 заменяет MMX и SSE. Более того, теперь переписанным приложениям 3D графики и видео не нужен более блок плавающей арифметики.

Кроме того, введены команды по обмену между регистрами и кэшами. Набор SSE2 был впервые реализован в процессоре Pentium 4 в 2000 г.

Таблица поддержки наборов процессорами

Таким образом, в настоящее время наборы MMX и SSE (как его не назови) поддержаны всеми рассматриваемыми процессорами, и различие заключается в поддержке SSE2, которая есть пока только у Penitum 4.

 

MMX

3DNow!

SSE

SSE2

VIA C3

1

1

0

0

Celeron-2, Penitum III

1

0

1

0

Penitum 4

1

0

1

1

Duron

1

1

1

0

Athlon XP

1

1

1

0

Совет: для 3D графики и видео выбирайте процессор с поддержкой SSE2 - рано или поздно все соответствующие приложения будут основаны на этом наборе.

Длина конвейера

Каждая команда программы выполняется блоком исполнения процессором за несколько шагов. Начинается все с чтения команды, ее декодирования и превращения в инструкции процессора и кончается записью результата. Для ускорения этот блок исполнения выполняется в виде конвейера (pipeline). Именно, для каждого шага в блоке выделяется свой исполнительный узел, и команда выполняется, проходя последовательно узлы. После освобождения узла он не простаивает, а на него поступает следующая команда. Таким образом, одновременно блок обрабатывает не одну команду, а несколько - в идеале столько, сколько узлов конвейера и в среднем каждая команда выполняется за такт (после заполнения конвейера).

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

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

Для универсальных процессоров, т.е. ориентированных на все типы приложений, оптимальное число узлов равно 10-12. Назовем это обычной длиной.

В процессоре Penitum 4 компания Intel применила удлиненный как минимум в 2 раза конвейер (число ступеней 20, но сюда не входят блоки начальной обработки, так что это число еще больше, детали неизвестны). Такой подход называется Hyper Pipelined Technology (сверхконвейерная технология) и дает повышение частоты примерно на 40% по сравнению с обычным конвейером.

Обоснование подхода у Intel такое: на приложениях с большим числом условных переходов (к таким принадлежат офисные) падение производительности несколько компенсируется увеличением частоты. Кроме того, офисные приложения мало чувствительны к производительности процессора. А вот приложения с потоковой обработкой данных, к числу которых принадлежат мультимедийные и Интернет приложения, получают значительный выигрыш. Таким образом, процессоры с удлиненным конвейером перестают быть универсальными и становятся специализированными процессорами, но зато для "горячих" приложений.

Удлиненный конвейер является важной составной частью технологии, которую Intel в маркетинговых целях NetBurst (быстрая сеть), имея в виду Интернет. Именно в этом смысл на первый взгляд странной рекламы "Penitum 4 ускоряет Интернет" (на самом деле процессор, конечно же, не может увеличить пропускную способность каналов, но ускоряет сетевые приложения).

Вот таблица длин конвейеров.

Процессор

Длина конвейера

Celeron

обычная

Penitum III

обычная

Duron

обычная

Athlon XP

обычная

Penitum 4

удлиненная

Совет: если мультимедийные и Интернет приложения у вас преобладают, то выбирайте процессор с удлиненным конвейером.

Производительность блока плавающей арифметики

Современные процессоры содержат блок вычислений над числами с плавающей точкой (Floating Point Engine). Такие числа способны охватить значительно больший диапазон значений, чем фиксированные числа.

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

Не вдаваясь в подробности, просто констатируем превосходство блока FPE в процессорах от AMD над соответствующими блоками в процессорах от Intel. Это касается и числа узлов блока(FPU - floating point unit), и степени их конвейерности. Все это дает примерно вдвое большую производительность. Intel же считает, что сейчас более эффективно применять не FPE, а потоковые инструкции SSEx.

Совет: если вам нужна высокая производительность блока плавающей арифметики, то отдавайте предпочтение процессорам от AMD.

Заметим, еще, что для построения настоящей числодробилки (number crusher) стоит обратить внимание на двухпроцессорную конфигурацию (см. Приложение).

П1 Распознавание процессора

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

Заметим, что раньше, когда внутренний множитель не был фиксированным, распознавание было полезно, чтобы узнать, не перемаркирован ли ("перепилен") процессор.

Для своих процессоров Intel предоставляет бесплатную утилиту Intel Processor Frequency ID Utility. Она использует внутренний идентификатор процессора и дает исчерпывающие данные о нем. В частности показывает тип процессора, его внешнюю и внутреннюю частоты, как ожидаемую, так и реальную и охватывает относительно современные процессоры (однако мой старенький Pentium MMX 233, выставленный на 75*3 = 225 мГц поставил ее в тупик). Есть версия и на русском.

У AMD соответствующая бесплатная утилита называется CPU Information Display Utility (интересно, что она правильно распознала нештатную частоту моего Intel Pentium MMX 233).

П2 Поддержка многопроцессорной конфигурации

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

Итак, когда в компьютере находится более одного процессора, то такой компьютер называется многопроцессорным. В настольных PC используется только два процессора, обычно одинаковых (больше - в серверах), причем по симметричной схеме (SMP - Symmetric Multiprocessing). Это значит, что оба процессора логически выглядят как один, решая вкаждый момент времени одну и ту же задачу, но распараллеливая работу между собой. Распараллеливание выполняет ОС, так что использовать специальные приложения не требуется. А требуется вот что:

  • поддержка со стороны процессора (например, это предполагает обмен сообщениями между собой).
  • Большой кэш L2. Чем больше, тем лучше, не менее 512К. Дело в том, что процессоры совместно используют память, доступ к которой является узким местом. Большой кэш нужен, чтобы реже обращаться к памяти. Все это удораживает процессоры. Для "настоящих" серверных процессоров размер кэша L2 доходит до 2 М.
  • Специальная двухпроцессорная системная плата с поддержкой SMP. Помимо 2-х процессорных гнезд на плате должен находиться системный чипсет с поддержкой SMP. Платы такие очень дорогие (порядка $300), не в последнюю очередь из-за малых тиражей.
  • ОС с поддержкой SMP. Такими ОС являются профессиональная линия Windows (NT, 2000, XP) и все диалекты UNIX'а, например, Linux. А вот "домашняя" линия Windows (9x, МЕ) такой поддержкой не обладают.

Все рассмотренные процессоры от AMD способны работать в 2-х процессорной системе. Ясно, что Athlon XP со значительно бОльшим кэшем L2 предпочтительней, чем Duron.

Заметим, что у AMD есть специальный процессор Athlon MP, "заточенный" под многопроцессорность, хотя и имеющий такой же кэш, как и Athlon XP (256 К). Однако процессор Athlon XP стоит значительно дешевле, и на практике мало чем уступает Athlon'у MP.

Процессоры Intel Pentium III и Celeron (с техшагом 0.13) также могут работать в 2-х процессорной системе, но не на интеловских чипсетах (а, например, на VIA Apollo Pro266T). Заметим, что у Intel есть серверный вариант Pentium III, называемый часто Pentium III-S, с увеличенным до 512 К кэшем L2, который более подходит для этого.

Что касается Intel Pentium4, то он (неофициально) поддерживает SMP. Проблема в доступных чипсетах. У него есть SMP аналог - Xeon с таким же кэшем и слегка измененным ядром. Однако доступного и недорого чипсета (как, например, для процессоров Athlon) пока нет.

Совет: для 2-х процессорной системы в настоящее время наиболее эффективно (по соотношению производительность / цена) подходят процессоры AMD Athlon XP.

2-х процессорные системные платы выпускают далеко не все фирмы. К признанным производителям относится, например, американские Tyan и Supermicro, однако их платы довольно дороги и больше подходят для серверов. Для домашнего пользователя можно рекомендовать более дешевые платы, например, от MSI.

Важное замечание. В начале марта 2002 г. пришло сообщение, что AMD решила запретить использование Athlon XP в 2-х процессорных системных платах путем внесения изменения в их BIOS.

Глоссарий

кэш память (RAM cache)
высокоскоростная (статическая, SRAM) память, использующаяся для ускорения доступа к данным, хранящимся в более медленной, но дешевой динамической (DRAM) памяти. Ускорение доступа производится, когда процессор многократно обращается к одним и тем же данным или командам программы. Кэш сохраняет последние данные и команды, и процессор быстро считывает их из кэша.

организация кэша L2
характеризует возможность кэшировать различные участки памяти. Память кэша L2 состоит из собственно области данных, разбитой на строки (единицы обмена), и области атрибутов (tag, тэгов), где записаны адрес кэшированной ячейки и другие атрибуты (свободна, занята, помечена для дозаписи и т.п.). См. про организации кэша: с прямым отображением, полностью ассоциативная, n-связная ассоциативная.

организация кэша с прямым отображением (direct mapped)
кэшироваться может только целый диапазон адресов ячеек. Организация проста в реализации, но плохо работает, когда есть два и более часто повторяющихся фрагментов кода (что типично для многозадачности).

организация кэша полностью ассоциативная
кэшируются любые адреса, но организация сложна в реализации.

организация кэша n-связная ассоциативная (n-way associative)
кэшируется n диапазонов адресов. У процессоров от Intel n = 8, у AMD было n = 2, сейчас данных нет.

разгон (overclocking)
режим работы любого устройства на более высокой частоте, чем штатная, т.е. предусмотренная в его рабочих характеристиках. Цель разгона - получить большую производительность за те же деньги.

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

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

разрядность процессора
число разрядов в наименьших целочисленных регистрах процессора. Все несерверные x86 процессоры являются 32-разрядными. Плавающие регистры являются 64- и 80-разрядными. Разрядность определяют по целочисленным регистрам, так как данные целого типа встречаются чаще (особенно в офисных приложениях). Чем выше разрядность процессора, тем быстрее идет обработка данных.

регистры процессора
ячейки памяти процессора, в которых хранятся текущие инструкции, выполняемые процессором и их операнды. В x86 процессорах есть регистры разных нескольких типов.

степпинг (stepping) процессора
версия микрокода процессора. Изменение микрокода (в процессорах Intel практикуется, начиная с архитектуры P6) позволяет исправлять замеченные ошибки, а также вносить небольшие усовершенствования. В документах чаще используется алфавитно-цифровой вид степпинга, например dA0. Внутреннее представление (возвращаемое по инструкции CPUID) - цифровое, например 0650. В русскоязычной версии процессорной утилиты Processor Frequency ID Utility от Intel степпинг называется Партией ЦП. См. еще S-spec.

Обновления содержатся в новых версиях BIOS. Для выполнения обновления Intel рекомендует свою утилиту. При установке нового процессора рекомендуется поставить последнюю версию микрокода.

суперскалярность (super scalar) процессора
наличие в нем двух и более конвейеров. Позволяет в среднем выполнять более одной команды за такт. Суперскалярность применяется во всех современных процессорах.

упреждающее считывание данных в кэш (Data Prefetch Logic)
загрузка данных, которые вскоре могут потребоваться процессору, является одним из магистральных направлений повышения его эффективности. В обычных технологиях в кэше находятся только уже затребованные данные. У Pentium III и 4 применяется упреждающее считывание в кэш L2, у процессоров AMD - в кэш L1.

шина процессора
шина, соединяющая процессор с системным чипсетом. Еще называется FSB, а также системной.

шина памяти
шина, соединяющая основную память с системным чипсетом.

FPU (Floating Point Unit)
узел блока FPE плавающей арифметики.

P6
процессоры шестого поколения в терминологии Intel.

PC
компьютеры, использующие процессоры семейства x86. Ведут начало от персонального компьютера IBM PC (1981 г.), который и дал название семейству.

S-spec
идентификатор версии микрокода процессора внутри степпинга (своего рода подстеппинг). В русскоязычной версии процессорной утилиты Processor Frequency ID Utility от Intel называется Редакцией ЦП. См. еще степпинг.

Translation Look-aside Buffers (TLBs)
небольшой кэш для транслированных физических адресов памяти для команд и данных (порядка 30 элементов каждого вида). Тем самым экономится время на преобразование нужных адресов. Буфер TLB имеют все современные процессоры.

x86-процессоры
семейство процессоров, ведущих начало от Intel i80086 (1979 г.). Название объясняется суффиксом 86 в первых поколениях процессоров (i80086, i80286, i80386, i486), так что буква "x" означает в x86 какой-то префикс. Используются в компьютерах PC, а также в сетевых устройствах.


Sergey Vilkhovchenko
специально для Лаборатории "ТИМ Компьютерс"

27.03.2002 г.