このページの本文へ

【ISSCC 2005 Vol.3】Cellの中枢“SPE”の仕組みと、気になるPlayStation3の消費電力――ISSCCのセッションから読み解くCellプロセッサーの詳細 その2

2005年02月10日 19時13分更新

文● 西川善司(トライゼット)

  • この記事をはてなブックマークに追加
  • 本文印刷
Cellプロセッサーのダイ写真。8つのSPEはそれぞれが独立した128bit SIMDのベクトルプロセッサーで、ダイ内部でも大きな面積を占める
Cellプロセッサーのダイ写真。8つのSPEはそれぞれが独立した128bit SIMDのベクトルプロセッサーで、ダイ内部でも大きな面積を占める

Cellプロセッサーの核、SPEの詳細とは

半導体関連学会“ISSCC 2005(International Solid-State Circuits Conference 2005)”で行なわれた、Cellプロセッサーの詳細についてのセッション“7.4 A Streaming Processing Unit for a Cell Processor(Cellプロセッサーのストリーミングプロセッシングユニット)”では、Cellプロセッサーの一番のトピックである“SPE(Synergistic Processor Element)”の詳細が解説された。本稿では前回の記事に引き続き、セッションの内容からSPEの可能性について考察してみる。

第1世代Cellプロセッサーに8基搭載されることになったSPEは、ストリームデータを処理することに長けた128bit SIMDタイプのRISCプロセッサーである。汎用CPU的なPowerPCコアのPPE(Power Processor Element)に比べると、やや特殊な性格を持ってはいるが、講演では“汎用ソフトウェア実行のポテンシャルを持つ”と言われていた。SPEのプログラム開発には、フルスペックのCやC++などの高級言語を用いることができるとのことで、高級言語のサブセット的なものでしかプログラミングできない現行のパソコン用GPU(GeForce 6x00やRADEON Xx00など)のプログラマブルシェーダーユニットよりも、プログラム開発は容易になる。

SPE部分のダイの拡大写真。LS0~LS3は合計256KBのローカルストアーメモリー SPEのブロックダイアグラム
SPE部分のダイの拡大写真。LS0~LS3は合計256KBのローカルストアーメモリーSPEのブロックダイアグラム

SPEはDMAユニットを経由してのメインメモリーへのアクセス能力はあるが、実際のプログラム実行はSPE内の“ローカルストアー(Local Store)”とよばれる256KBの内部メモリー上で行なわれる。つまりDMAを通じてメインメモリーからプログラムやデータを内部メモリーに転送し、そこで実行する形となる。

SPEの命令長は32bit固定長で、3ソースレジスター、1ターゲットレジスターという命令形式になる。つまり3つの引数レジスターで計算を行なって、結果を1つのレジスターに収めるというスタイルだ。レジスター数は128本あり、命令ワード長はオペランドが4bit、3つのソースレジスターが7bit、ターゲットレジスターが7bitという内訳になる(32=4+7+7+7+7)。レジスターは浮動小数点実数(FP)と整数(INT)で共有される。SPEは128bit SIMD演算ユニットであり、基本的に演算は常に128bit長のデータ(たとえば4要素32bit長のベクトルデータ)に対して行なわれる。

命令セットの大まかな内容についても解説された。整数基本演算や32bit単精度の浮動小数点実数(FP32)の4要素ベクトルの積和算、論理基本演算、比較、ビットシフト・ローテートなどの一般的な命令セットが用意される。これらに加えてSPE特有の命令として、PPEや他SPEとの連動を行なうチャンネルI/O命令や、メディアデータ処理に特化した命令群(詳細は未公開)も用意されるという。

分岐命令の実行もサポートされるが、分岐予測ミスの発生時は18サイクル分のペナルティーが生じる。SPEはハードウェアによる分岐履歴の蓄積機能を持たないので、このペナルティーを避けるために投機的実行処理が行なわれる。具体的には“頻繁に実行されるジャンプ先の命令を、分岐命令の後ろにインラインコードで仕込ませておく”“条件分岐で両パスを投機的実行してしまう”“分岐先アドレスをフェッチしておく”といった処理が行なわれる。インラインコードうんぬんのテクニックは、コンパイラーと連動したテクニックだと思われる。

