Знакомтесь: AMD Opteron - новый серверный процессор

Опубликовано в журнале "Компьютер Price" http://www.comprice.ru/

Виктор Куц <vk@spbtlg.ru>

Выпустив три года назад очень удачное семейство процессоров К7 Athlon, компания AMD доказала всем, и, в первую очередь, самой себе, что она может быть не только вечно догоняющей, но и вполне способна стать лидером индустрии, потеснив Intel, слишком долго почивавшего на лаврах. Дальнейшее укрепление своих позиций AMD связывала с новым семейством 64-битных процессоров К8, способных выполнять обычный 32-битный x86-код на аппаратном уровне. Первоначально такая процессорная архитектура называлась "x86-64", но сейчас AMD переименовала ее в "AMD64".

К сожалению всех поклонников AMD, с новым процессорным ядром, получившим грозное имя Hammer (Молот), у компании возникла масса проблем технического плана, в результате чего выпуск новых процессоров неоднократно откладывался. Тем не менее, несмотря на очередной перенос на осень текущего года выхода процессора Athlon 64, "младшего брата" в семействе и ориентированного на настольные системы и рабочие станции, 22 апреля 2003 года в полном соответствии с ранее назначенной датой, состоялся запуск... Тьфу, оговорился - AMD выпустила процессор Opteron, на который компания возлагает все свои надежды по завоеванию не очень большого, но очень прибыльного серверного рынка. Кстати, в отличие от всех "бумажных" анонсов последних Athlon ХР, новые процессоры (по крайней мере, два из трех анонсированных) практически сразу появились в продаже, в том числе и в розничной.

Особенности 64-битной архитектуры AMD64

Фундаментом, на котором построена вся архитектура AMD64 процессора Opteron, является поддержка 64-битных вычислений. Главное преимущество 64-битной архитектуры микропроцессоров заключается в возможности адресовать намного больший объем памяти, чем в 32-битной (16 Тбайт против 4 Гбайт), что особо актуально для баз данных большого объема, программ по проектированию CAD или создания фотореалистической 3D-анимации. Я уже не говорю про научные вычисления или криптографию, аппетиты которых способны удовлетворить разве что гигантские супер-ЭВМ.

Однако в своей сегодняшней реализации процессор Opteron может работать с памятью объемом "только" до 1 Тбайт (1024 Гбайт), то есть он использует 40-битную физическую адресацию и 48-битную виртуальную адресацию. Такая ширина может показаться несколько меньше, чем ожидалось от 64-битной архитектуры, но сегодня даже теоретически трудно представить себе задачи, требующие для своего решения объем памяти свыше 1 Тбайт. Причем важно подчеркнуть, что, в отличие от 64-битной архитектуры Intel IA-64, AMD64 полностью поддерживает базовый набор инструкций x86, что делает его совместимым со всем объемом 32-битного программного обеспечения, разработанного за последние двадцать лет, и обеспечивает безболезненный эволюционный переход на 64-битную архитектуру, за которой, по общему мнению, будущее. Intel же в своих 64-битных IA-64 процессорах (Itanium, Itanium 2 и т.д.) пошел по другому пути, используя программный эмулятор, который преобразует инструкции x86 в команды IA-64 (EPIC). Такой подход к обеспечению совместимости не является особо эффективным как по способу реализации, так и по принципу построения, ведь аппаратная поддержка 32-разрядных инструкций x86 работает существенно быстрее.

Со времен легендарного i386 архитектура х86 впервые подверглась полноценному расширению: в AMD64 предусмотрено использование 8 новых 64-битных регистров общего назначения (General Purpose Registers, GPR), плюс 64-битные версии прежних 8 регистров общего назначения. Наконец-то появилась в процессорах AMD и полная поддержка расширенного набора команд SSE и SSE2, для чего введены 8 дополнительных регистров для SSE2 (рис. 1).

