#чтиво | Игривый Jaguar внутри Xbox One и PS4: архитектура

Олег Довбня

На процессоре AMD Jaguar базируются две новейшие игровые консоли. Microsoft Xbox One, в гостях у создателей которой недавно побывали наши читатели. И, разумеется, Sony PlayStation 4 (PS4). Что делает именно этот процессор столь привлекательным для игровой индустрии? Возможно, ответ на этот вопрос вы найдете в его технических особенностях. Продолжаем смотреть на игры со стороны «железа». И сегодня познакомимся поближе с архитектурой процессора, задействованного в игровых приставках нового поколения.

Процессоры AMD

Две архитектуры эффективнее одной

Архитектура Bulldozer

В наши дни разработка микропроцессорной архитектуры упирается в ограничение, накладываемое энергопотреблением. Процессору следует четко позиционироваться для применения в определенных устройствах. Причиной тому показатель TDP. Цифра TDP характеризует способность системы охлаждения отводить тепло. Она должна быть выше максимально возможного тепловыделения чипа, но слишком большой запас снижает эффективность архитектуры.

Например, архитектура Intel Core (Sandy/Ivy Bridge) может эффективно работать, потребляя энергию в диапазоне от 13 до 130 ватт. Получается, что ее можно применять в устройствах, потребляющих больше или меньше энергии. Но куда более эффективно разработать архитектуру, чье тепловыделение (и, соответственно, энергопотребление) в большей степени соответствует показателю TDP. Иными словами, желательно, чтобы все показатели процессора соответствовали друг другу. Это выгоднее и с технической, и с экономической стороны.

И AMD, и Intel следуют этому «правилу порядка величин». Поэтому каждый из ведущих чипмейкеров мира располагает двумя различными микропроцессорными архитектурами. Intel предлагает Atom для систем с низким энергопотреблением и Core для высокопроизводительных компьютеров. В 2010 году AMD представила Bobcat, экономно относящуюся к энергетическим ресурсам, и Bulldozer для систем с высокой производительностью.

И Bobcat, и Bulldozer ежегодно обновляются. В 2011 году появился Bobcat, нашедший применение в однокристалльных системах (SoC) Ontario и Zacate в рамках платформы Brazos. В минувшем году AMD анонсировала Brazos 2.0. В ней используется слегка обновленные, но очень близкие к позапрошлогодним SoC на базе Bobcat. А недавно были представлены APU Kabini и Temash, базирующиеся на первом значительном обновлении Bobcat: ядре Jaguar.

Jaguar и Bobcat: схожести и различия

Архитектура Jaguar

На уровне ядра процессор Jaguar похож на своего предшественника Bobcat. Эта архитектура все так же предполагает одновременный запуск двух команд или инструкций для исполнения (dual-issue). При этом она характеризуется внеочередным исполнением команд (out-of-order): это означает, что инструкции исполняются не по порядку, а по мере готовности к выполнению. Словом, в основе архитектуры лежит базовая идея, которую AMD представила в 2010 году.

Всё тот же кеш первого уровня (L1); входной и выходной исполнительные блоки присутствуют, как и прежде. Отметим, что архитектура ARM в Cortex A9 позволяет одновременно запускать для исполнения три инструкции (three-issue). В Cortex A15 применено и внеочередное исполнение команд. Ведущий ресурса AnandTech известный технический обозреватель Ананд Лал Шимпи (Anand Lal Shimpi) полагал, что AMD предложит миру нечто подобное.

AMD миниатюризировала производственный процесс своих чипов до 28-нанометрового. Это весьма интересно, но основной упор корпорация сделала на повышение производительности Jaguar в сравнении с предшественником при сохранении прежнего TDP. Что побудило AMD заняться снижением тепловыделения своих чипов?

Дело в том, что архитектура Bobcat была ориентирована на недорогие и малогабаритные компьютеры, в частности, нетбуки и неттопы. Jaguar’у же предстоит — в полном соответствии с веянием времени — обрести свое место в еще более компактных устройствах: планшетах. AMD пока не собирается создавать SoC для смартфонов, но рынок планшетов на базе Windows 8 (а может быть, Android?) весьма привлекателен для компании. Поскольку к такого рода устройствам не предъявляется требование совместимости с сотовыми сетями (не в последнюю очередь потому, что цена их сравнительно ниже), AMD легко может предложить альтернативу архитектуре Intel Atom.

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

Кроме того, Jaguar’ы могли бы стать настолько мощными, что перестала бы чувствоваться разница между ними и семейством Bulldozer. А как отмечалось в начале повествования, «усреднять» архитектуру невыгодно ни с инженерной, ни с экономической точки зрения. Куда более привлекательной выглядит модель, в рамках которой чипмейкер предлагает отдельно архитектуру для могучих компьютеров и отдельно для компактных устройств. В первом случае основное внимание уделяется производительности, во втором — энергопотреблению и теплоотдаче, вещам тесно взаимосвязанным.

Переход к одновременной загрузке трех инструкций, разумеется, повысит производительность, но не позволит процессорам AMD занять свое место в планшетах. Поэтому, полагает Ананд Лал Шимпи, наращивание мощи отложено на будущее. На фоне «трехинструкционных» ARM, и Jaguar, и Intel Silvermont выглядят несколько старомодными. Но при сравнении следует принимать во внимание то, что AMD и Intel изо всех сил стараются снизить энергопотребление своих процессоров. Что же касается ARM, то в рамках этой архитектуры основной упор делается на повышение производительности.

Jaguar обладает буфером циклов 4 х 32 байта. Если обнаружен цикл, вместо извлечения раз за разом используемых в цикле инструкций из кеша первого уровня, они извлекаются из этого небольшого буфера. Не следует рассматривать его в качестве трассового кеша (trace cache) или кеша микроопераций (micro-op cache). Дела обстоят намного прозаичнее. Преимуществом данного буфера является лишь то, что кеш инструкций не нагружается каждый раз при обращении к инструкциям, входящим в цикл. Это средство снизить энергопотребление процессора, а не повысить его производительность, как может показаться на первый взгляд.

Прежде чем выйти на рынок, работа процессора многократно моделируется. В ходе моделирования находятся слабые места процессора. Даже, когда процессор уже сконструирован, некоторые из них всё равно остаются. И устраняются они уже в следующих поколениях чипов.

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

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

AMD также усовершенствовала устройство опережающей (упреждающей) выборки команд кеша инструкций (команд). Это обращение к конструкции Bobcat и старание найти ее особенностям применение в рамках новой архитектуры Jaguar. На сей раз AMD не пришлось создавать принципиально иную архитектуру. Ей было достаточно лишь создать на базе Bobcat такую архитектуру, которая будет справляться с теми же задачами лучше, чем ее предшественница. Буфер инструкций между кешем инструкций и декодерами в Jaguar стал больше. Но это половинчатое решение. В Bulldozer стадии выборки и декодирования вообще разделены.

В Jaguar реализована 40-битная физическая адресация и поддержка новых инструкций: SSE4.1/4.2, AES, CLMUL, MOVBE, AVX, F16C, BMI1. Слабым местом Bobcat было то, что ее декодер накладывал ограничение на максимальную частоту. В Jaguar добавлена дополнительная стадия декодирования, позволяющая реализовать предусмотренную AMD частоту в рамках 28-нанометровой технологии.

По материалам AnandTech.com