Микроархитектура AMD Bulldozer и новое поколение процессоров AMD Opteron

Начало лета выдалось для компании AMD чрезвычайно жарким. Прошла буквально пара недель с официального анонса мобильной платформы Sabine, в основе которой лежат процессоры Llano — долгожданный Fusion! — и компания анонсировала платформу для настольных компьютеров, основанную на тех же процессорах. А чтобы журналистам было совсем уж нескучно, в AMD решили одновременно с официальным выпуском настольной платформы поделиться информацией о новой микроархитектуре Bulldozer. А заодно — продемонстрировать новые серверные процессоры Opteron, которые основаны на этой микроархитектуре.

AMD Bulldozer

В качестве места для презентации был выбран Дрезден — город, в котором расположена самая крупная фабрика GlobalFoundries, компании, в которую вошли все производственные активы, ранее принадлежавшие AMD. Собственно, мероприятие было проведено на самой фабрике — ранее носившей название AMD Fab 36, а ныне переименованной в GlobalFoundries Fab 1.

AMD Bulldozer

Несмотря на то, что в программе мероприятия значилась экскурсия по фабрике, на само производство, в чистую комнату, как водится, не пустили. И не потому, что боятся, что журналисты натопчут в стерильном помещении. И даже не потому, что кто-то может высмотреть какие-то технологические тайны собственно GlobalFoundries. Все проще: на фабрике производятся чипы множества fabless-разработчиков, и некоторым из них крайне не хочется, чтобы их изделия попадали на глаза журналистам.

Даже те не слишком многочисленные части производства, которые удалось увидеть, не удалось снять: собственные фотоаппараты взять на экскурсию было нельзя, а «фирменного» фотографа к делегации журналистов не прикомандировали. Поэтому сколько-нибудь подробный рассказ о GlobalFoundries Fab 1, к сожалению, придется отложить до лучших времен.

AMD Bulldozer

А поговорим мы о более насущном, о «бульдозерах». Bulldozer — это совершенно новая архитектура процессорных ядер AMD. Причем устроена она весьма необычно по сравнению с предыдущими поколениями микропроцессорных архитектур AMD — K10, K8 и так далее. И вообще достаточно необычно для x86-архитектур, которые славятся своим консерватизмом.

Начать стоит с того, что новая микроархитектура AMD создана с чистого листа. Собственно, именно поэтому она и не называется K11, как того можно было ожидать, — отказ от наименований с буквой «K» призван подчеркнуть существенное отличие новой архитектуры от предыдущих поколений. Надо полагать, и само по себе слово «бульдозер» намекает на то же самое. Весь мир насилья мы разрушим — и построим все заново.

На начальной стадии проектирования архитектура Bulldozer задумывалась как традиционная CMP (Chip-level MultiProcessing), выполненная по схеме «одно физическое ядро — один поток». Собственно, такой подход и практиковали в AMD при разработке предыдущих микроархитектур.

AMD Bulldozer

В отличие от разработчиков AMD, их коллеги из Intel уже достаточно давно, хотя и с перерывами, применяют схему SMT (Simultaneous MultiThreading), которую в общих чертах можно охарактеризовать как «одно физическое ядро — два виртуальных ядра — два потока». То есть Hyper-threading Technology, если пользоваться собственным наименованием Intel.

AMD Bulldozer

Оба эти подхода имеют свои недостатки, поэтому в AMD приняли решение избрать третий, довольно своеобразный путь. Так концепт Bulldozer из обычного «одноядерного субпроцессора» превратился в двухъядерный модуль, в котором значительная часть аппаратных ресурсов используется ядрами совместно.

AMD Bulldozer AMD Bulldozer

Выделенными ядрами в новой компоновке AMD оказываются классические x86-процессоры, работающие с целочисленными вычислениями. Каждый из них обладает собственным планировщиком и личной кеш-памятью первого уровня для хранения данных (16 Кбайт). Собственно, на этом выделенные блоки «бульдозера» заканчиваются и начинаются разделяемые.

AMD Bulldozer

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

AMD Bulldozer

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