Поскольку процессор Opteron может запускать как существующий x86-код, так и работать с новыми 64-битными инструкциями, то архитектура AMD64 обеспечивает его функционирование в двух режимах: в "наследственном (Legacy)" и "длинном (Long)". В "наследственном" режиме Opteron будет работать со всеми 16- или 32-битными x86-приложениями, мало отличаясь от процессора Athlon. Для работы в "длинном" режиме необходима 64-битная операционная система, совместимая с архитектурой AMD64. В этом режиме процессор может работать в двух подрежимах: полном 64-битном режиме или в режиме совместимости. С полным 64-битным режимом ясно - он позволяет реализовать все преимущества 64-битной архитектуры, включая 64-битную адресацию памяти. Важнейшим преимуществом полного 64-битного подрежима является использование удвоенного количества регистров общего назначения х86. Подрежим совместимости используется для запуска устаревших 32-битных программ в 64-битной ОС (отсюда такое название подрежима) и не дает никаких особых преимуществ 64-битной архитектуре на уровне приложений: ведь дополнительные регистры и расширение регистров до 64 бит в этом подрежиме не работают. Тем не менее, существование подрежима совместимости очень важно в силу ограничения максимального объема памяти в 2 Гбайт в большинстве ОС семейства Windows (хотя 32-битные версии Windows могут адресовать до 4 Гбайт памяти, каждый процесс может использовать максимум 2 Гбайта - оставшиеся 2 Гбайта зарезервированы под операционную систему). Большое достоинство подрежима совместимости в том, что он позволяет 32-битным приложениям получать доступ ко всем 4 Гбайт памяти при запуске этих приложений под 64-битной версией Windows (когда она будет выпущена).

Как видно, процессор Opteron является первым по-настоящему совместимым процессором - он может работать и в 64-битном режиме, и в 32-битном, и в 16-битном - собственно, поддерживаются все предыдущие режимы работы.

Ядро процессора Opteron

Ядро процессора Opteron по сравнению с Athlon изменилось незначительно. Это и не удивительно - микроархитектура K7 демонстрирует прекрасную производительность, даже сегодня она, по меньшей мере, вполне конкурентоспособна микроархитектуре Intel NetBurst, использующейся в Pentium 4.

Организация обоих L1-кэшей - и кэша инструкций (I-cache), и кэша данных (D-cache), осталась прежней: они являются 2-х канальными частично-ассоциативными, размером по 64 Кбайт каждый. А вот размер L2-кэша, являющегося эксклюзивным (Exclusive) по отношению к L1, увеличен до 1Мбайт. Однако его старая 16-канальная частично-ассоциативная организация сохранилась без изменений (рис. 2).

Для увеличения производительности типовых операций декодирование (вернее, подготовка к нему) начинается прямо в L2. Это означает, что при "выселении" данных из I-кэша эта информация перемещается в L2-кэш, где для нее уже зарезервировано место. Также вдвое (по сравнению с Athlon XP) увеличена скорость передачи данных из L2 в L1-кэш - это должно существенно ускорить выполнение многих операций.

Наибольшей переработке по сравнению с ядром К7 подвергся декодер, его конвейер получил две дополнительные стадии (12 стадий вместо 10), что позволило несколько увеличить его максимальную рабочую частоту. Как известно, декодер преобразует нерегулярные команды переменной длины х86 в ¦OPs (микрооперации) фиксированной длины. Причем за один такт каждый декодер может обработать инструкцию длиной до 16 байт (!) и отправить планировщику на исполнение.

Однако в связи с удлинением конвейера возрастает роль блока предсказания переходов. Этот блок отвечает за инструкции, которые будут выполнены "на лету" (активны в конвейере) перед тем, как процессор перейдет по ветвлению. Если было предсказано неправильное направление ветвления, то необходимо сбросить весь конвейер. Для уменьшения вероятности такой напасти этот блок был серьезно усовершенствован: был введен вычислитель адреса ветвей (Branch Target Address Calculator, BTAC), а также улучшен учет последних переходов, причем для этого отводится 16 Кбайт (что в 4 раза больше, нежели у Athlon), и запоминаются до 2 Кбайт адресов назначения. Все это, вместе со значительно снизившейся задержкой доступа в память позволило удержать падение производительности при ошибках предсказания переходов на уровне Athlon XP, а в отдельных случаях и превзойти его.

