Есть и альтернативное и кажется более корректное мнение
http://forum.gameland.ru/m.aspx?m=1058252 Ужас и красота программирования для PlayStation 3 так сказать это перевод с английского оригинала
http://playstation-disorder.com/comment ... log_id=795&; ------------------------------------------------------------ Ужас и красота программирования для PlayStation 3. Какое одно из самых больших предубеждений, когда людей спрашивают о PS3? Я думаю самое большое это, что “для PlayStation 3 сложно программировать, гораздо сложнее, чем для других платформ”. Скажем так, что это заявление в такой форме - глупость. Сравнивая, скажем с PS2, PS3 - это большой шаг вперед. Если на PS2 приходится писать на ассемблере (с помощью машинного кода) буквально все, что касается сложных частей программ, то на PS3 в большинстве случаев все можно сделать с помощью кода на С++ или С. И это справедливо даже для синергических вычислительных элементов (SPE) процессора Cell, в которых и заключается основная разница в программировании. Перед тем как начать, мне следует сделать несколько оговорок, т.к. сама статья, а также данные, на который она ссылается, являются сложноперевариваемым материалом для неподготовленного читателя. Однако, я попытался использовать, где это было возможно, общую терминологию. Я также дал несколько ссылок на статьи в Wikipedia, которые более подробно объясняют некоторые технологии, приведенные в этой статье. Ужас. Конечно, большинство людей считают, что весь ужас программирования заключается в том факте, что все next-gen консоли, как и современные компьютеры, основаны на многоядерной архитектуре, т.е. несколько ЦПУ могут быть использоваться в любое время для обработки самого разного кода параллельно для достижения того, что мы называет next-gen геймплеем. В общем случае нам все равно, как что работает на разных платформах, различий мы не заметим. Разница станет очевидна только тогда, когда мы заглянем во внутрь,т.е. посмотрим на работу различных ЦПУ, используемых на разных консолях. Начиная с XBox 360, мы найдем так называемый Xenon - ЦПУ, состоящий из 3 симметричных PPC ядер, каждое из которых способно выполнять 2 потока задач одновременно. Каждое из ядер содержит дополнительный векторный вычислительный узел, который используется для быстрых векторных операций. Все эти три ядра - самые обыкновенные ЦПУ общего назначения и программируются совершенно одинаково, при этом используются одни и те же ресурсы оперативной памяти, что делает программирование многопотокового кода сравнительно легкой задачей, хотя бы потому, что при этом используется одна и та же модель программирования. Компьютеры аналогичны этой модели в плане того, что все последние чипы от Intel и AMD используют симметричные много-ядерные технологии, которые имеют все те же достоинства и недостатки при многопоточном программировании. В отношении Cell все выглядит немного по-другому: одной из целей при создании процессора было достижение лучшего соотношения производительности и размера. Это было достигнуто путем нарушения большого количества принципов построения процессоров, которые использовались до этого. Во-первых, Cell не является полностью симметричным, рассматривая его с точки зрения технологий Xenon или Intel/AMD. Далее хуже. Во-вторых, Cell не предоставляет таких дорогих нестандартных процессорных возможностей, как прогнозирование ветвления, которые не позволяют конвейерам ЦПУ простаивать. Все это должно быть сделано программно, т.е. программистом или компилятором. Cell состоит из одного двухпотокового PowerPC элемента (PPE), очень похожего на одно ядро Xenon, который выполняет роль “дирижера” в своеобразном “оркестре”, состоящим из 7 Синергических Вычислительных Элементов (SPE), которые являются симметричными ядрами, и сильно упрощены по сравнению с PPE. Для простоты понимания, считайте ядра SPE очень быстрыми и гибкими векторными узлами. При этом следует учитывать, что одно из SPU предназначено для фоновых задач операционной системы PS3 (фоновое скачивание и т.п.) На рис. 1 показано, что PPE и все SPE соеденены друг с другом через очень быструю межэлементную шину (EIB), кольцевую шину, которая позволяет “общаться” PPE с SPE, а также всем SPE друг с другом. В завершение, доступ к памяти осуществляется через EIB и через различные контроллеры памяти и ввода-вывода. Что интересно: Несмотря на то, что PS3 имеет отдельную память для Cell и для RSX, память PS3 своего рода унифицирована с той стороны, что RSX имеет доступ к различным видам памяти со максимальной скоростью 20 GB/s. Благодаря этому, архитектура PS3 объединяет в себе лучши свойства обоих архитектурных “миров”: разделенная память (отсутствие проблем с “конкурирующими” областями памяти), но в тоже время ГПУ имеет возможность использовать для своих целей другой вид памяти. К примеру, XBox 360 использует единую объединенную модель памяти, где нет разделения на различные виды памяти, но существует проблемы ее совместного использования ЦПУ и ГПУ. Однако, с программистской точки зрения, работать с XBox 360 проще, т.к. нет необходимости принимать решения о том, куда помещать те или иные данные. Еще одна сложность, с которой сталкивается программист, это подача и получение данных от и из ядер SPE. В связи с тем, что SPE - это очень простой вычислительный модуль, он имеет в своем распоряжении относительно маленькую локальную память (LS) размером в 256 KB. Эта память используется для хранения маленьких программ, которые работают используя один SPE в единицу времени. Данные, которые необходимы для программы, обрабатываемой SPE, поступают из основной памяти через контроллер DMA, и необходимо, чтобы они поступали вовремя. Аналогично с чтением данных. Помимо этого может возникнуть необходимость передачи данных другому SPE после их обработки первым элементом. Позвольте мне сделать последнее замечание об архитектуре PS3, перед тем как мы рассмотрим ее положительные стороны. В общем целом архитектура PS3 очень схожа с PS2, если