Почему для PS4 нужен был именно Jaguar?

20 Сен 2017

Почему для PS4 нужен именно Jaguar?

Лет пять назад, когда выбор гибридного процессора от компании AMD для игровой консоли Sony PS4 стал неожиданным сюрпризом, анализ ар­хи­тек­тур­ных подробностей полузаказного чипа на восьми энер­го­эф­фек­тив­ных ядерах Jaguar был окутан секретностью. Сегодня после бо­лее, чем уда­ч­но­го запуска черно-зелено-ко­рич­не­вы­ми семейства Sum­mit Rid­ge на ар­хи­тек­ту­ре Zen завесы многих тайн слегка приспущены. Сравнивая фун­к­ци­о­наль­ные возможности двух линеек процессоров AMD можно догадаться о при­чи­нах столь неожиданного выбора.

Как следует из презентации «AMD Ryzen CPU Optimization» сотрудников компании Кена Митчела (Ken Mitchell) и Эллиота Кима (Elliot Kim), эволюция набора инструкций, имплементированных в процессоры AMD на протяжении последних восьми лет не может быть представлена восходящей кривой. Появление семейства Kabini, к которому относятся и ядра Jaguar, используемые в Sony PlayStation 4, стало тестовым полигоном для обкатки новых тех­но­ло­гий, появившихся только в текущем году.

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

  • MOVBE (Move Big Endian) — пересылка с изменением порядка байтов, у Intel младший байт располагается в памяти по меньшему адресу (little endian), у некоторых других архитектур (игровые приставки не исключение!) старший байт располагается в памяти по меньшему адресу (big endian). Инструкция MOVBE позволяет вы­пол­нить конвертирование за одну инструкцию, совместив его с пересылкой, то есть быстро и просто.
  • XSAVEOPT (XSAVE Optional) — позволяет организовать сохранение и восстановление состояния процессора (например при переключении задач) с опциональным выбором элементов, которые требуется сохранить.
  • BMI (Bit Manipulation Instructions) — операции с единичными битами и битовыми полями. Особенно удобны при работе с битовыми полями, размер и позиция которых внутри регистров не кратны 8 а потому такие поля сложно обрабатывать обычными инструкциями.
  • F16C (Half-Precision Conversion — инструкции этой группы позволяют выполнять преобразование в формат половинной точности и обратно. Этот формат использует 16 бит на число с плавающей точкой, применяется когда скорость и компактность важнее точности.

Рекламный слайд презентации Sony PlayStation 4

Особо стоит отметить, что инструкция XSAVEOPT стала дальнейшим развитием идеи XSAVE, используемой для сохранения процессорного контекста при переключении задач в многозадачной среде. Она оптимизирована для получения высокой производительности за счет исключения сохранения и восстановления таких элементов кон­тек­с­та, сохранением которых можно пренебречь. Это происходит в таких случаях, когда состояние некоторых ре­гист­ров прерывающая задача не изменяет.

Архитектура гибридного процессора AMD Jaguar из семейства Kabini

Согласно документации, XSAVEOPT — это Performance-Optimized версия XSAVE. Кроме избирательного со­хра­не­ния контекста, допускается иное (Implementation-Specific) различие между XSAVE и XSAVEOPT. Из этого следует, что инструкция XSAVEOPT позволяет организовать выборочное сохранение-восстановление заданного под­мно­же­ства элементов контекста процессора. Программист, зная, какие элементы контекста искажает пре­ры­ва­ю­щая про­це­ду­ра, может задать с помощью маски сохранение только некоторых регистров. Не следует считать, что такой подход полностью решает проблему наличия «лишних операций» при аппаратном сохранении и вос­ста­нов­ле­нии контекста. Маска позволяет выбрать только группу регистров, например:

  • 0 = не сохранять все регистры SSE
  • 1 = сохранять все регистры SSE

В то время как программное решение позволяет действовать с точностью до регистра, например сохранить XMM0, XMM1 и не сохранять XMM2-XMM15.

Резюме

К сожалению, в процессоре Jaguar не была реализована инструкция RDSEED, которая, как и ранее предложенная RDRAND, генерирует случайное число, но в отличие от RDRAND для любой пары последовательно сге­не­ри­ро­ван­ных случайных чисел, гарантирует, что каждое из них получено из аналогового источника энтропии (non-de­ter­mi­ni­stic).

Также пока остался открытым вопрос про эффективность реализации 256-битных вычислений, а равно их эму­ля­цию инструкциями меньшей разрядности. Тем не менее, по результатам анализа эволюции процессорных ко­манд напрашивается прогноз и на комплектацию следующей игровой приставки от Sony. Будет ли PlayStation 5 ис­поль­зо­вать гибридную архитектуру AMD покажет время.

Теги: