単純なアーキテクチャにより高性能かつ高効率なプロセッサを目指したRISCだが,現在はアウトオブオーダーやレジスタリネーミング,スペキュレーション,条件分岐などにより肥大化し,実際の計算に費やされるハードが小さくなりすぎている.そこでtrasmetaはそれらの複雑な制御をコンパイラによってソフトウェアに移し,ハードを単純にしてまた高速に動作するようにした.この方針に間違いはなかったが,拡大し続ける実行ユニットとRAMの間のレイテンシギャップのため,TMは期待された性能は出なかったのは周知の事実である.しかし,Cellがこの方針が間違っていなかったことを示すだろう.
ということで,transmeta好き(?)によるCellの解説です.
Cellは1個の64bit PPCと8個のSPEを持つマルチコアプロセッサだ.SPEはレジスタリネーミングや命令のリオーダリングといった機構を持たないPowerPC 601世代のとても単純なプロセッサになっている.ただ2つの点でSPEは昔のRISCとは異なる.まず,SIMD演算に適応していること,またL1キャッシュの代わりにローカルメモリ(LS)を持つ事.この結果,SPEはコアというよりもう一つの小さなベクトルコンピュータと言える.キャッシュではなくLSにしたため,タグレジスタや比較を行うロジックが減らせるという利点がある.
Cellは小さなベクトルコンピュータを沢山詰め込みました,って事なのかな?RISCと同様に性能を発揮するかはコンパイラの問題になりそう.プログラミングスタイルも大分変わりそう.
あと,SPEはMMUも持つわけですがそれで仮想記憶,つまりLSとL2または外部メモリとのスワップを行うようになると結局やってることはキャッシュなわけだよね.そんなに革新的でないかも?むしろ製造プロセスとか温度制御とかメモリ周りとか,そういった点がCellの凄いところなのかもしれない.
SPEは外のメモリとアクセスするときにDMAを使うんだけど,そういう設計がEmotion Engineぽい気がする.自立したVPUを沢山持つと言うイメージでもいいのかも?
pc.watch.impress.co.jp/docs/article/20000302/kaigai02.jpg Cellはネットワークを介した巨大なグリッドコンピューティングを目指すという話がありますが,Cellの内部もそういった思想があるのかもしれない.なんか原子と太陽系における相似像みたい.広がり続けるレイテンシを隠蔽するにはこういった階層的なグリッドが有効な気がする.細胞が人間を作り,人間が組織を作り,組織がさらに大きな組織を作るみたいな,大袈裟だけど単純な細胞が階層的に結びつくことにより想像もできない概念や世界を作り出す人間社会にも似ている.と妄想.
CellのSPUの命令セット
spin.s2c.ne.jp/index.html
PlayStation 3に搭載されるCellの性能
pc.watch.impress.co.jp/docs/2005/0209/kaigai154.htm
CellプロセッサーとPS2のCPU“Emotion Engine”との大きな違いとは?
ascii24.com/news/i/tech/article/2005/02/09/654178-000.html プログラマブルシェーダーを凌駕するSPE
ascii24.com/news/i/tech/article/2005/02/08/654150-001.html 素人がごたごた書いたものを読むより,素直にメディアが流しているしっかりした記事を読んだほうがいいですね.自分で言うのもなんですが.ってこの記事よく書けてるなあと思ったら西川善司さんじゃないですか.ただ,「1次キャッシュくらいは云々」に関してはちょっと見当違いのことを言っているように僕には思えますが(プログラムやデータが置かれるLSがキャッシュと同等のレイテンシなのだから実装する意味がないはず).
Intel C++ Compilerの最適化技術を検証する
www.cmagazine.jp/devreport/IntelC/html/ICC07.html あんまり関係ないけど,そういうハードを単純化しようという方向性はIntelだって当然考えてるわけです.けどやっぱりx86を駆逐するほどの力はないんだよねえ.どうなっちゃうんだろうItaniumは.