Выпустив в 1999 г. Athlon, фирма AMD сделала серьезную заявку на рынок процессоров для высокопроизводительных компьютеров. Однако время в компьютерной индустрии течет быстро, а свое реноме надо поддерживать, и через четыре года AMD выпускает первый 64-разрядный процессор с системой команд x86 — Opteron1, ориентированный на рынок серверов и высокопроизводительных рабочих станций. А спустя полгода появляется и его младший брат для персональных компьютеров, унаследовавший фамильное название, — Athlon 64.
В какой-то степени нынешнее положение нового процессора AMD напоминает ситуацию с кристаллом 80386 компании Intel, который был способен выполнять программы, написанные как для 8086/88, так и для 80286. Ведь, считая от момента его выпуска в 1985 г. и до появления первой 32-разрядной ОС Windows 95, на освоение всех его дополнительных возможностей (32-разрядность, дополнительные сегментные регистры) программистам потребовалось почти 10 лет. Но в этот раз ситуация принципиально иная, потенциал уже осознан. Бета-версия 64- разрядной операционной системы появилась еще до официального представления Athlon 64, а до поступления в продажу коммерческого выпуска Windows XP 64-bit Editions (ориентировочно в первой половине 2004 г.) осталось совсем немного. За ними поспевают и другие традиционные продукты Microsoft.
Intel стремится уйти от разработанной ею же системы команд, считая ее неэффективной с точки зрения увеличения производительности. Однако под нее написан необъятный океан программ, суммарная стоимость которых намного превосходит стоимость всех заводов и исследовательских центров этого гиганта.
Поэтому сфера влияния IA-64 (Itanium) не простирается за пределы сектора специализированных высокопроизводительных решений — для него применяется лишь ограниченное количество программ, притом зачастую написанных под конкретную архитектуру.
По большому счету, сравнение Itanium c Athlon 64 не имеет никакого смысла по двум причинам. Во-первых, смеем полагать, что Itanium никогда не будет использоваться в настольных ПК из-за высокой цены (сложная архитектура не позволит сделать его дешевым, хотя если увеличить реальные доходы россиян, то все может быть...). Во-вторых, процессор Itanium обладает очень низкой производительностью в 32-разрядных приложениях.
Напомним, что AMD позиционирует Opteron как конкурента более дешевого 32-разрядного процессора Intel Хеon. И в том, что Opteron окажется востребован, никто не сомневается. Судьба же Athlon 64 не столь прозрачна. Захотят ли программисты писать 64-разрядные программы для архитектуры x86, если Intel не поддерживает это начинание? Но если это произойдет, то Intel будет вынуждена либо «поступиться принципами», явно признав потерю статуса законодателя моды, либо уйти с рынка ПК. Последнее выглядит совершенно невероятным. Так что слово за программистами, пишущими для рядовых пользователей, а лидер этого рынка — компания Microsoft свой выбор сделала. Да и анонсы новых 64-битных драйверов от «железных» производителей радуют смелых владельцев AMD 64 все чаще. По крайней мере, при создании тестового стенда на базе Athlon 64 3200+ мы не испытали трудностей с поиском новейших драйверов на сайтах производителей.
А представляете, как обрадуются компании, специализирующиеся на неоправданной регулярности выпуска новейших версий своего ПО? Хороший повод для очередного витка сбора «зеленого» урожая с заинтересованных пользователей программных систем видеоредактирования и 3D-моделирования.
архитектура процессора AMD Athlon 64 |
Процессор AMD 64 разработан на основе ядра кристалла восьмого поколения. Эта технология позволяет компаниям защитить инвестиции, сделанные в 32-разрядные приложения, и одновременно обеспечить плавный, по мере необходимости, переход на 64-разрядные технологии.
Помимо расширения набора инструкций основного процессорного ядра в 64-разрядную область, Athlon 64 поддерживает набор команд SSE2, который до сих пор был только в процессорах Pentium 4. Таким образом, Athlon 64 обладает самым полным набором инструкций x86, поддерживая все существующие на данный момент расширения. Кроме того, количество регистров, включая как регистры общего назначения, так и регистры SSE/SSE2, было увеличено с 8 до 16. Одновременно объем кэш-памяти первого уровня был увеличен до 1 Мбайт и контроллер памяти перенесен внутрь центрального процессора2.
Зачем нужны 64 разряда
В одном из самых древних языков программирования высокого уровня, Фортране, для представления целого числа по умолчанию отводится 4 байт, что составляет 32 разряда. Фортран разрабатывался как язык для решения серьезных научных и военных задач без привязки к конкретной аппаратной платформе. И для целых чисел всегда по умолчанию отводилось 32 бит вне зависимости от того, использовался ли 8-, 16- или 32-разрядный процессор. 64-разрядных данных в Фортране предусмотрено не было3. Разработчики вполне резонно посчитали, что диапазона чисел от -2 147 483 648 до +2 147 483 647, обеспечиваемого 32-разрядным представлением, вполне достаточно для решения практически любой задачи. В тех же экзотических случаях, когда этого оказывается мало (например, для нахождения наибольшего простого числа), не помогут ни 64-, ни даже 256-разрядные числа — в этих случаях для записи длинных чисел придется пользоваться массивами обычных 4-байтовых чисел.
Таким образом, реальной необходимости в 64 разрядах для представления целых данных нет. Но есть ряд достаточно популярных ресурсоемких задач (криптография, научное моделирование и т. д.), где Athlon 64 покажет существенный рост производительности в целочисленных вычислениях. Не стоит также забывать и об адресации памяти.
В 8-разрядных компьютерах, например Intel 8080, разработчики резонно предположили, что 256 байт памяти может оказаться недостаточно, и ввели 16-разрядную адресацию, позволяющую работать с 64 Кбайт памяти. При разработке Intel 8086/88, примененного в первых IBM PC, полное адресное пространство было увеличено до 1 Мбайт применением 20-разрядного адреса. При этом, однако, «одним куском» можно было использовать не более 64 Кбайт. С одной стороны, совпадение разрядности адреса и информации сделало адресацию более гибкой, а с другой — при работе с объемными данными приходилось задействовать сегментированную память, что существенно усложняло алгоритм работы с памятью и приводило к снижению производительности. Наконец, в процессоре Intel 30386 разрядность была увеличена до 32, что позволило программистам забыть о сегментированной памяти, как о страшном сне, и легко работать с довольно распространенными 32-разрядными числами. Максимально доступный 32-разрядной адресации объем памяти составлял 4 Гбайт, что обеспечило программистам несколько лет спокойной жизни. Возможности архитектуры, правда, не ограничивались четырьмя гигабайтами, при использовании сегментированной модели памяти доступное адресное пространство составляло 64 Тбайт, но ни прикладные программисты, ни разработчики компиляторов предпочитали об этом не вспоминать4.
Сегодня же 4 Гбайт памяти уже не выглядят чем-то недостижимо огромным. Хуже того, для адресации памяти принято использовать беззнаковые числа, тогда как более распространенным типом 32-разрядных чисел являются числа со знаком. Нередко последние используются (просто по лени или из-за отсутствия альтернативы в некоторых языках программирования) и для представления адресов. Размер допустимого адресного пространства при этом сужается до 2 Гбайт. Другими словами, сегодня нельзя уверенно сказать, какие из исправно работающих программ сохранят работоспособность, когда объем оперативной памяти превысит 2 Гбайт.
В свое время каждый разработчик стремился подчеркнуть, что его программа — 32-разрядная (в отличие от преобладавших тогда 16-разрядных). Кроме маркетингового шума, это во многих случаях была и заявка на то, что программа будет быстрее работать — за счет упрощения адресации. Сегодня ситуация несколько иная. Программисты уже работают в «плоской» модели памяти и не хотят от нее отказываться, поэтому ожидать какого-либо роста производительности при переходе на «64-разрядные программы» не приходится5. Появится лишь гарантия, что при пересечении 2- или 4-гигабайтового рубежа программа не откажется функционировать.
Больше 32 разрядов требуется для записи вещественных чисел с плавающей точкой. В этом случае 32 разряда являются минимумом, в то время как широко используются числа двойной точности, имеющие 64 разряда. Но специально для обработки таких чисел еще для 16-разрядного процессора Intel 8086 был выпущен сопроцессор Intel 8087, работающий с 80-разрядным внутренним представлением дробных чисел. А начиная с 80486 сопроцессор стали размещать на одном кристалле с процессором, так что сегодня все «плавающие» числа (кроме векторных) уже обрабатываются в 80 разрядах и 64-разрядность основного арифметико-логического устройства ничего к этому добавить не может. И как вы понимаете, это касается не только 64-разрядных процессоров AMD, но и Itanium.
Поэтому, с нашей точки зрения, исследование производительности 64-разрядной системы при помощи 32-разрядных приложений не снижает ценности полученных результатов.
Впрочем, Athlon 64 обладает и еще некоторым резервом прироста производительности, связанным с расширенным набором команд. Но не с удвоением разрядности регистров, а с удвоением их количества, так как одной из самых слабых сторон архитектуры команд x86 является как раз очень малое количество регистров общего назначения (для сравнения: в IA-64 их 128 против 8 в x86). Однако будут ли эти дополнительные регистры использоваться в программах, опять же зависит от программистов. В 32-разрядных программах их использование маловероятно, так как мало кто захочет писать 32-разрядные программы для архитектуры x86, не работающие ни на одном из процессоров Intel. Но вот в 64-разрядных —будут наверняка. Отметим и мнение некоторых западных экспертов, полагающих, что в следующих процессорах Pentium уже будет заложена возможность выполнения 64-разрядного кода. Поживем — увидим.
Тестовая платформа
В качестве тестовой платформы использовался компьютер в следующей конфигурации:
центральный процессор - AMD Athlon 64 3200+ (2,03 ГГц);
системная плата - Gigabyte K8NNXP (nForce3 150;
оперативная память - KINGMAX DDR-433/400 - 2х256 Mбайт;
графический процессор - nVidia GeForce FX 5900 Ultra;
жесткий диск - SEAGATE Barracuda ATA V 60 Гбайт ST360015A.; CD-R/RW - LG GCE-8520B;
корпус, блок питания - POWERMAN PRO HPC360-102 DF + ClearTech Case PC3;
дисковод 3,5 дюйма - NEC FD1231H.
Тестирование проводилось под управлением DOS, Windows 98 SE и в Windows XP Pro + SP1 + SP2.
За точку отсчета мы приняли результаты измерения производительности компьютеров, в разное время побывавших в стенах тестовой лаборатории журнала. Большинство из них уже давно не являются «последим писком», но все еще имеются в продаже, нередко даже представляя верхнюю часть ценового диапазона. В любом случае сравнение с несколькими, в том числе и не слишком новыми, платформами, поможет нам понять место нового процессора в существующей «табели о рангах». Единственное, что необходимо отметить: в качестве Athlon 2800+ фигурирует тестовая модель с 256-килобайтовой кэш-памятью и тактовой частотой 2250 МГц.
Результаты тестов
В связи с тем, что ядро современных процессоров работает на частоте минимум на порядок выше внешней частоты, а также частоты памяти, огромную роль в производительности играет кэш-память, работающая на той же частоте, что и ядро. По скорости обмена с ней все процессоры AMD, и новый здесь не исключение, значительно отстают от Pentium 4; особенно это касается кэш-памяти второго уровня. Определенную роль здесь играет то, что реальная тактовая частота процессоров Intel существенно выше. Но этим можно объяснить только разницу для L1. При разработке системы кэширования AMD традиционно придерживается стратегии, при которой объем кэш-памяти первого уровня не поглощается кэш-памятью второго, как в процессорах Pentium, а складывается с ней. И у такого подхода, несмотря на некоторые изъяны, есть свои преимущества. А какой из методов показал наилучшие результаты в реальных приложения, можно увидеть в тестах.
У Athlon 64 контроллер памяти находится внутри процессора, поэтому то, за что раньше отвечала микросхема северного моста, теперь следует считать свойствами самого процесора. Однако для скорости обмена с памятью, как и раньше, определяющую роль играют свойства самой памяти. DDR400 (PC3200), как и следовало ожидать, примерно равна по скорости последовательного обмена Rambus 800 (в последнее время поддержка памяти Rambus все реже встречается в системных платах) и опережает DDR333 (PC2700). А последняя, в свою очередь, опережает DDR266 (PC2100). Но при использовании наиболее быстрого способа копирования с применением SSE-инструкций управления кэш-памятью, Athlon 64 вырывается вперед (см. диаграмму 3). Скорее всего, это как раз заслуга встроенного контроллера памяти.
По скорости произвольного доступа к памяти новый процессор примерно соблюдает паритет с Pentium 4, Rambus-ОЗУ при записи, и существенно превосходит его при чтении. По-видимому, здесь также сказываются преимущества встроенного контроллера памяти.
На большей части использованных целочисленных тестов новый процессор AMD показывает результаты в точном соответствии со своей тактовой частотой и производительностью ядра, т. е. чуть-чуть отстает от Athlon XP 2700+ (2166 МГц) и заметно опережает Pentium 4, работающий на более высоких частотах. Исключение составляет компрессия: при сравнительно быстром методе LZW большую роль играет производительность кэш-памяти, поэтому наблюдается примерное равенство Athlon 64 3200+ и Pentium 4 2,53 ГГц. При этом реальная частота Athlon ниже, чем у процессора Intel, а присвоенный рейтинг — выше. При выполнении более чувствительного к процессорной мощи алгоритма компрессии LZH Athlon 64 показал наивысшие результаты, значительно лучшие, чем ему «положено по рейтингу».
Скорость произвольного доступа (запись) |
Производительность при вычислениях с плавающей точкой унаследована от предыдущей модели, Athlon XP, т.е. осталась высокой, существенно выше, чем у Pentium 4 не только на той же тактовой частоте, но даже и на частоте, соответствующей рейтинговому числу, в чем нетрудно убедиться, сделав пересчет. Athlon 64 при этом отстает от Athlon XP, обладающего более низким рейтингом, но более высокой тактовой частотой. Однако там, где используется обработка массивов, Athlon 64 вновь вырывается вперед (см. диаграмму 4). Наиболее адекватное представление о расстановке сил дает программа, решающая дифференциальные уравнения в частных производных методом конечных разностей. Зависимость производительности в сравнении с гипотетической системой на Pentium 100 показана на графике 2. Если данные умещаются в кэш-память, наилучшей производительностью обладает Athlon XP с наивысшей тактовой частотой, но у него наблюдается «завал» при больших объемах обрабатываемых данных. Pentium 4 лучше держит нагрузку «большими массивами», его производительность слабо зависит от их объема — сказывается влияние более быстродействующей памяти Rambus. У Athlon 64 профиль производительности также близок к горизонтальной прямой как за счет большего объема кэш-памяти, так и за счет более рационального доступа к ней, обеспечиваемого встроенным контроллером аналогично тому, как это изображено на графике 1. То же можно сказать и о микшировании звука: выполнение блока команд MMX совместно с кэш-памятью показало результат, существенно превосходящий все те, которые были получены в тестовой лаборатории журнала «Мир ПК» когда-либо ранее. Таким образом, можно констатировать, что в Athlon 64 в значительной степени удалось преодолеть недостатки предыдущих моделей.
Скорость произвольного доступа (чтение) |
В графической среде к факторам, влияющим на производительность, добавляется видеоплата. При этом ее потенциал может проявляться в самых неожиданных местах, например, в индексе производительности памяти теста PCMark 2002 (http://www.futuremark.com/). Поэтому мы вынуждены ограничиться для сравнения лишь небольшим набором тестов, где основной вклад вносит процессор, а влияние видеопроцессора по возможности невелико.
Вычисления с плавающей точкой |
Наиболее ресурсоемкими из широко используемых сегодня приложений для ПК являются видео и игры. В качестве теста на видеокомпрессию было использовано перекодирование 10-минутного видеофрагмента фильма разрешения 352х240 из MPEG-1 в DivX. Эксперимент проводился как только для видео, так и совместно со звуком, который при этом сжимался в MP3 со скоростью потока 56 Кбайт/с. Игровые тесты были рассмотрены только в режимах низкого разрешения, чтобы уменьшить влияние используемого графического процессора. Из результатов было видно, что в реальных приложениях новый процессор AMD демонстрирует высокую производительность, вполне оправдывая свой рейтинг.
В заключение — несколько цифр, полученных в распространенных тестах, для того, чтобы читатель мог сравнить по производительности свой компьютер с системой, исследованной в тестовой лаборатории журнала «Мир ПК» (см. также диаграмму 2).
Несмотря на то что частота серийных процессоров AMD пока не превосходит 2,2 ГГц, прогресс в архитектурных решениях и в производительности налицо. Вычислительное ядро, правда, осталось неизменным, но его мощь пока ограничивается скоростью работы как кэш-памяти, так и оперативной. И именно для ее улучшения сделаны заметные усилия. Но возможности для совершенствования и здесь пока не исчерпаны. Кэш-память второго уровня работает на моделях Pentuim 4, с которыми проводилось сравнение, в 3,5 раза быстрее, хотя разница в тактовой частоте составляет всего 17%. Поэтому, если AMD удастся переработать систему кэширования, можно ожидать «повышения рейтинга» процессоров даже на прежнем ядре.
Редакция благодарит компании Gigabyte (www.gigabyte.ru), InLine (www.i2b.ru), «КОН-ЮНК» (г. Сергиев Посад) за предоставленное для тестирования оборудование.
1 Семейство процессоров Athlon 64 и Opteron иногда называют AMD K8.
2 Традиционно в других архитектурах он располагается на микросхеме северного моста набора микросхем.
3 16-разрядные числа в Фортране можно было использовать при соответствующем описании.
4 Исключение составляют немногочисленные приложения, написанные в расчете на Zeon.
5 Скорее наоборот — из-за большего объема кода производительность несколько снизится, правда, столь незначительно, что пользователь этого не почувствует.
Результаты наиболее распространенных синтетических тестов
Тест | Веб-сайт | Параметр | |
SiSoft Sandra | www. sisoftware. co.uk | Dhrystone | 8449 |
Whetstone FPU | 3192 | ||
Whetstone SSE2 | 4162 | ||
Арифметический индекс | 12607 | ||
Мультимедиа индекс | 35025 | ||
Индекс памяти | 6180 | ||
Пропускная способность памяти, Мбит/с | 3088 | ||
PassMark | www. symantec. com | Общий индекс | 342,5 |
Whetstones (вычисления с плавающей точкой) | 622,2 | ||
RightMark | cpu. rightmark. org | Math Solving, кадр/c | 435,9 |
Prerendering, кадр/c | 1670,5 | ||
Rendering, кадр/c | 8,98 |