Свершилось!

Я не отношусь к приверженцам той или иной аппаратной платформы. Об этом может свидетельствовать хотя бы список процессоров, которые в разное время стояли в моем домашнем компьютере: КР580ИК80А (отечественный аналог Intel 8080), Zilog Z80, К1810ВМ86 (отечественный аналог Intel 8086), Cyrix 386DLC, AMD 486DX, Intel Pentium MMX, Intel Celeron Coppermine, AMD Athlon XP. Но в последние годы, как видно из списка, я отдавал предпочтение продукции AMD. А началось все с шока, испытанного мною при первом знакомстве с Pentium 4. Дело в том, что производительность процессора можно вычислить как произведение тактовой частоты на количество инструкций, выполняемых за такт. В пределах одного модельного ряда их количество можно считать константой, а при переходе к каждому последующему поколению процессоров Intel оно неизменно увеличивалось. Другими словами, производительность процессоров росла быстрее их тактовой частоты. И вот, сравнив производительность 850-МГц Pentium III и 1400-МГц Pentium 4, я с большим удивлением обнаружил, что они практически идентичны. То есть у нового поколения процессоров (на тот момент Pentium 4) за такт исполнялось в полтора раза меньше инструкций, чем у предыдущего! Этого я компании Intel простить не мог.

Обратимся, однако, к истории эволюции х86-совместимых процессоров, начало которой положил Intel 8086.

Включившись в бизнес ЦП для ПК, компания AMD сначала выпускала процессоры по лицензии Intel (386, 486), но затем начала вносить в них мелкие изменения. Потом появился революционный Pentium, содержащий целый ряд существенных архитектурных новшеств и способный выполнять две инструкции одновременно. Intel не стала давать конкурентам лицензий на его производство и даже впервые присвоила процессору собственное имя, чтобы сохранить за собой право не только на технологии, но и на название. На выпуск Pentium и Pentium II компания AMD ответила самостоятельными разработками — линейками К5 и К6. Последняя, кстати, была интересна тем, что, с одной стороны, в большинстве случаев при обработке целочисленных данных опережала Pentium II, а с другой — содержала векторный блок вычислений с плавающей запятой 3DNow!, аналог которого Intel смогла реализовать лишь в следующем поколении — Pentium III (блок SSE). Однако целочисленная производительность отошла на второй план из-за начавшегося бума вокруг трехмерных игр, в которых была важна скорость вычислений с плавающей запятой, а векторный блок AMD не приобрел популярности у программистов из-за малой распространенности этих процессоров.

Процессор 2,66-ГГц Intel Core Duo 2 6700

Все изменилось после выхода AMD Athlon. Хотя эта компания и отставала от Intel по скорости освоения новых, более тонких технологических норм, ей удалось создать процессор, ни в чем не уступающий изделиям Intel, а по мнению некоторых аналитиков, подкрепленному результатами тестовых испытаний, и превосходящий их. И даже рубеж тактовой частоты в 1 ГГц AMD удалось преодолеть раньше.

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

Если ранние процессоры выполняли инструкции последовательно одну за другой, то во всех современных ЦП есть конвейер. На автомобильном заводе сборка автомобиля может занимать не один час, но при этом с конвейера каждые несколько минут сходит новая машина, и все за счет того, что в сборке на разных ее стадиях одновременно находится много автомобилей. Примерно так же функционирует и конвейер в процессоре, только у него есть две особенности. Первая заключается в том, что нередко для выполнения одной инструкции требуется результат выполнения предыдущей, из-за чего ее прохождение по конвейеру задерживается. Вторая — то, что процессору приходится выполнять все время меняющийся поток инструкций, т.е. необходима постоянная перестройка конвейера. Чем он длиннее, тем на более мелкие «кусочки» можно разбить инструкцию, сократить время выполнения каждого из них и тем самым поднять тактовую частоту. Но в то же время тем больше времени теряется на перестройку конвейера или на сбой предсказания ветвления. Собственно, сам блок предсказания ветвлений служит именно для того, чтобы при возникновении ситуации, когда требуется совершить условный переход, но пока неизвестно куда, не останавливать процессор, а заставить его выполнять одну из веток условия. Какую — как раз и решает блок предсказания ветвления. Если он предсказал правильно — выполнение пройдет без задержек, а если ошибся — все содержимое конвейера придется сбрасывать и начинать вычисление альтернативной ветки с нуля.

В среднем направление перехода удается угадать более чем в 90—95% случаев, но существуют алгоритмы, при которых этот показатель заведомо не может существенно превышать 50%.

