17 декабря 2011
Обновлено 17.05.2023

Стройка десятилетия. Изучаем процессорную архитектуру AMD Bulldozer

Стройка десятилетия. Изучаем процессорную архитектуру AMD Bulldozer - изображение обложка
Стройка десятилетия. Изучаем процессорную архитектуру AMD Bulldozer - фото 1

Компания AMD редко балует свежими процессорными архитектурами. Если Intel обновляет структуру каждые два года, то конкурент последний раз отметился в 2007 году, выпустив K10, переделанную версию старенькой K8. Так что появление свежей Bulldozer — событие знаковое. На ближайшие несколько лет архитектура станет основой для всех кристаллов AMD, а также первым за долгое время шансом побороться с Intel в гонке за производительность.

Ходим парой

Создавая Bulldozer, инженеры AMD отказались от проверенной стратегии улучшения и частичного копирования старых наработок. Строение камней в корне отличается от того, что мы привыкли видеть в x86-системах.

Стройка десятилетия. Изучаем процессорную архитектуру AMD Bulldozer - фото 2

Первое и самое важное нововведение — оригинальная компоновка. Все топовые версии Bulldozer официально оснащаются восемью ядрами. Однако на самом деле полноценных модулей четыре, просто у каждого по два вычислительных блока. Выглядит это так: два целочисленных арифметических кластера (они-то и называются ядрами и отвечают непосредственно за расчеты) делят между собой Front-End, кластер вычислений с плавающей запятой (FPU) и увеличенный до 2 Мб кэш второго уровня.

Польза такого тандема — экономия площади, снижение уровня потребления энергии и стоимости производства. Минус — совместное использование одних и тех же наборов плохо сказывается на итоговой производительности. При большой нагрузке один Front-End может не справиться с двумя ядрами. AMD потерю производительности не отрицает: по ее словам, дуэт примерно на 20% слабее полноценного двухъядерника.

Трудности общения

Чтобы исключить узкое место, Front-End пришлось научить эффективно делить ресурсы между двумя ядрами. Для этого были переработаны блок предсказания ветвления и декодер команд, который получил четвертый канал для обработки инструкций (как в Sandy Bridge) и технологию Branch Fusion. Последняя позволяет склеивать часть инструкций в одну операцию. Все это должно ускорить работу Front-End и не дать простаивать кристаллу.

Стройка десятилетия. Изучаем процессорную архитектуру AMD Bulldozer - фото 3

Что касается самих ядер, то это набор из 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 сделали универсальными: могут замещать друг друга, что положительно сказывается на скорости вычислений. Плюс к этому они научились совмещать операции в одном выражении, что повысило точность расчетов.

Стройка десятилетия. Изучаем процессорную архитектуру AMD Bulldozer - фото 4

Помимо этого 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 Вт.

Стройка десятилетия. Изучаем процессорную архитектуру AMD Bulldozer - фото 5

Помимо восьмиядерных моделей, существуют версии с шестью и четырьмя вычислительными блоками. Младшие братья базируются на том же дизайне с восемью ядрами, но у них отключены один или два модуля.

Базовая частота варьируется от 3,1 до 3,6 ГГц. Как и у Sandy Bridge, в Bulldozer есть технология автоматического разгона. Специальный чип, отвечающий за Turbo Core 2.0 , отслеживает текущие нагрузку на ядра и уровень TDP и, как только появляется возможность, повышает частоту процессора. В случае топового кристалла, когда задействованы все модули, скорость может быть увеличена на 300 МГц. Если часть ресурсов простаивает — на 600 МГц. При низких нагрузках Bulldozer переходит в энергосберегающий режим, за это отвечает технология Cool’n’Quiet.

Стройка десятилетия. Изучаем процессорную архитектуру AMD Bulldozer - фото 6

Ручной разгон прост. Во-первых, у всей линейки разблокирован множитель. Во-вторых, новички хорошо набирают высоту: под жидким азотом старший 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 руб.

Комментарии
Чтобы оставить комментарий,Войдите или Зарегистрируйтесь