AMD Bulldozer

Кроме того, блок вычислений с плавающей запятой содержит внутри себя дополнительное разделение ресурсов: при работе с набором инструкций AVX (Advanced Vector eXtensions) два 128-битных FPP могут быть объединены в один 256-битный FPP.

AMD Bulldozer

Наконец, третий разделяемый блок — общий кеш второго уровня объемом 2 Мбайт, совместно используемый обоими ядрами модуля Bulldozer.

AMD Bulldozer

В AMD утверждают, что потери производительности за счет использования такой замысловатой схемы не слишком велики: порядка 80% от того, что можно было бы получить, если бы Bulldozer был выполнен по классической схеме CMP с полностью обособленными и индивидуально оснащенными ядрами. В AMD специально подчеркивают: не 80% от производительности предыдущего поколения процессоров, а 80% от того, на что был бы способен полноценный двухъядерный Bulldozer, если бы он был воплощен в железе.

AMD Bulldozer

На иллюстрации 8-ядерный чип, собранный из 4 модулей Bulldozer

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

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

AMD Bulldozer AMD Bulldozer

Разумеется, есть и обратная функция — динамический разгон части или всех процессорных ядер в том случае, если текущее тепловыделение позволяет повысить частоту без опасности перегрева процессора. Эта функция, впервые появившаяся у AMD в шестиядерных процессорах Thuban, носит название TurboCore.

AMD Bulldozer

Модуль Bulldozer поддерживает все актуальные для x86-процессоров наборы инструкций: SSE 4.1, SSE 4.2, AES NI и вышеупомянутый AVX. Дополнительно поддерживается несколько наборов инструкций, призванных обеспечить ту же функциональность, что и грядущий SSE5: XOP и FMA4 (4-операндная версия Fused Multiply-Add).

AMD Bulldozer

Правда, относительно набора инструкций FMA уже известно, что в AMD поторопились. Компания Intel в своих будущих процессорах будет использовать FMA3, трехоперандную версию этого набора инструкций (A=A+B*C вместо A=B+C*D). Несмотря на близкую функциональность, эти версии несовместимы, так что в следующих версиях архитектуры в AMD постараются избежать конфронтации и также используют FMA3.

AMD Bulldozer

В качестве первого применения модулей Bulldozer в AMD избрали рынок серверов и суперкомпьютеров, на котором компания чувствует себя очень даже неплохо. Модули Bulldozer в серверных Opteron объединяются в блоки по четыре и комплектуются общим кешем L3 объемом 8 Мбайт на процессор, двухканальным контроллером памяти с поддержкой DDR3-1600 и тремя соединениями HyperTransport x16. Так устроены процессоры Opteron серии 4000 (Valencia) — с 6 или 8 ядрами.

AMD Bulldozer

Более производительные Opteron серии 6000 (Interlagos) представляют собой сборку из двух четырехмодульных блоков Opteron 4000. Контроллер памяти в этом случае уже четырехканальный, количество соединений HyperTransport x16 увеличено до четырех, а объем кеш-памяти L3 составляет 16 Мбайт на процессор. В этих процессорах могут быть задействованы 8, 12 или 16 вычислительных ядер. При этом следует иметь в виду, что 8-ядерный Opteron 6000 выгодно отличается от 8-ядерного Opteron 4000 гораздо большим объемом кеша L3 и более широкой пропускной способностью памяти в пересчете на одно ядро.

AMD Bulldozer

Оба варианта новых процессоров Opteron будут производиться по технологическому процессу 32 нм SOI High-K Metal Gate. Разумеется, производиться они будут компанией GlobalFoundries.

Хорошая новость для владельцев серверов и суперкомпьютеров, основанных на предыдущем поколении процессоров Opteron, состоит в том, что они смогут модернизировать свои системы без замены материнских плат. Новые Opteron используют те же самые Socket C32 (Opteron 4000) и Socket G34 (Opteron 6000). Все, что потребуется для замены процессоров, — это обновление BIOS.

AMD Bulldozer

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

AMD Bulldozer

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