Процессор Pentium 4 способен выполнять до трех инструкций за такт, и его последнее поколение имеет конвейер длиной в 31 стадию. Другими словами, при каждом неверном предсказании программа может быть отброшена назад почти на сотню инструкций. Поэтому при существующей системе команд и многообразии приложений оптимальная длина конвейера лежит в пределах 10—14 стадий. Превышение этой длины в большинстве случаев ведет к снижению производительности. Но и здесь имеются варианты.

С точки зрения характера ресурсоемкости все программы, используемые на ПК, можно условно разделить на четыре категории:

  • нересурсоемкие программы - офисные приложения, большая часть игр, программы для Интернета, программы общего назначения - всего более 90% используемого ПО;
  • компьютерные 3D-игры - сегодня, пожалуй, самые ресурсоемкие из широко используемых приложений;
  • аудиовидеокомпрессия/декомпрессия - набор алгоритмов, требующий вполне конкретной производительности; при ее недостатке наблюдается потеря кадров и другие чрезвычайно неприятные явления;
  • узкоспециализированные ресурсоемкие профессиональные приложения.

Программы первого типа работают без проблем на любом самом маломощном из современных компьютеров, а зачастую неплохо себя чувствуют и на компьютерах прошлого-позапрошлого поколений. Второй тип — на сегодня основной локомотив прогресса аппаратных средств. Четвертый занимает слишком незначительную долю рынка, чтобы принимать его в расчет при выработке стратегии усовершенствования процессоров. А у программ третьего типа есть особенность — многократная единообразная обработка больших массивов данных, которая хорошо ложится на длинный конвейер. Другими словами, принимая решение о переходе на технологию NetBurst, Intel заботилась не только о маркетинговых преимуществах высокой тактовой частоты, но и о соблюдении определенных приоритетов: повысить скорость критичного к производительности аудиовидеосжатия (третья группа) ценой снижения производительности в тех приложениях, где она и так избыточна (первая группа). Таким образом, «незакрытыми» оставались только сегменты второй и четвертый. По части компьютерных игр Intel избрала несколько другую стратегию: так как ее продукция составляет около 80% рынка, при этом разработчики игр традиционно тщательно «вылизывают» свои программы с точки зрения производительности, то Intel снабдила их высокоэффективным компилятором, осуществляющим оптимизацию именно под архитектуру Pentium 4. То есть недостаток производительности в этой области маскировался тем, что оптимизация кода осуществлялась под неэффективный процессор, занимающий тем не менее 4/5 рынка. Ну а профессионалам, работающим с ресурсоемкими приложениями четвертого типа, оставалось лишь стать приверженцами AMD.

Но все рано или поздно кончается. Как упоминалось выше, видеосжатие требует вполне конкретной производительности, и для максимально возможного сегодня формата кадра 768х576 точек она примерно соответствует Pentium 4 с тактовой частотой 2,5 ГГц. С широким распространением ТВЧ эти цифры, естественно, изменятся, но в целом оказывается, что время, когда актуально было ради скорости видеосжатия жертвовать остальными аспектами производительности, уже кануло в Лету. Другими словами, вследствие консервативности медиаформатов и роста вычислительных мощностей видеосжатие постепенно перемещается из третьей группы в первую. И рынок не замедлил отреагировать: если из-за инерционности корпоративного сектора общая расстановка сил серьезно не изменилась, то в наиболее мобильной сфере розничной торговли доля продаж компьютеров на базе процессоров AMD превысила 50%!

И вот сегодня мы вновь видим процессор, являющийся наследником архитектуры Pentium III. Снова короткий, в 14 стадий, конвейер и никакого HyperThreading. Собственно, технология HyperThreading появилась лишь как попытка чем-то занять простаивающие из-за слишком длинного конвейера исполняющие блоки, заставив их работать на другую программу в многозадачной среде. Но сама идея такой, даже «мнимой» многопроцессорности оказалась удачной. Обычно реакция на действия пользователя не требует много времени, но при наличии в системе каких-либо ресурсоемких процессов, например антивирусного сканирования или архивации данных, у пользователя создавалось ощущение, что компьютер «тормозит». Обработка двух независимых потоков инструкций позволила даже без увеличения производительности уменьшить время реакции на действия пользователя — «реагировало» устройство, не занятое ресурсоемким процессом. Но теперь уже становится нормой «истинная» многопроцессорность, и потребность в оправданной в свое время технологии отпадает.