Набор исполнительных устройств тот же, что и у старого доброго К7: 3 арифметико-логических устройства (ALU) для операций с целыми числами, 3 блока генерации адреса и загрузки (AGU) для операций выгрузки из кэша или записи в кэш, 3 суперскалярных FPU (FADD, FMUL и FMISC) для операций с плавающей точкой. Тем не менее, внесенные усовершенствования позволили организовать исполнение за 1 (!) такт всех логических операций, кроме умножения (которое требует 3 такта). Блоки FPU - полностью конвейеризированные, с внеочередным исполнением команд, имееют 36-входовый буфер-планировщик.

Как уже упоминалось выше, ядро AMD64 поддерживает полный набор инструкций - x87, MMX, 3DNow!, SSE и SSE2, что позволит ему быстрее работать с приложениями, оптимизированными для процессоров Intel Pentium 4. При этом в 64-битовом режиме и FPU, и ALU поддерживают все 16 регистров, но, поскольку совместимость с предыдущим программным обеспечением - обязательное требование для нового процессора, то в стандартном х86 в распоряжении программистов остаются все те же 8 старых добрых регистров общего назначения.

Контроллер памяти

Одна из наиболее характерных особенностей ядра AMD64 заключается в интеграции части функций северного моста в ядро процессора, включая и двухканальный контроллер памяти. Opteron использует шину памяти DDR шириной 144 бита, то есть 72-битные (64 бита собственно шина памяти плюс 8 бит для контроля четности) DIMM-модули регистровой ECC DDR SDRAM должны устанавливаться попарно. Преимущества встроенного контроллера памяти очевидны - он обеспечивает высокую скорость работы системы, так как доступ к памяти осуществляется с малыми задержками. Кроме этого, в многопроцессорных конфигурациях пропускная способность памяти увеличивается пропорционально числу работающих процессоров Opteron. Если в традиционной SMP многопроцессорной архитектуре процессоры разделяют между собой отнюдь не бесконечную пропускную способность единой для всех шины памяти, то в системах на базе процессоров Opteron каждый из них может использовать не только собственный контроллер памяти, но и контроллер памяти другого процессора, что позволяет увеличить эффективную пропускную способность памяти. Такая организация многопроцессорности являет собой некий гибрид традиционных архитектур SMP и NUMA. AMD называет эту архитектуру SUMO (Sufficient Uniform Memory Organisation), что приблизительно можно перевести как "достаточно равномерная организация памяти".

Встроенный контроллер памяти DDR SDRAM поддерживает до восьми регистровых модулей DDR DIMM типов PC2100 и PC2700 (еще поддерживается память стандарта РС1600, но она уже практически исчезла), что, в случае использования гигабайтных модулей, дает нам по 8 Гбайт памяти на процессор. Пропускная способность шины памяти составляет при этом 4,2 Гбайт/с и 5,4 Гбайт /с соответственно. Новомодная память РС3200, к сожалению, не поддерживается, но только потому, что ядро AMD64 было разработано еще до официального утверждения этого стандарта комитетом JEDEC. Вот тут-то и проявляется основной недостаток интегрированного контроллера памяти: для обеспечения работы с каждым новым типом памяти, появившимся на рынке, требуется осуществлять редизайн процессора, что, сами понимаете, дело отнюдь не быстрое и довольно дорогостоящее. Единственно, что нивелирует этот недостаток, так это ставший уже легендарным консерватизм серверного рынка, на который и нацелен новый Opteron.

По заверениям AMD, контроллер памяти работает на той же частоте, что и процессор. Но сама память на такой частоте работать не может - рабочая частота памяти намного меньше. Опорной частотой контроллера памяти выбрана частота 200 МГц, являющаяся своеобразной внутренней FSB процессора, поэтому скорость памяти РС1600 не зависит от частоты процессора - ведь скорость процессора всегда кратна 200 МГц, и для каждой частоты процессора имеется свой целый делитель. Для PC2100 делитель составляет 3/2 от 200 МГц, а для PC2700 - 6/5 от той же опорной частоты, следовательно, частота памяти совершает небольшие "затухающие колебания" вокруг штатной частоты 133 (166) МГц. Соответствие рабочих частот различных моделей Opteron и системной памяти приведено в таблице (синим цветом выделены штатные частоты памяти):

