Conroe и EM64T: а есть ли проблема?

Автор: Gavric
Дата: 25.07.2006
Все фото статьи

Введение


К данному моменту первая волна восторга, возникшая после появления результатов тестов новых процессоров Intel, построенных на микроархитектуре Core, уже стихла. Мы действительно убедились в том, что процессоры Core 2 Duo и Core 2 Extreme предлагают самый высокий уровень быстродействия, и что Intel, благодаря этому, получает право называться производителем наиболее скоростных x86 процессоров. Выход новых CPU, известных также под кодовым именем Conroe, отправляет популярные ранее процессоры семейства Athlon 64 X2 в разряд недорогих решений среднего уровня, меняя привычное распределение ролей. Новые Core 2 Duo выглядят настоящим прорывом и по сравнению с Pentium D.
Подробности о свойствах линейки новых CPU от Intel, а также об их потребительских характеристиках мы уже освещали в наших предыдущих статьях:

Большое тестирование: современные двухъядерные процессоры для настольных компьютеров;
Intel Core 2 Duo E6300 + ASUS P5W DH Deluxe. Идеальная платформа среднего уровня?

Казалось бы, единственным недостатком новой линейки процессоров от Intel следует считать их относительно высокую цену. Ведь помимо впечатляющего быстродействия Core 2 Duo могут похвастать не только сравнительно невысоким тепловыделением и энергопотреблением, но и значительным оверклокерским потенциалом. Однако на фоне хора хвалебных отзывов о Conroe временами всё-таки слышатся отдельные голоса, пытающиеся указать на недостатки нового процессора, теоретически способные подпортить его триумфальное шествие на рынок. Наиболее настойчивыми в этой связи видятся высказывания о том, что новые процессоры Intel, разгромившие в пух и прах все конкурирующие решения в наиболее распространённых в настоящее время тестовых приложениях, не смогут обеспечить столь же высокую скорость работы в 64-битном режиме.
Думается, не следует напоминать о том, что микроархитектура Core среди прочих возможностей предполагает поддержку 64-битных расширений Enhanced Memory 64 Technology (EM64T). Процессоры Core 2 Duo при этом становятся первыми CPU с поддержкой x86-64 в эволюционном ряду Pentium III - Pentium M – Core Duo – Core 2 Duo. То есть, реализация EM64T в новых процессорах – это первый опыт израильской инженерной команды Intel по внедрению 64-битных расширений в традиционно 32-битные процессоры.
При этом важность качественной реализации EM64T нельзя недооценивать. Если в процессорах, построенных на микроархитектуре NetBurst, эта технология не имеет первоочередного значения, в силу современной неразвитости 64-битной инфраструктуры на настольных компьютерах, к моменту массового распространения Core 2 Duo ситуация должна поменяться кардинальным образом. В первом квартале следующего года на рынке появятся новые операционные системы семейства Windows Vista. Одной из ключевых особенностей Vista станет врождённая поддержка 64-битных расширений AMD64 и EM64T. Хотя Microsoft предложит и 32-битную версию своей перспективной операционной системы, 64-битная Vista обещает обеспечивать более высокий уровень производительности. Считается, что выход новой операционной системы станет мощным катализатором в процессе перехода от 32-битной к 64-битной архитектуре, который также будет подстёгиваться и назревающей необходимостью использования в системах более 4 Гбайт оперативной памяти.
Впрочем, фактически, внедрение 64-битных операционных систем семейства Windows уже началось. Доступная в настоящее время система Windows XP Professional x64 Edition уже способна работать с 64-битными приложениями и 64-битными процессорами с поддержкой AMD64 и EM64T. Однако её распространение пока крайне ограничено ввиду отсутствия на рынке большого количества 64-битных программ, да и тем фактом, что сама она представляется пользователям лишь слегка переделанной 32-битной Windows XP Professional, всё ещё вполне удовлетворяющей все их потребности. Иными словами, современные пользователи пока что не ощущают необходимость перехода на 64-битность, несмотря на все плюсы AMD64 и EM64T: возможность линейной адресации более 4 Гбайт памяти и более высокой производительности, обеспечиваемой увеличением количества регистров общего назначения и их разрядности. Впрочем, пока что эти плюсы очень тяжело проследить на практике: немногие имеющееся на рынке программы для настольных компьютеров реально ускоряются на процессорах с поддержкой AMD64 и EM64T или используют более 2 Гбайт оперативной памяти, отводимых 32-битными операционными системами на один процесс.
Следует отметить, что с микроархитектурной точки зрения реализация 64-битных расширений классической архитектуры x86 не так уж и сложна. x86-64 требует лишь увеличения количества регистров общего назначения до шестнадцати и увеличения их разрядности до 64 бит, увеличения до шестнадцати количества 128-битных SSE регистров и ввода линейной 64-битной адресации. Конечно, от проектировщиков процессоров для внедрения поддержки x86-64, тем не менее, требуются существенные усилия. Но при этом кардинальная переделка микроархитектуры всё-таки не нужна, что является несомненным плюсом x86-64 по сравнению с той же IA64, реализуемой Intel в процессорах семейства Intanium.


