Процессоры на основе микроархитектуры следующего поколения под кодовым названием Bulldozer должны появиться на рынке в самое ближайшее время - в июне 2011 года. Эти чипы представляют собой одну из реализаций всё более популярной концепции "системы на чипе", когда на одном кристалле размещаются несколько вычислительных ядер, графические ядра и различные контроллеры, ранее входившие в состав наборов логики. В компании AMD разработкой гибридного процессора модульного типа под названием Fusion занялись ещё в 2006 году, сразу после покупки канадского производителя графических чипов ATI Technologies. Однако если Intel уже несколько лет массово выпускает ЦП со встроенной графикой, AMD так и не представила серийной десктопной модели - по некоторым сведениям, из-за проблем с производством. При этом если первоначально Fusion планировалось выпускать по 45-нм технологии, то Bulldozer уже рассчитаны на 32-нм техпроцесс.
Процессоры следующего поколения будут состоять из одного или нескольких двухъядерных модулей с общим внешним интерфейсом (блоков выборки и декодирования), блоком вычислений с плавающей запятой и кэш-памятью второго уровня. Поскольку в работающем многоядерном процессоре некоторые блоки часто остаются незадействованными, их можно сделать общими для нескольких ядер. В результате процессор будет состоять из меньшего числа блоков и его физические размеры будут меньше. Это сделает его экономичнее, "прохладнее" и, разумеется, дешевле. При этом по производительности в реальных приложениях такой чип не будет уступать микросхеме с "полноценными" ядрами.
Микроархитектура Bulldozer совместима со стандартными инструкциями x86 и поддерживает дополнительные наборы инструкций SSE4.1, SSE4.2, AVX, AES и LWP. Набор векторных инструкций AVX (Advanced Vector Extensions) был разработан в Intel в качестве возможного набора мультимедийных инструкций SSE5 нового поколения, и он уже используется в процессорах Core на основе архитектуры Sandy Bridge. В чипах Bulldozer этот набор дополнен двумя проприетарными расширениями XOP и FMA4. Инструкции AES (Advanced Encryption Standard) отвечают за поддержку алгоритмов шифрования, а LWP (Light Weight Profiling) позволяют одним программам отслеживать производительность других, что особенно важно при отладке софта. Иными словами, в Bulldozer поддерживаются практически любые когда-либо написанные инструкции для x86-совместимых процессоров.
Блок выборки, общий для пары ядер, отвечает за отбор и передачу на декодирование следующей инструкции из кэш-памяти или оперативной памяти. Кэш инструкций первого уровня, как неотъемлемая часть блока выборки, также общий для всего модуля, при этом у каждого "ядра" есть выделенный кэш данных L1. В чипа предусмотрена также общая кэш-память второго уровня для двух "ядер" и кэш третьего уровня, общий для всех "ядер" и двухъядерных модулей.
Блок декодирования преобразует инструкции x86 в понятные процессору микроинструкции RISC. В каждом двухъядерном модуле четыре таких блока. Расшифрованные инструкции поступают в планировщики, работающие с инструкциями для целочисленных вычислений или расчётов с плавающей запятой. Для обеспечения равномерной загрузки исполнительных блоков в ней используются планировщики, сортирующие инструкции в произвольном порядке и отправляющие их на блоки, которые могут их исполнить.
В каждом двухъядерном модуле два "ядра", то есть два независимых блока целочисленных расчётов и один блок вычислений с плавающей запятой. В каждом "ядре" четыре исполнительных подблока: EX, MUL (выполняет любые целочисленные вычисления, за исключением деления), EX, DIV (выполняет любые целочисленные вычисления, за исключением умножения) и два AGen (блоки генерации адресов данных, используемых загружаемыми инструкциями). В каждом "ядре" также имеется блок загрузки и хранения (Ld/ST), отвечающий за выгрузку или загрузку в память данных, затребованных инструкцией. Выполненные целочисленные инструкции пересылаются в блок вывода, в котором они снова выстраиваются в правильном порядке.
В блоке вычислений с плавающей запятой четыре подблока: два MMX (выполняет все основные вычисления с плавающей запятой x87, включая инструкции MMX/SSE) и два 128-битных блока FMAC (выполняет любые вычисления с плавающей запятой).