Nanashi-soft○プログラマ専用○PS3 Linux SDL○
Intel/AMD系システムとは異なり、複雑な構造を持つ為、まずは全体の仕組みを知る必要がある
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には用意されています