Именно по этой причине логично ожидать, что относительная производительность процессоров с поддержкой технологий AMD64 и EM64T в 64-битных режимах будет не сильно отличаться от соотношения их быстродействия в 32-битной Windows XP. Именно поэтому большинство тестирований новых CPU, построенных на микроархитектуре Core, выполнено в операционной системе Windows XP Professional SP2. Однако появившееся в последнее время сведения о проблемах, существующих при работе Core 2 Duo и Core 2 Extreme в 64-битных режимах, заставили нас вернуться к исследованию производительности этих CPU. В данном материале мы отчитаемся о проведённых тестах и сделаем выводы о том, насколько хороши или плохи новые процессоры от Intel при их работе в 64-битной операционной системе с 64-битными приложениями.

EM64T в Core 2 Duo: что в теории?


Все измышления об относительно невысокой производительности процессоров линейки Core 2 Duo в 64-битных режимах основываются на двух фактах. Согласно появившимся в сети сведениям, подтверждаемым Intel, поддержка EM64T в микроархитектуре Core имеет два ограничения. Во-первых, при работе в 64-битных режимах процессорами Core 2 Duo не поддерживается технология Macrofusion. Во-вторых, применений инструкций, работающих с дополнительными регистрами, доступными только при активации EM64T, снижает темп декодирования процессором исполняемого кода. Попробуем разобраться с указанными проблемами подробнее.


Как известно, технология Macrofusion – это одна из ключевых особенностей новой микроархитектуры Core, широко разрекламированная маркетологами Intel. Эта технология направлена на увеличение числа исполняемых процессором за такт команд и заключается в том, что ряд пар связанных между собой последовательных x86 инструкций, таких как сравнение со следующим за ним условным переходом, представляются внутри процессора одной микроинструкцией. Такая микроинструкция рассматривается планировщиком и выполняется на исполнительных устройствах как одна команда. Этим путём достигается увеличение темпа исполнения кода, позволяющее, при удачном стечении обстоятельств, обрабатывать процессору до 5 команд за такт.


Однако неработоспособность Macrofusion в 64-битном режиме вряд ли может драматически повлиять на скорость работы процессора. В идеальном случае, при наличии в исходном коде одной инструкции условного перехода на каждые пять x86 команд, и при попадании всех этих пяти последовательных инструкций в 16-байтовую выборку, обрабатываемую процессором за один такт, теоретическое ускорение составит 25%. Но в реальных условиях данная технология даёт устойчивый положительный эффект лишь при соблюдении целого ряда условий. Как минимум потому, что данная частота условных переходов на практике, естественно, не встречается. Более того, технология Macrofusion эффективна только при средней длине инструкций в коде не более 4 байт. В результате, по оценке специалистов, данная технология сама по себе вряд ли может приносить выигрыш в быстродействии более 3-5%. Иными словами, одно лишь отсутствие технологии Macrofusion при активации EM64T не может служить поводом для паники: на производительность она влияет не так уж и сильно.


Что же касается замедления работы, вызванного использованием инструкций, работающих с дополнительными регистрами, то обуславливается оно появлением в коде дополнительного однобайтового префикса REX, добавляемого при всех 64-битовых операциях. Этот префикс, очевидно, влияет на среднюю длину инструкций, обрабатываемых процессором в 64-битных режимах, что в конечным итоге может вызвать уменьшение числа инструкций, попадающих в 16-байтовую выборку из L1 кэша, обрабатываемую CPU за один такт. Иными словами, в то время как средняя длина инструкции в x86 коде равна порядка 2.5-3.5 байт, при переходе в 64-битный режим она увеличивается из-за необходимости применения префикса REX. При её возрастании до более чем 4 байт, процессор может утратить свою способность выполнять 4 инструкции за такт.


