Введение

ГПУ для PlayStation 3

RSX 'Reality Synthesizer – это специализированный графический процессор (GPU), разработанный совместно компаниями Nvidia и Sony для игровой консоли PlayStation 3. Он основан на графическом процессоре Nvidia 7800GTX и, по заявлению Nvidia, представляет собой гибридную архитектуру G70/G71 (ранее известную как NV47) с некоторыми изменениями. RSX имеет отдельные конвейеры вершинных и пиксельных шейдеров. GPU использует 256 МБ GDDR3 памяти, работающей на частоте 650 МГц с эффективной скоростью передачи данных 1,3 ГГц, а также до 224 МБ основной памяти XDR 3,2 ГГц через центральный процессор (максимум 480 МБ). Несмотря на то, что он выполняет основную часть графической обработки, Cell Broadband Engine, центральный процессор консоли, также используется для выполнения некоторых вычислительных задач, связанных с графикой.

Таблица скоростей

Процессор 256 МБ XDR 256 МБ GDDR3 Cell Чтение 16.8 ГБ/с 16 МБ/с (15.6 МБ/с @ 650 МГц) Cell Запись 24.9 ГБ/с 4 ГБ/с RSX Чтение 15.5 ГБ/с 22.4 ГБ/с (20.8 ГБ/с @ 650 МГц) RSX Запись 10.6 ГБ/с 22.4 ГБ/с (20.8 ГБ/с @ 650 МГц)

Из-за очень низкой скорости чтения данных Cell из памяти GDDR3 объемом 256 МБ, для Cell более эффективно работать с XDR, а затем RSX извлекать данные из XDR и записывать их в GDDR3 для вывода на дисплей HDMI. Именно поэтому в RSX были добавлены дополнительные инструкции для поиска текстур, позволяющие загружать данные из памяти XDR (а не из локальной памяти GDDR3).

Библиотеки RSX

RSX предназначен для 3D-графики, и разработчики могут использовать различные библиотеки API для доступа к его функциям. Самый простой способ — использовать PSGL высокого уровня, который по сути представляет собой OpenGL|ES с добавленным программируемым конвейером, однако он непопулярен из-за накладных расходов на производительность на относительно слабом центральном процессоре консоли. На более низком уровне разработчики могут использовать LibGCM — API, который формирует буферы команд RSX на более низком уровне. (PSGL фактически реализован поверх LibGCM). Это достигается путем настройки команд (через FIFO Context) и объектов DMA и отправки их в RSX посредством вызовов DMA.

Отличия от архитектуры G70

RSX "Реалити Синтезатор" основан на архитектуре G70, но имеет несколько изменений в ядре. Основное различие между этими двумя чипами заключается в организации работы пропускной способности памяти. G70 поддерживает только рендеринг в локальную память, в то время как RSX способен выполнять рендеринг как в системную, так и в локальную память. Поскольку рендеринг из системной памяти имеет значительно большую задержку по сравнению с рендерингом из локальной памяти, архитектура чипа была модифицирована, чтобы избежать снижения производительности. Это было достигнуто за счет увеличения размера чипа для размещения более крупных буферов и кэшей, чтобы поддерживать графический конвейер заполненным. В результате, RSX обладает всего 60% пропускной способности локальной памяти от G70, что требует от разработчиков использования системной памяти для достижения целевых показателей производительности. Различная плотность транзисторов на кристалле, а также неравномерная нагрузка на отдельные его части приводят к тому, что одни участки кристалла нагреваются быстрее других. Это вызывает разное расширение различных частей, что в конечном итоге приводит к более быстрому выходу из строя отдельных элементов BGA RSX по сравнению с другими. Происходит электромиграция в BGA, приводящая к образованию пустот внутри паяльного соединения. Эти пустоты ускоряют отказ BGA. В PS3 RSX был упакован с использованием технологии Flip Chip Ball Grid Array (FCBGA). Подложка (underfill), используемая в RSX, имеет очень низкую температуру стеклования (Tg) по сравнению с рабочей температурой PlayStation 3 во время интенсивных игровых сессий. Это приводит к тому, что она переходит в состояние, когда не обеспечивает достаточной поддержки паяльного соединения между кристаллом и интерпозером.