Знакомство с новинкой у меня обычно начинается с утилиты BIOS Setup. Новый процессор прекрасно себя чувствует в старом гнезде LGA 775, что уже приятно, — при переходе к новой технологии, возможно, достаточно будет заменить лишь один ЦП, а не весь компьютер целиком. Впрочем, мне все равно пришлось перепрошить BIOS, для чего понадобился старый добрый Pentium 4. Заодно сравнил их по температуре кристалла, индицируемой этой утилитой (BIOS Setup). И увиденное меня, честно говоря, поразило. Если 3,6-ГГц Pentium 4 нагревался до 73 °С, то новый процессор — лишь до 40 °С. Как раз стояла июльская жара и температура в помещении была 26 °С. То есть кристалл нагревался всего на 14° выше температуры окружающей среды против 47° для Pentium 4. При этом у последнего вентилятор крутился со скоростью 2700 об/мин, а у нового процессора — лишь 2500 об/мин. Дальше — больше. В BIOS Setup происходит постоянный опрос клавиатуры, т.е. процессор не простаивает, тогда как в Windows ЦП в отсутствие нагрузки принудительно останавливается, в результате чего его температура в режиме ожидания действий пользователя опустилась до 34 °С, что только на 8° выше температуры окружающей среды. Уже один этот факт вызывает уважение. Однако пойдем дальше.

Как с лицевой, так и с обратной стороны трудно найти отличия нового процессора от старого

До сих пор я нигде не упоминал имя нового процессора. Официально он называется Intel® Core™2 Duo processor E6700, сообщая о себе в тестовой программе: «Intel® Core™ 2 CPU 6700 @ 2.66GHz». Причем именно так — с десятком пробелов в середине строки.

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

Не хочу утомлять читателя детальным описанием результатов проведенных тестов и сравнением их особенностей. Часть таблиц и графиков с результатами измерения производительности системы, собранной на Intel Core2, по сравнению с четырьмя другими системами, включающими процессоры Intel и AMD, представлены на страницах журнала, а остальные можно найти на «Мир ПК-диске». Поделюсь лишь несколькими собственными выводами, сделанными на основании полученных данных.

Само по себе ядро Intel Core2, т.е. арифметико-логическое устройство процессора, собственно, ничем особенным не выделяется. Оно, конечно, заметно быстрее, чем у Pentium 4, но примерно такое же, а иногда и медленнее, чем у Athlon 64. Ощутимый рост производительности целиком обусловлен значительно увеличенным объемом и фантастической скоростью работы кэш-памяти как первого, так и второго уровня, а также существенно отличающимся и намного более эффективным алгоритмом write-back, т.е. синхронизации данных в кэш- и основной памяти. Впрочем, ничего удивительного в этом нет: процессорное ядро способно выполнять до четырех инструкций за такт, в то время как на считывание одного байта из памяти нужно затратить около 200 тактов. В этих условиях именно интерфейс памяти (т.е. объем, архитектура и скорость обмена кэш-памяти) способен стать узким местом производительности, и именно усовершенствование этого узла должно было дать наиболее ощутимый эффект по увеличению общей производительности системы.

Поразительно другое: объективные данные латентности кэш-памяти, измеренные утилитой CPU-Z, показывают, что она практически такая же или даже больше, чем у Athlon 64, хотя и заметно меньше, чем у Pentium 4. Но при последовательном обмене данными тем не менее работает существенно быстрее, возможно, за счет большей ширины шины, а при произвольной записи намного слабее зависит от объема данных, скорее всего, из-за более совершенного механизма write-back. Учитывая, что AMD взяла курс на уменьшение среднего объема кэш-памяти в своих процессорах (за счет отказа от многих моделей, содержавших 1 Мбайт L2 в пользу 512-Кбайт моделей), ей будет трудно угнаться за Intel, возвратившей себе желтую майку лидера.

Ну и еще раз о тепловыделении. Бурно прогрессирующий рост потребляемой процессорами мощности приводит к необходимости увеличивать размеры и скорость вращения устанавливаемых на них вентиляторов, размещать дополнительные вентиляторы в корпусе и более мощные — в блоке питания, а все это ведет к заметному усилению шума, производимого компьютером. Я вспоминал времена 386-го, который мог работать вообще без теплоотвода, даже пассивного, и всерьез задумывался о возможности применения процессора от мобильного компьютера в настольном. Похоже, мои мечты воплощаются в реальность. Мне лично надоело работать за шумным системным блоком, а вам?

Редакция благодарит российские представительства компаний Intel и ASUSTeK за предоставленное для проведения тестирования оборудование.


Производительность в синтетических тестах
Результаты тестов FutureMark при разрешении, точки

Характеристики процессоров
 Intel Core Duo 2 6700Intel Pentium XE-955Intel Pentium 4AMD Athlon 64 FX-62AMD Athlon 64 3500+