Справедливости ради следует заметить, что проблема с ростом среднего размера инструкции, вызванная префиксом REX, присуща не только процессорам с микроархитектурой Core, но и CPU конкурента, построенным на микроархитектуре K8. Разница заключается лишь в том, что для полной загрузки исполнительных устройств в K8 требуется вычленение из 16-байтовой выборки лишь трёх инструкций, в то время как Core 2 Duo, благодаря Intel Wide Dynamic Execution, может выполнять четыре инструкции за такт.


Таким образом, обе проблемы реализации EM64T в процессорах с микроархитектурой Core, вокруг которых ведутся активные дискуссии, на наш взгляд не столь серьёзны. Полностью аналогичный 32-битному код выполняется на процессорах Core 2 Duo лишь чуть медленнее из-за неработоспособности Macrofusion, а падение скорости работы при наличии в коде 64-битных операций, очевидно, будет компенсироваться дополнительными возможностями по работе с большим числом регистров и увеличением их разрядности.
Поэтому, мы не склонны драматизировать недостатки новой микроархитектуры Intel с точки зрения 64-битных режимов. Хотя, безусловно, некоторое влияние на производительность процессора в 64-битном режиме они оказать способны. Дабы не сеять лишнюю панику, давайте просто посмотрим на то, с какой скоростью смогут работать процессоры Core 2 Duo и Core 2 Extreme в 64-битной версии Windows XP Professional x64 Edition c 64-битными версиями приложений и сравним её со скоростями 32-битных версий этих же приложений, работающих в привычной 32-битной среде Windows XP Professional.

Как мы тестировали


Как уже было сказано выше, при тестировании мы ставили перед собой две цели. Во-первых, ещё раз проверить то, какой выигрыш способно дать портирование 32-битных приложений под 64-битную архитектуру. И, во-вторых, мы сравнить эффективность реализации 64-битных расширений в процессорах AMD Athlon 64 X2, Intel Pentium D и Intel Core 2 Duo. Для целей тестирования мы использовали наиболее скоростные и дорогие процессоры в соответствующих линейках, нацеленные на геймеров энтузиастов, хотя в контексте данной статьи это не столь важно. В целом, в тестовых системах применялся следующий набор оборудования:

Процессоры:

AMD Athlon 64 FX-62 (Socket AM2, 2.8GHz, 2x1024KB L2);
Intel Core 2 Extreme X6800 (LGA775, 2.93GHz, 1067MHz FSB, 4MB L2);
Intel Pentium Extreme Edition 965 (LGA775, 3.73GHz, 1067MHz FSB, 2x2MB).


Материнские платы:

ASUS P5W DH Deluxe (LGA775, Intel 975X Express);
ASUS M2N32-SLI Deluxe (Socket AM2, NVIDIA nForce 590 SLI).


Память:

2048MB DDR2-800 SDRAM (Mushkin XP2-6400PRO, 2 x 1024 MB, DDR2-800, 4-4-4-12).


Графическая карта: PowerColor X1900 XTX 512MB (PCI-E x16).
Дисковая подсистема: Maxtor MaXLine III 250GB (SATA150).
Операционные системы:

Microsoft Windows XP Professional SP2;
Windows XP Professional x64 Edition.

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

Производительность: а что на практике?


Несмотря на то, что с момента появления Windows XP Professional x64 Edition прошло уже достаточно много времени, говорить о широкой доступности нативных 64-битных приложений всё ещё не приходится. Поэтому, каждый раз, когда мы ставим перед собой задачу измерения 64-битной производительности x86-64 процессоров, перед нами возникает достаточно тяжёлая проблема поиска программ, дающих возможность измерения производительности систем и существующих как в 32-битном, так и в 64-битном варианте. Поэтому, не удивляйтесь, что в рамках данного тестирования мы задействовали лишь небольшое количество приложений.


Широко известной тестовой утилитой, содержащей 32-битный и 64-битный код, является пакет SiSoftware Sandra 2007. В зависимости от версии операционной системы эта программа использует либо 32-битное, либо 64-битное ядро. Соответственно, благодаря содержащимся в SiSoftware Sandra 2007 небольшим синтетическим бенчмаркам, мы получили возможность сравнить производительность процессоров Core 2 Extreme X6800, Athlon 64 FX-62 и Pentium Extreme Edition 965 в 64-битных режимах с их скоростью в 32-битном режиме.








