3DゲームファンのためのPS3アーキテクチャ講座

http://www.watch.impress.co.jp/game/docs/20060329/3dps3.htm
わかりやすく現在の問題点がまとめられています。
私の拙い経験(DSP)+コケスレの考察から見てやばそうと思えるポイントに対する意見を書いてみます、

PPE

アウトオブオーダー実行ユニットを持っていない(これはTiDSPのVelociTiも同じ)のでパフォーマンスを引き出すには優秀なコンパイラか、手動でアセンブラレベルのチューニングが必要らしいです。
記事を読む限りどうも後者の対策を取らなければならないようで、開発が困難になると考えられます。

SPE

メインメモリに直接アクセスできず、MFCと言うDMA経由でバルク転送をしなければいけないそうです。
DMA転送を行う時点でレイテンシが発生してパフォーマンスが落ちます。
しかも処理を自動的に割り振るIBMコンパイラが完成していないのでプログラマが処理のタイミングを考えながら実装しなければいけなく、開発が困難に…
しかもプログラム+データで256KB以内という範囲に処理を区切ることも同時に考えなくてはならないと言う別の課題も、さらに分岐予測機構がないので分岐もできるだけ少なく…といろいろ考えることが多いです。


PPEは自分の処理をしながらDMA×7の面倒まで見なければいけない…


ET2005に出品されていた東芝のデモ機とかを見るに、ゲームのようなランダム性の高いアプリケーションには向かず、ビデオのデコードのような流れてくるストリームをひたすら処理するのに向いたプロセッサじゃないのだろうか、CELLって…

RSX

年末まで延びるとコアクロック・メモリバンド幅・メモリクロックともに旧世代に成り下がりそうです。
一応CELLとの間がPCI-EXより高帯域なFlexIOを使っているので一部の処理をCELL側にやらせることも(論理的には)可能らしいが、それのための開発が…

ついにOpenGL ESまで間に合わなく

ただでさえDirectXに比べると使いにくいと言われているOpenGL(しかも組み込み用のES)が開発用言語だったのですが、OpenGLすら間に合わないそうです…


特にSPE周りのメモリに直接アクセスできずにコードデータサイズを考えながらDMAのスケジュールも合わせて考えるってところが地獄だと思います。
入出力にのみ使っているTIのDSPですらかなり面倒だったので相互にデータをやり取りしないといけないCELLだと…


あと現在のコンパイラだと処理をPPE側とSPE側に明示的に分けて作らなければいけないようで、そこも大変だと予想されます。


全体的に"理論値が出れば最速、失敗するとすぐ遅くなる"というN64みたいなマシンです。
MSのような開発環境で自動化するならともかく、普通に作っていると最大パフォーマンスを引き出せるのは数年後とか言うオチになるのでは…