Из этой таблицы видно, что лишь в случае использования процессора с частотой 2 ГГц (Opteron 246, который должен появиться в скором времени) модули PC2100 и 2700 работают в номинальных режимах, в остальных же случаях наблюдается некоторый недобор по частоте в случае использования того или иного типа DDR SDRAM. Для Opteron`а это не представляет особой проблемы, поскольку двухканальный контроллер в любом случае способен обеспечить высокую производительность подсистемы памяти, а вот насколько сильно это будет влиять на производительность будущих систем на базе Athlon 64, у которого контроллер памяти одноканальный - пока неизвестно. Впрочем, в случае использования памяти PC3200, работающей на частоте 200 МГц, проблем быть не должно; она будет всегда работать в номинальном режиме, как и PC1600, поскольку множители 2/1 и 1/1 дробными не являются.

Контроллер памяти с ядром процессора соединен шиной шириной 64 бита, работающей на частоте процессора - что дает на частоте 2 ГГц скорость обмена данными 16 Гбайт/с, что гарантирует отсутствие узкого места при передаче из контроллера памяти в процессор при использовании любых типов памяти, которые могут появиться в обозримом будущем.

Также не стоит забывать, что, кроме своей основной функции - работы с памятью, контроллер памяти содержит еще ряд функциональных блоков. В частности, для уменьшения задержек при работе с видеокартой, установленной в разъем AGP и подключаемой к контроллеру памяти по шине Hyper Transport через специальный "туннель" AMD8151 (или подобный от других производителей), введен Graphics Address Remapping Table (GART), позволяющий увеличить скорость передачи данных при помощи Hyper Transport от памяти к видеоадаптеру.

Контроллер Hyper Transport

Для связи с "внешним миром" процессор Opteron использует три шины HyperTransport шириной по 16 бит каждая, обеспечивающих пропускную способность до 3,2 Гбайт/с в каждом направлении (что дает суммарную пропускную способность 6,4 Гбайт/с по каждой шине). В многопроцессорных системах каждый процессор Opteron может подключаться к другим процессорам с помощью двух шин, тогда как третья шина может использоваться для связи с периферийными устройствами системы. Чтобы соседний процессор получил прямой доступ к памяти, Opteron использует перекрестный коммутатор XBAR (или CrossBar), управляющий потоками данных между контроллером памяти, ядром процессора и портами HyperTransport. Причем, этот коммутатор в полной мере задействует 64-битные шины для адресов и команд. Изящность такого подхода заключается в простоте реализации многопроцессорных систем, будь то двухпроцессорная или даже 8-процессорная система.

Напомню, что HyperTransport является протоколом последовательной шины "точка-точка", которую AMD использует для подключения многих элементов, начиная от контроллеров ввода/вывода, мостов AGP/PCI и вплоть до центральных процессоров. Каналы HyperTransport имеют ширину 2, 4, 8 или 16 бит и могут быть оптимизированы под передачу потока данных в любую сторону, в зависимости от требований устройства. К числу достоинств шины Hyper Transport можно отнести ее хорошую масштабируемость - так, двухбитная шина обеспечивает полосу пропускания 0,8 Гбайт/с, тогда как 32-битная - 12,8 Гбайт/с. Команды, адреса и данные передаются по одним и тем же физическим линиям, что значительно уменьшает количество контактов шины и упрощает ее разводку на плате. Технология HyperTransport предусматривает пакетную передачу команд, адресов и данных. Она способна работать в двух основных режимах - когерентном и некогерентном. Первый применяется для минимизации задержек и используется для межпроцессорных связей, а второй - для достижения максимальной пропускной способности и минимизации загрузки процессора при операциях ввода/вывода.

Кроме того, не следует забывать, что стандарт шины Hyper Transport - полностью открытый, а также то, что она полностью совместима с текущей программной моделью PCI и полностью прозрачна для приложений и ОС, не требует драйверов для работы.

Физические параметры процессора Opteron

Более-менее разобравшись с архитектурой ядра AMD64, настало время перейти к его физическим характеристикам.

Процессор Opteron (рис. 3) изготавливается по самому совершенному технологическому процессу AMD на данный момент - 0,13 мкм с использованием технологии "кремний на диэлектрике" (Silicon on Insulator, SOI), позволяющей уменьшить тепловыделение и достичь более высоких рабочих частот. Тем не менее, благодаря большому размеру кэша L2, Opteron, площадь кристалла которого составляет чуть меньше 200 мм2, является самым сложным, большим и дорогим чипом за всю историю AMD. Все процессоры Opteron будут использовать упаковку mPGA (как Intel Pentium 4 и Xeon), количество выводов составляет 940. В этом корпусе AMD впервые в своей практике использовала встроенный металлический распределитель тепла, который кроме своей основной функции отвода тепла еще и защищает хрупкое ядро процессора от механических повреждений при установке или снятии кулера. Как и в процессорах семейства Athlon XP, в Opteron`ах для контроля температуры ядра процессора используется внутренний термодатчик, однако и здесь появились новшества - теперь логические схемы защиты от перегрева расположены непосредственно в ядре процессора, тогда как раньше организация термической защиты процессоров лежала на плечах производителей системных плат. Которые (в большинстве своем), в погоне за сиюминутной экономией, это дело успешно проигнорировали.