Полученные в данном тесте результаты очень разнородны, и не позволяют сделать какие-то общие выводы. В частности, в тесте ALU процессор с микроархитектурой Core сильно теряет в производительности при переходе в 64-битный режим, в то время как Pentium Extreme Edition 965 и Athlon 64 FX-62 получают небольшое ускорение. В арифметическом тесте SSE3 вообще все процессоры работают быстрее с 32-битной версией программы. Единственный подтест, показывающий преимущества 64-битной архитектуры – это Multimedia Floating Point. В нём Core 2 Extreme X6800 получает наибольший выигрыш от использования 64-битного режима, ускорение составляет более 40%.
Впрочем, мы бы не стали особо заострять внимание на полученных результатах. Дело в том, что 32-битные и 64-битные варианты тестов, входящих в SiSoftware Sandra 2007, используют различные алгоритмы, основанные на применении неодинаковых наборов инструкций. Поэтому, результаты данного бенчмарка нельзя использовать для того, чтобы делать какие-то далеко идущие выводы.
Давайте лучше посмотрим, каких результатов можно достичь, пользуясь для тестирования иными приложениями. Например, популярным бенчмарком ScienceMark 2.0, оценивающим производительность систем, измеряя скорость решения типовых задач математического моделирования физических процессов.


Первый тест, Molecular Dynamics, осуществляет моделирование термодинамического состояние вещества методами молекулярной динамики. И, как видим, алгоритмы, использованные в данном случае, получают превосходный прирост быстродействия при использовании 64-битного режима. Наибольшим приростом может похвастать процессор с микроархитектурой K8, он ускоряется в 2.7 раза. Что же касается Core 2 Extreme X6800, то его результат несколько скоромнее, прирост производительности составляет "всего лишь" 111%.


Другой научный тест, Primordia, выполняющий расчёт квантовой структуры атомов, также демонстрирует преимущества 64-битной архитектуры над 32-битной. Но в данном случае величина превосходства уже не столь значительна, как в предыдущем случае. Максимальное ускорение в этом тесте обеспечивает процессор Pentium Extreme Edition 965, работающий в 64-битном режиме на 57% быстрее. Athlon 64 FX-62 и Core 2 Extreme X6800 же позволяют получить при переходе в 64-битные режимы практически одинаковый прирост скорости, равный 14%.


При помощи бенчмарка, встроенного в один из самых эффективных архиваторов, 7-zip, мы оценили скорость сжатия и распаковки информации, выполняемую в разных режимах работы CPU. Как показывают полученные результаты, при сжатии выигрыш от использования 64-битной среды удаётся получить лишь одному процессору – AMD Athlon 64 FX-62. Процессоры Intel, как с микроархитектурой NetBurst, так и с микроархитектурой Core, наоборот, замедляются при использовании технологии EM64T.


При разархивировании в выигрыше остаются все. Но прирост производительности, обеспечиваемый переводом процессора Core 2 Extreme X6800 в 64-битный режим, составляет только 2.5%, и уступает приросту производительности, который можно получить на процессорах с микроархитектурой Intel NetBurst и AMD K8.


Кодирование видео в формат wmv в 64-битном режиме вообще даёт возможность получить выигрыш в быстродействии лишь на системах, основанных на процессорах с микроархитектурой NetBurst. Результаты же Core 2 Extreme X6800 и Athlon 64 FX-62 при работе с 64-битной версией Windows Media Encoder оказываются хуже результатов, полученных при использовании 32-битной версии примерно на 10%.


PDNBench – это бенчмарк, показывающий производительность при выполнении наиболее типичных операций по обработке изображений в популярном свободно распространяемом графическом редакторе Paint.NET 2.64. Результаты, полученные при использовании этого теста, выявляют достаточно ощутимый выигрыш, который можно получить, используя расширения AMD64 и EM64T. Судя по цифрам, приведённым на графике выше, процессоры ускоряются на величину от 25 до 42%, причём максимальный прирост скорости наблюдается именно на CPU с микроархитектурой Intel Core.


Тестирование в распространённом пакете компьютерной алгебры Mathematica выявляет, как это ни странно, преимущества технологии EM64T над AMD64. Процессоры Intel при работе с 64-битной версией пакета начинают работать слегка быстрее, в то время как производительность Athlon 64 FX-62 при работе в 64-битном режиме падает на 13%.


