Выбрать главу

В отличие от чипов AMD64, "настоящих многоядерных" процессоров, что постоянно подчёркивали в AMD, в основу новой микроархитектуры положен принципиально иной подход. Процессоры следующего поколения будут состоять из одного или нескольких двухъядерных модулей с общим внешним интерфейсом (блоков выборки и декодирования), блока вычислений с плавающей запятой и кэш-памяти второго уровня.

Как утверждают в AMD, это было сделано для оптимизации конструкции и одновременно для снижения себестоимости. Поскольку в работающем многоядерном процессоре некоторые блоки часто остаются незадействованными, их можно сделать общими для нескольких "ядер". В результате процессор будет состоять из меньшего числа блоков и его физические размеры будут меньше. Это сделает его экономичнее, "прохладнее" и, разумеется, дешевле.

Конечно, такой процессор, строго говоря, не будет двухъядерным, ведь некоторые блоки у двух "недоядер" общие, поэтому применительно к ним в этой статье бы будем писать слово "ядра" в кавычках. При этом по производительности в реальных приложениях такой чип не будет уступать "настоящему" двухъядерному. Схему составленного из таких модулей восьмиядерного чипа можно увидеть на иллюстрации.

Блок выборки отвечает за отбор и передачу на декодирование следующей инструкции из кэш-памяти или оперативной памяти. Как упоминалось выше, этот блок является общим для двух "ядер" в каждом модуле. Кэш инструкций первого уровня, как неотъемлемая часть блока выборки, также общий для всего модуля, при этом у каждого "ядра" есть выделенный кэш данных L1.

Блок декодирования заведует преобразованием инструкций x86 в понятные процессору микроинструкции RISC. В каждом двухъядерном модуле четыре таких блока, причём пока в AMD не уточняют назначение каждого. Обычно по меньшей мере один блок работает со сложными инструкциями, дешифровка которых происходит за насколько тактов, в то время как простые инструкции дешифруются за один такт.

Расшифрованные инструкции отправляются на соответствующий планировщик, работающий с инструкциями для целочисленных вычислений или расчётов с плавающей запятой. Как и все прочие современные центральные процессоры, архитектура Bulldozer основана на внеочередном исполнении инструкций: для обеспечения равномерной загрузки исполнительных блоков в ней используются планировщики, сортирующие инструкции в произвольном порядке и отправляющие их на блоки, которые могут их исполнить.

Микроархитектурой Bulldozer предусмотрен лишь один блок вычислений с плавающей запятой на каждый двухъядерный модуль и два независимых "ядра", то есть, собственно, два блока целочисленных расчётов. В каждом "ядре" четыре исполнительных подблока: EX, MUL (выполняет любые целочисленные вычисления, за исключением деления), EX, DIV (выполняет любые целочисленные вычисления, за исключением умножения) и два AGen (блоки генерации адресов данных, используемых загружаемыми инструкциями). В каждом "ядре" также имеется блок загрузки и хранения (Ld/ST), отвечающий за выгрузку или загрузку в память данных, затребованных инструкцией. Выполненные целочисленные инструкции пересылаются на блок вывода, в котором они снова выстраиваются в правильном порядке.

В блоке вычислений с плавающей запятой четыре подблока: два MMX (выполняет все основные вычисления с плавающей запятой x87, включая инструкции MMX/SSE) и два 128-битных блока FMAC (выполняет любые вычисления с плавающей запятой).

Архитектура Bulldozer предусматривает общую кэш-память второго уровня для двух "ядер". Кроме того, в чипах будет использоваться и кэш третьего уровня, общий для всех "ядер" и двухъядерных модулей.

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

В архитектуре Bulldozer будет также реализована технология автоматического разгона, аналогичная Turbo Boost, применяемой в процессорах Intel серий Core i7 и большей части Core i5. Напомним, что эта технология включается через BIOS и автоматически повышает тактовую частоту до заранее установленной величины при работе с ресурсоёмкими приложениями. Главное отличие этой системы от "нештатных" технологий разгона заключается в том, что она работает лишь при оптимальных настройках системы и при достаточно эффективном охлаждении, в противном случае Turbo Boost просто не включится.