Номинальная частота, МГц26603460360028002200
Технологические нормы, мкм0,0650,0650,090,090,13
Число ядер22121
Число логических устройств24221
MMX
CMOV
3DNow!ººº
3DNow! Extººº
SSE
SSE2
SSE3º
HyperThreading•¹•¹º
X86 64-bit Extº
Extended NameIntel? Core?2 CPU 6700 @ 2.66GHzGenuine Intel? CPU 3.46GHzGenuine Intel? CPU 3.60GHzAMD Athlon? 64 FX-62 Dual Core ProcessorAMD Athlon? 64 Processor 3500+
Кэш-память L1 code (на каждое ядро), Кбайт3212126464
Кэш-память L1 data (на каждое ядро), Кбайт3216166464
Кэш-память L2 (на каждое ядро), Кбайт4096²204810241024512
Процессорный разъемLGA 775LGA 775LGA 775Socket AM2Socket-939

¹Действительно установлен в "1" бит, означающий наличие HyperThreading. С легкой руки AMD это теперь означает наличие двух ядер.
²На оба ядра, но распределение объема кэш-памяти между ядрами происходит динамически.
• - есть, º - нет


Время доступа к кэш-памяти различных процессоров
ПроцессорВремя доступа (latency time), такты
L1L2
Intel Core Duo 2314
Intel Pentium 4432
AMD Athlon 64312

Результаты теста SYSmark 2004
ПроцессорInternet Content CreationOffice ProductivityRa-ting
Ove-rall3D Crea-tion2D Crea-tionWeb Publi-cationOve-rallCom-muni-cationDocu-ment CreationData Ana-lysis
2,66-ГГц Intel Core Duo 2 6700444389536421305291353276368
3,46-ГГц Intel Pentium XE-955327286386317224223231217271
3,6-ГГц Intel Pentium 4246230303213210217210203227
2,8-ГГц AMD Athlon 64 FX-62382338445370251275281204310
2,2-ГГц AMD Athlon 64 3500+204190249180184218184156194

Результаты игровых тестов MDK2 (OpenGL) и Unreal Tournament 2003 (DirectX), кадр/с, при разрешении, точки
ПроцессорMDK2 Unreal Tournament 2003 (Flyby)Unreal Tournament 2003 (Botmatch)
640х 4801024х 7681600х 1200640х 4801024х 7681600х 1200640х 4801024х 7681600х 1200
2,66-ГГц Intel Core Duo 2 6700496,6490,8365,6491,0373,5189,8150,5150,1127,0
3,46-ГГц Intel Pentium XE-955260,9265,8263,7273,1269,6188,890,590,288,1
3,6-ГГц Intel Pentium 4194,4182,1176,0257,6256,9187,781,887,864,7
2,8-ГГц AMD Athlon 64 FX-62393,7393,6349,3361,3330,3191,6121,0120,8109,3
2,2-ГГц AMD Athlon 64 3500+278,0277,6273,7267,4265,2188,691,191,089,1

Результаты тестов SPECviewperf, кадр/с
ПроцессорSPECviewperf (OpenGL)
3dsmax-03catia-01ensight-01light-07maya-01proe-03sw-01ugs-04
2,66-ГГц Intel Core Duo 2 670024,1619,7416,4619,4841,0124,4817,827,26
3,46-ГГц Intel Pentium XE-95520,5914,3214,5510,8226,8921,7317,087,15
3,6-ГГц Intel Pentium 420,4813,4813,9210,0123,5119,8116,416,98
2,8-ГГц AMD Athlon 64 FX-6222,3517,4714,8315,1331,6524,0017,267,08
2,2-ГГц AMD Athlon 64 3500+19,4913,9413,5411,7824,3519,1515,866,69

Время выполнения синтетических тестов, мс
Процес-сорНахо-ждение кратча-йшего пути, 65 536 вершинМикши-рование звука, MMX, 60 с 8 ка-наловПреобра-зование цвета, MMX, 1024х 768 точекФрактал Манде-льброта, 1024х 768 точекФра-ктал Жю-лиа, 1024х 768 точек"Реше-то Эра-тос-фена", 16 МбайтБыс-трая сорти-ровка Хоара, 16 Мбайт
2,66-ГГц Intel Core Duo 2 67000,45417,2201,84975,817585,0570,2794,6
3,46-ГГц Intel Pentium XE-9550,83729,9572,28296,4541038,7663,61083,1
3,6-ГГц Intel Pentium 40,80129,6362,23593,3351005,0703,61055,6
2,8-ГГц AMD Athlon 64 FX-620,38223,3251,86779,241750,5638,7869,0
2,2-ГГц AMD Athlon 64 3500+0,61829,3462,419101,0711000,8745,11119,1
797