Nanashi-softプログラマ専用PS3 Linux SDL


◇PS3 Linux SDLでプログラミング -仕様の確認-

Intel/AMD系システムとは異なり、複雑な構造を持つ為、まずは全体の仕組みを知る必要がある

○CPU

Cell Broadband Engine (俗にセルプロセッサと呼ばれている)

Cellとは全体の総称であり、実際には 1つの大きな CPUと、7つの小さな CPUがマザーボード上に乗っている

・PowerPC Processor Element (通称 PPE)×1基
内部に SIMDの VMXを 1基持つ
高速切り替えの 2スレッド構造を持ち、マルチコアのように計算する事ができる(バスは1本)

実測したところ、2スレッド実行で通常の 1.5倍程の性能が出ていた

・Synergistic Processing Element (通称 SPE)×8基
各内部に SIMDの SPU SIMDを 1基持つ
1基はハード的にオフになっており、使用できない
1基は XMBが使用している為、Linuxからは使用できない
故に、PS3 Linuxから見れば、6基と言う事になる

実測したところ、2基で PPE1基分程の計算能力を持っていた
Intel/AMD系のマルチコア以上に、スレッド処理がポテンシャルを引き出すカギとなっている

○メモリ

・メインメモリ
256MB
但し、XMBに 64MB取られ、Linuxシステムにも取られている
実際にプログラムで使用できるのは 100MBも無いと思われる

・SPE内部メモリ
256KB×7基
それぞれの内部にある
この中に実行するプログラムや変数も格納する必要がある
MFCを介して少しずつデータを持ってこないと収まりきらない

・RSX内臓ビデオメモリ
256MB
現状は RSXは隠蔽されており、フレームバッファでしか使用できない(2007/2現在)
但し、従来からある DMAアクセラレーションは有効らしい
SDLから全体を使用できないのは、SDLが対応し切れていないのか、ドライバで制限されているのか不明(2007/2現在)

○ビッグエンディアン

最大の注意点として、エンディアンが Intel/AMD系システムとは異なる
早い話が Int型をそのままセーブしたりすると、Windowsや Intel Macとの互換性が取れなくなる

ビッグエンディアンは、01 02 03 04 05 06 07 08と先頭から順に並んで格納している
リトルエンディアンは、05 06 07 08 01 02 03 04のように、上下16バイトが反転して格納されている

エンディアン問題を解決する為のマクロ SDL_Swap32が SDLには用意されています


TOPプログラマ専用PS3 Linux SDL

ネコミトリ 詰めロイヤルマリッジ+メイナの実験場~むちむち子猫+~メイナの実験場~ナース服大好き+~