Казалось бы, совсем недавно AMD, выпустив процессор Athlon XP, отказалась от дорогой керамической упаковки в пользу более дешевой органической. Но в Opteron`е кристалл, непонятно почему, снова оказался упакован в керамику (рис. 4).

С выходом Opteron` а компания AMD отказалась, по крайней мере, в данной линейке серверных процессоров, от рейтинговой маркировки процессоров и ввела новую систему обозначений, состоящую из трех цифр - xyz. Первая цифра - x, указывает на возможность процессора работать в многопроцессорных системах. К примеру, Opteron серии 2хх может использоваться как в однопроцессорной, так и в двухпроцессорной конфигурациях, в то время как Opteron серии 8хх поддерживает 1-, 2-, 4- и 8-процессорные конфигурации.

Оставшиеся цифры - yz отражают относительную производительность. Больший индекс соответствует большей производительности. Например, Opteron x44 быстрее, чем Opteron x42. Конечно, такая система обозначений кому-то покажется странной и не совсем наглядной, - но она позволила полностью уйти от частотного выражения уровня производительности (как прямой, так и рейтинговой), неспособного, по мнению компании AMD, объективно отражать реальные возможности современных процессоров.

Уже анонсированные процессоры Opteron предназначены для работы в двухпроцессорных системах и имеют модельные номера 240, 242 и 244 (их рабочие частоты составляют 1,4; 1,6 и 1,8 ГГц соответственно). В ближайшее время ожидаются и поставки процессора Opteron 246, работающего на частоте 2,0 ГГц и отличающегося от своих младших братьев пониженным с 1,55 до 1,45 В напряжением питания.

Заключение

Не так давно появившиеся на рынке серверные процессоры Opteron вызывают не только чисто "академический" интерес как "первые ласточки" новой 64-битной архитектуры AMD64, но и привлекательны с практической точки зрения - они, впрочем, как и все современные процессоры AMD, традиционно превосходят своих интеловских конкурентов по критерию производительность/стоимость. А учитывая их архитектурные особенности, позволяющие существенно снизить стоимость разводки плат под двухпроцессорный вариант, есть шанс увидеть в продаже по-настоящему недорогие и производительные одно- или двухпроцессорные рабочие станции.

Касаясь же перспектив самой процессорной платформы Opteron, следует отметить, что у инженеров AMD имеется ряд интересных "задумок", которые они собираются реализовать в будущих ревизиях процессора. В частности, речь идет о новом контроллере памяти, поддерживающем, кроме традиционной памяти DDR SDRAM, еще и новую DDR II. Тем более что, как было отмечено выше, архитектура AMD64 имеет серьезный потенциал роста производительности при ускорении памяти. Не менее интересна и информация о введении в процессор Opteron 4-й шины Hyper Transport, что позволит резко увеличить эффективность 4-х и более процессорных конфигураций. Но это все проблемы отдаленного будущего, а сейчас перед компанией AMD стоит одна, но жизненно важная задача - добиться признания индустрией своей новой архитектуры AMD64 и, тем самым, восстановить свой пошатнувшийся в последнее время авторитет серьезного производителя процессоров.