Компания AMD редко балует свежими процессорными архитектурами. Если Intel обновляет структуру каждые два года, то конкурент последний раз отметился в 2007 году, выпустив K10, переделанную версию старенькой K8. Так что появление свежей Bulldozer — событие знаковое. На ближайшие несколько лет архитектура станет основой для всех кристаллов AMD, а также первым за долгое время шансом побороться с Intel в гонке за производительность.
Ходим парой
Создавая Bulldozer, инженеры AMD отказались от проверенной стратегии улучшения и частичного копирования старых наработок. Строение камней в корне отличается от того, что мы привыкли видеть в x86-системах.
Первое и самое важное нововведение — оригинальная компоновка. Все топовые версии Bulldozer официально оснащаются восемью ядрами. Однако на самом деле полноценных модулей четыре, просто у каждого по два вычислительных блока. Выглядит это так: два целочисленных арифметических кластера (они-то и называются ядрами и отвечают непосредственно за расчеты) делят между собой Front-End, кластер вычислений с плавающей запятой (FPU) и увеличенный до 2 Мб кэш второго уровня.
Польза такого тандема — экономия площади, снижение уровня потребления энергии и стоимости производства. Минус — совместное использование одних и тех же наборов плохо сказывается на итоговой производительности. При большой нагрузке один Front-End может не справиться с двумя ядрами. AMD потерю производительности не отрицает: по ее словам, дуэт примерно на 20% слабее полноценного двухъядерника.
Трудности общения
Чтобы исключить узкое место, Front-End пришлось научить эффективно делить ресурсы между двумя ядрами. Для этого были переработаны блок предсказания ветвления и декодер команд, который получил четвертый канал для обработки инструкций (как в Sandy Bridge) и технологию Branch Fusion. Последняя позволяет склеивать часть инструкций в одну операцию. Все это должно ускорить работу Front-End и не дать простаивать кристаллу.
Что касается самих ядер, то это набор из Out-of-Order, загрузки/выгрузки, L1-кэша и двух вычислительных кластеров. Блок внеочередного исполнения теперь оснащен физическим регистром файлов. Как и в Sandy Bridge, в него скидываются адреса хранения рабочих данных, что позволяет разгрузить основной конвейер Out-of-Order. Процессор загрузки/выгрузки получил увеличенный буфер, удвоенную разрядность и возможность работы с виртуальными адресами, что теоретически должно повысить скорость работы с L1-кэшем данных. Последний в Bulldozer стал в четыре раза меньше: 16 против 64 Кб в K10. Потерю компенсировали скоростью работы. Ассоциативность L1 повысилась с двух до четырех каналов, а это значит вдвое большую эффективность поиска.
Вычислительных кластеров в одном модуле три штуки: два целочисленных и один для работы с данными с плавающей запятой. По сравнению с K10 первая пара потеряла по одному ALU (занимается вычислениями) и AGU (разбирается с адресами памяти). В теории это означает снижение пиковой производительности. На практике изменение будет практически не заметно: полностью нагрузить целочисленные кластеры сложно.
Основные изменения коснулись FPU, отвечающего за сложные расчеты с плавающей запятой. В K10 он стал значительно мощнее: получил по паре MMX и 128-бит FMAC-устройств для выполнения операций сложения и умножения. В отличие от K10, FMAC сделали универсальными: могут замещать друг друга, что положительно сказывается на скорости вычислений. Плюс к этому они научились совмещать операции в одном выражении, что повысило точность расчетов.
Помимо этого FPU получил обновленный ряд инструкций. Во-первых, процессор теперь работает с AVX, поддерживающим регистры длиной 256 бит. Для их расчетов, как и в Sandy Bridge, объединяются два FMAC. Во-вторых, Bulldozer может работать с инструкциями SSE 4.2, AENSI, FMA4 и XOP. Последние два набора уникальны для AMD. Для нас с вами все эти изменения означают только одно — команды, которые раньше делались за несколько тактов, теперь будут рассчитываться за один, а это напрямую влияет на производительность. Правда, чтобы ощутить прирост скорости, необходима поддержка инструкций со стороны софта.
Клей и ножницы
В итоге каждый модуль Bulldozer состоит из одного Front-End, L2- и L1-кэшей данных, двух целочисленных кластеров и блока для работы с числами с плавающей запятой. Всего на одном камне может находиться до четырех таких наборов. При этом каждому из них открыт доступ к ряду общих элементов. Первый — двухканальный контроллер памяти с поддержкой DDR3-1866 МГц. Второй — L3-кэш, объем которого по сравнению с K10 увеличился с 6 до 8 Мб, а ассоциативность — с 48 до 64 каналов. Заметим, что, в отличие от Sandy Bridge, частота L3-кэша не совпадает со скоростью ядер. Если топовый образец функционирует на скорости 3,6 ГГц, то память последнего уровня — на 2,2 ГГц. Это приводит к ощутимым задержкам, которые негативно сказываются на производительности. По словам AMD, на такую жертву пошли ради стабильной работы на высоких частотах.
Тадам!
Несмотря на архитектурные ухищрения и 32-нм техпроцесс, Bulldozer занимает внушительные 315 кв. миллиметров. Это примерно в полтора раза больше, чем четырехъядерный Sandy Bridge и старший Llano. К счастью, энергопотребление удалось сохранить в разумных пределах — 125 Вт.
Помимо восьмиядерных моделей, существуют версии с шестью и четырьмя вычислительными блоками. Младшие братья базируются на том же дизайне с восемью ядрами, но у них отключены один или два модуля.
Базовая частота варьируется от 3,1 до 3,6 ГГц. Как и у Sandy Bridge, в Bulldozer есть технология автоматического разгона. Специальный чип, отвечающий за Turbo Core 2.0, отслеживает текущие нагрузку на ядра и уровень TDP и, как только появляется возможность, повышает частоту процессора. В случае топового кристалла, когда задействованы все модули, скорость может быть увеличена на 300 МГц. Если часть ресурсов простаивает — на 600 МГц. При низких нагрузках Bulldozer переходит в энергосберегающий режим, за это отвечает технология Cool'n'Quiet.
Ручной разгон прост. Во-первых, у всей линейки разблокирован множитель. Во-вторых, новички хорошо набирают высоту: под жидким азотом старший Bulldozer установил новый мировой рекорд — 8429 МГц.
Компаньоны
Работают Bulldozer на Socket AM3+. По сути, это слегка усовершенствованный AM3 с одним дополнительным контактом. Чипсеты с новым процессорным разъемом называются 990FX, 990X и 970. Отличаются они контроллером PCIe 2.0. Старшая модель оснащена 32 линиями, младшие — 16. При этом 990FX и 990X поддерживают CrossFireX. Из особенностей чипсетов отметим шесть портов SATA Rev. 3 и 14 разъемов USB 2.0. Контроллера USB 3.0 нет.
Заметим, что Bulldozer могут работать и на старых платах. Все, что для этого нужно, — обновленный BIOS. Ограничения: у Turbo Core и Cool'n'Quiet снижается скорость реакции, а часть энергосберегающих функций недоступна.
Процессорная архитектура Bulldozer получилась интересной. Наконец-то AMD перестала заниматься самокопированием и придумала нечто действительно новое. К сожалению, явных преимуществ перед конкурентами немного. Заявленных восьми ядер нет. По-хорошему, перед нами четырехъядерные модели с увеличенным количеством вычислительных блоков, что-то вроде Intel Hyper-Threading, но на железном уровне. Идея хорошая, но производительность будет зависеть от того, насколько быстрым получился Front-End. Из реальных преимуществ Bulldozer можно выделить только мощный FPU для расчетов чисел с плавающей запятой и увеличенные по сравнению с K10 частоты работы.
Раскатаем! Закопаем!
AMD озвучила планы по выпуску следующих линеек процессоров. Компания рассчитывает ежегодно обновлять архитектуру, каждый раз добиваясь примерно 15-процентного прироста производительности на ватт. Если AMD будет придерживаться намеченного плана, то в 2012 году мы увидим архитектуру Piledriver («копер»), еще через год — Steamroller («паровой каток»), а 2014 год запомнится анонсом Excavator. Такие вот строительные работы.
Неправильные окна
Со слов AMD, Windows 7 не в состоянии раскрыть весь потенциал нового творения: планировщик ОС не учитывает особенности Bulldozer. Например, для новых процессоров важно, чтобы взаимосвязанные потоки были закреплены за одним модулем, в противном случае ядра будут обмениваться данными не через быстрый L2-кэш, а через память третьего уровня. Некоторые раздельные потоки также лучше обрабатывать аналогичным образом, дабы повысить эффективность Turbo Core 2.0. В то же время определенные задачи создают большую нагрузку на блок Front End, и их лучше раскидывать по разным модулям. Благодаря сотрудничеству с Microsoft эти нюансы будут учтены в планировщике Windows 8. Впрочем, существенного прироста быстродействия ждать не стоит.
Словарик
Целочисленный вычислительный кластер — занимается операциями с целыми числами (1, 2, 10).
Front-End — блок предварительной выборки. Получает команды от программы и переводит их на понятный процессору язык.
FPU — кластер вычислений данных с плавающей запятой. Производит вычисления с дробными числами (1,2345) и большими значениями со степенями (1,2345E-10).
Блок предсказания ветвлений — заранее предугадывает, какие данные и операции могут понадобиться программе в следующий момент. Не дает простаивать процессору.
Декодер команд — разбивает программу на микрооперации, которыми потом пользуются вычислительные кластеры.
Out-of-Order — блок внеочередного исполнения. Занимается распределением действий между ядрами. Отправляет на расчет только те команды, для которых есть данные.
Блок загрузки/выгрузки (LSU) — следит за перемещением данных между выходом с конвейера и L1-кэшем данных.
Ассоциативность кэша — связывание строчек и столбцов кэш-памяти. Чем выше ассоциативность, тем ниже скорость поиска, но выше его эффективность.
MMX — набор блоков для работы с числами до 8 байт.
Наборы инструкций — позволяют одной командой совершить операцию над несколькими данными.
Таблица 1
Технические характеристики процессоров AMD Bulldozer
Количество вычислительных ядер | |
FX-8150 |
8 |
FX-8120 |
8 |
FX-8100 |
8 |
FX-6100 |
6 |
FX-4100 |
4 |
Базовая частота | |
FX-8150 |
3,6 ГГц |
FX-8120 |
3,1 ГГц |
FX-8100 |
3,1 ГГц |
FX-6100 |
3,3 ГГц |
FX-4100 |
3,6 ГГц |
Частота в режиме Turbo Core | |
FX-8150 |
4,2 ГГц |
FX-8120 |
4 ГГц |
FX-8100 |
3,7 ГГц |
FX-6100 |
3,9 ГГц |
FX-4100 |
3,8 ГГц |
L2-кэш | |
FX-8150 |
8 Мб |
FX-8120 |
8 Мб |
FX-8100 |
8 Мб |
FX-6100 |
6 Мб |
FX-4100 |
4 Мб |
L3-кэш | |
FX-8150 |
8 Мб |
FX-8120 |
8 Мб |
FX-8100 |
8 Мб |
FX-6100 |
8 Мб |
FX-4100 |
8 Мб |
Поддержка памяти | |
FX-8150 |
DDR3-1866 |
FX-8120 |
DDR3-1866 |
FX-8100 |
DDR3-1866 |
FX-6100 |
DDR3-1866 |
FX-4100 |
DDR3-1866 |
Энергопотребление | |
FX-8150 |
125 Вт |
FX-8120 |
125 Вт |
FX-8100 |
125 Вт |
FX-6100 |
95 Вт |
FX-4100 |
95 Вт |
Техпроцесс | |
FX-8150 |
32 нм |
FX-8120 |
32 нм |
FX-8100 |
32 нм |
FX-6100 |
32 нм |
FX-4100 |
32 нм |
Сокет | |
FX-8150 |
AM3+ |
FX-8120 |
AM3+ |
FX-8100 |
AM3+ |
FX-6100 |
AM3+ |
FX-4100 |
AM3+ |
Цена на ноябрь 2011 года | |
FX-8150 |
9200 руб. |
FX-8120 |
7200 руб. |
FX-8100 |
не известна |
FX-6100 |
5500 руб. |
FX-4100 |
4000 руб. |