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

Микросхемы Athlon II X2 (Regor) представляют собой «настоящие» двуядерные чипы, а не четырёхъядерники Phenom II X4 (Deneb) с двумя нерабочими ядрами, как Phenom II X2 (Callisto). В свою очередь, Athlon II X3 — это Athlon II X4 c одним нефункциональным ядром, Phenom II X3 (Heka) — это Phenom II X4 (Deneb) с одним отключённым ядром, а Phenom II X4 (Zosma) — это Phenom II X6 (Thuban) с двумя отключёнными ядрами.

Каждое ядро Athlon II и Phenom II оснащается 128 Кбайт кэш-памяти L1 и 512 Кбайт кэша второго уровня. Однако, в отличие от Phenom II, у «атлонов» нет общей кэш-памяти L3, поэтому они чаще обращаются к заведомо более медленной системной памяти. Результат — ограниченная производительность в ресурсоёмких приложениях, в частности, в трёхмерной графике и компьютерных играх. Впрочем, в сочетании с хорошей дискретной видеокартой системы на Athlon II демонстрируют вполне достойную игровую производительность.

Микроархитектура Bulldozer

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