Тест Cinebench позволяет оценить производительность систем в профессиональной системе 3D моделирования Cinema 4D, которая доступна как в версии под стандартную Windows XP, так и под Windows XP Professional x64 Edition. Если судить по скорости финального рендеринга, то наибольший положительный эффект использование 64-битных режимов наблюдается в системе, основанной на процессоре Athlon 64 FX-62. Скорость финального рендеринга в этом случае возрастает на 13%. Технология EM64T, реализованная в Core 2 Extreme X6800 и в Pentium Extreme Edition 965, такой же эффективностью похвастать не может: на процессорах от Intel прирост составляет лишь чуть более 5%.






OpenGL операции же напротив, в 64-битном режиме выполняются медленнее, чем в 32-битном. И от микроархитектуры процессора тут ничего не зависит. Возможно, проблема заключается в недостаточно качественной оптимизации драйвера видеокарты для операционной системы Windows XP Professional x64. Вот именно такие факты и препятствуют распространению 64-битных операционных систем, создавая им не самый положительный имидж.


POV-Ray – это достаточно популярная система 3D моделирования, использующая метод трассировки лучей. Также как и Cinema 4D, она существует в версиях под 32-битную и 64-битную платформы. Поэтому, не использовать её для нашего исследования было бы преступлением. Полученные результаты вновь демонстрируют преимущества 64-битных процессоров. Рендеринг при использовании 64-битной версии этого программного продукта выполняется быстрее, нежели при применении обычного 32-битного варианта. Величина получаемого выигрыша для процессора Athlon 64 FX-62 составляет 14%, а для процессора Core 2 Extreme X6800 – 4%. Что же касается Pentium Extreme Edition 965, то в системе на его основе 64-битный вариант POV-Ray работает медленнее, чем 64-битный.


Большинство доступных на рынке 3D игр с поддержкой x86-64 используют преимущества 64-битных режимов лишь для улучшения качества изображения, поэтому для целей нашего тестирования подходят не лучшим образом. К счастью, среди этих игр всё-таки нашлась одна, которая в 64-битном варианте не обеспечивает (без изменения настроек графики) улучшения качества картинки. Это - Unreal Tournament 2004, который мы и использовали для выяснения производительности 64-битных расширений EM64T и AMD64, реализованных в различных процессорах.
Как видим, включение 64-битных расширений на игровой производительности сказывается не столь значительно. На Athlon 64 FX-62 и Core 2 Extreme X6800 прирост быстродействия составляет 1-2%, зато Pentium Extreme Edition 965 ускоряется гораздо сильнее – на 9%.

Выводы


Как и ожидалось, никакой катастрофы не произошло. Процессоры с микроархитектурой Intel Core работают в 64-битных режимах, реализованных в рамках технологии EM64T, совершенно нормально. В большинстве тестов мы не заметили никакого катастрофического падения производительности.
Конечно, есть приложения, 64-битные версии которых работают на Core 2 Duo медленнее, чем их 32-битные версии. Например, Windows Media Encoder 9 или архиватор 7-zip. Однако, судя по тому, что отрицательное изменение производительности в них демонстрируют и другие CPU, проблема в первую очередь кроется не в недостатках микроархитектуры. В большинстве же задач применение технологии EM64T у процессоров Core 2 Duo даёт положительный прирост быстродействия.


На графике показана величина прироста быстродействия (в процентах) при переходе от 32-битных к 64-битным вариантам приложений для процессоров с микроархитектурой Intel Core и AMD K8.

В то же время необходимо заметить, что процессоры Athlon 64, судя по всему, действительно, обеспечивают в среднем больший прирост при переходе из 32-битной в 64-битную среду. Так, средний прирост быстродействия, продемонстрированный процессором Athlon 64 FX-62, составил 16%. Эта же величина для Core 2 Extreme X6800 равна лишь 10%. Таким образом, некоторая разница (6%) в эффективности работы с 64-битным кодом у CPU с микроархитектурами Core и K8 всё-таки есть. Но перекрыть отмеченное нами в предыдущих материалах 20-процентное превосходство Core 2 Duo над Athlon 64 X2 в скорости (на аналогичной тактовой частоте) эта разница не в состоянии. Поэтому, изменять наши выводы относительно производительности новинок от Intel, в свете предстоящего повсеместного внедрения 64-битности и появления операционных систем семейства Windows Vista, очевидно, не требуется.