先にSPEは2命令同時発行と報じたが、これはインオーダー発行で、相互に依存関係にある命令は発行できない。しかも2つあるパイプラインのうち片方が演算系、もう片方がその他の実行系(読み書き、分岐など)というふうに、パイプラインごとの分担が明確化されている。よって2命令同時実行を達成するには、コンパイラーによるプログラムの最適化が必要不可欠になる。

SPEの各命令ごとのレイテンシー。演算系命令はすべてEvenパイプライン(アドレス+0にストアされている命令を実行するパイプライン)で、それ以外はOddパイプライン(アドレス+4にストアされている命令を実行するパイプライン)で実行される。効率よい実行を得るにはコンパイラーによる最適化が必要不可欠。表中下の“Single Precision”はミスプリントで“integer(整数)”が正しい。浮動小数点実数演算よりも整数演算の方がパイプラインが深く、レイテンシーが大きいのは型変換のため。つまりSPEにはFP演算器しかなく、この点でもプログラマブルシェーダーによく似ている。
SPEの各命令ごとのレイテンシー。演算系命令はすべてEvenパイプライン(アドレス+0にストアされている命令を実行するパイプライン)で、それ以外はOddパイプライン(アドレス+4にストアされている命令を実行するパイプライン)で実行される。効率よい実行を得るにはコンパイラーによる最適化が必要不可欠。表中下の“Single Precision”はミスプリントで“integer(整数)”が正しい。浮動小数点実数演算よりも整数演算の方がパイプラインが深く、レイテンシーが大きいのは型変換のため。つまりSPEにはFP演算器しかなく、この点でもプログラマブルシェーダーによく似ている。

SPEの消費電力から見えてくるCellプロセッサーの消費電力

同講演では、Cellプロセッサーを特定の電圧と各動作周波数で実行した際に、SPEの消費電力と温度がどうなるかをまとめた表が公開された。

たとえばクロック周波数4.0GHzの場合、SPEは1.2V駆動で6Wを消費する。1個あたり6Wだから8SPEで48W。PPEやその他のロジックの消費電力がこれに加わるので、ダイ写真からダイ全体の面積とSPE1基あたりの面積の比率からおおざっぱに推察すると、Cellプロセッサー全体の消費電力はおおむね64Wくらいだろうか。PlayStaion3ではCellプロセッサーに加えて、あの電気食いで知られる米エヌビディア社のグラフィックスチップが搭載されるわけで、仮にグラフィックスチップが同じくらいの消費電力だとすれば、その2チップだけで120W強になる。その他の光学ドライブやらサウンドチップなどの周辺デバイスまでも考慮したら、PlayStation3の消費電力は150Wを下らないことになる。ワークステーションならばこれでもいいだろうが、家庭用ゲーム機としてはいささか高すぎる値に思える。

第1世代のCellプロセッサーのクロック周波数は4.0GHz~4.5GHzと報じられたが、このクロックで動作させるのはワークステーション用で、PlayStation3では消費電力の低減を狙って、もっと低いクロック周波数で動作させるかもしれない。

SPEの電圧と動作周波数、消費電力、動作温度の関係表。1.2Vでクロック4GHzだと、SPE部分は46度になる Cellプロセッサーの熱分布図。CPUコアであるPPE周辺はかなり熱いことが分かる
SPEの電圧と動作周波数、消費電力、動作温度の関係表。1.2Vでクロック4GHzだと、SPE部分は46度になるCellプロセッサーの熱分布図。CPUコアであるPPE周辺はかなり熱いことが分かる

カテゴリートップへ

注目ニュース

ASCII倶楽部

プレミアムPC試用レポート

ピックアップ

ASCII.jp RSS2.0 配信中

ASCII.jpメール デジタルMac/iPodマガジン