【レポート】

Fall Processor Forum 2005 - 進化するPowerPC

1 Xbox 360 CPU

 
  • <<
  • <

1/2

さてFPF(Fall Processor Forum)レポートの最初はPowerPCである。今回のFPFでは、都合5つものPowerPCベースの製品に関する発表がなされることになっている。このうち、今回はIBMがXbox360用に製造したCPUと、P.A.SemiのPowerPC製品についてレポートしたい。

Xbox 360 CPU

まずは何かと興味のあるコレである。3つのPowerPCコアを統合したSoCであるこのXbox 360 CPUについて、今回詳細が語られることになった。Photo02がダイの中身であるが、3つのCPUコアと1MBの共有L2キャッシュ、クロスバースイッチと全部込みで1億6500万トランジスタだから、昨今のCPUのトランジスタ数を考えればそれほど多いともいえない(Photo02)。CPUコアはPowerPCそのもので、CellとかPowerPC970と同一系統のものである。異なるのは2スレッドを同時実行可能なことで、この結果デコーダのissue数などは微妙に異なっている(Photo03)。またダイ面積節約のためか、それともSMTでキャッシュミスの遅延時間をある程度遮蔽できるのか、命令キャッシュのサイズも小さくなっているのがちょっと興味深い。また、FPU及びVMX(Vector/SIMD Multimedia eXtention)に関しては、用途に合わせてちょっと拡張されている。従来のPowerPCでは、SIMDエンジンはAltivecが標準なわけだが、Direct3Dなどへの対応を考えてか、命令が幾つか拡張されている模様で、またベクタレジスタの数も128まで増やされている。FPUとVMXが同時に利用できるとか、ロードバッファも個別に取られるなど、Xbox 360の用途では浮動小数点演算がかなり多くなる事を予想しての強化が著しい感じだ。

Xbox 360 CPUが他のシリーズと大きく違うのは、L2キャッシュがSharedな点だ(Photo05)。結果としてキャッシュコヒーレンシを取る必要性が無い(L1だけ)からこれは賢明だろう。ただ、サイズが1MBというのは、同時6スレッドが走るプロセッサとしてはやはり少なめに感じる。当然このサイズはXbox 360上で走るアプリケーションのプロファイルを考慮しての事だろうが、逆に言えばテクスチャ処理などではテクスチャをメモリ中のNon-Cachable Regionにロードするといった配慮が必要になりそうだ。

そのL2キャッシュだが、Readは最大8つまでのoutstanding load/prefetchをサポートすることで高速化を図る一方、L1のWriteはWrite throughオンリーになっている辺りが特徴的だ。ただこれはちょっと考えれば明白で、マルチコア上でマルチスレッド動作だから、キャッシュのModifyは早く書き込みしないとコヒーレンシ確保の為に他のスレッドがとまる時間が長くなりすぎる。マルチコアシステムにおける宿命のようなものだと言えよう。

もう一つ特徴的なのがFSBの構造である。Xbox 360 CPUの場合、ATIが製造するGPU兼ノースブリッジと一対一接続されて動作する形になるわけだが、ここで接続に使われるFSBのバンド幅は21.6GB/s(10.8GB/s 全二重)に達する。まぁCellのメモリ帯域25.6GB/sとかI/O帯域の76.8GB/sには及ばないわけではあるが、それでもこの帯域はかなり広めである。が、問題はそこではない。

Photo07を見ていただくと判るが、CPU側とGPU側ではハンドリングがだいぶ違う。物理層はどちらも10.8GB/s(内部は次に紹介)で同じだが、その上のLink LayerはCPUが8Byte幅@1.35GHzなのに対しGPUは16Byte幅@675MHz、さらにその上のTransaction LayerはCPUが8Byte幅@1.6GHzなのに、GPUは16Byte幅@700MHzである。Link Layerは(データ幅はともかく)帯域がマッチしているが、Transaction Layerはミスマッチが発生している。この理由についてBrown氏は「そもそもGPUの側はAsyncでの構成になっており、いずれにせよDataLink Layerよりは高速だからこれで問題ない」と語ったが、逆にいえばIBM側はSyncで構成していることになる。そもそもCPU側が1.6GHz動作の理由は、CPUコアの周波数に合わせただけという感じで、Link Layerがどうせボトルネックになるのだから、実際は700MHz動作程度で十分という事なのだろう。

次が物理層になるが、Photo08がその構成である。送受信ともに16bit幅のSingle-Directionalラインで、Source-Syncronous構成、また8bit毎に1本のClock Signalが出る構造である。信号自体は1.1V振幅のCML(Current Mode Logic)ベースとなっている。従って信号線は36本(+Common Groundが何本~十何本か)といったところになるだろう。問題は「これが何か?」という話であるが、どうも今回独自に開発したもので、従来のインタフェースとはまったく互換性がないものの様だ。Photo08を見る限りDifferentialでないから、PCI ExpressやHyperTransport Link、Raserなどではないし、PCI Expressの論理層を借りてきたようにも思えない。旧XBoxとの互換性が必要ならHyperTransport Linkの論理層をかぶせるという案もあるだろうが、その必要性はそもそも無い上、Link Layerから上のバス幅が違うなんていう論理層は今回初めて見る。従ってこのFSBは今回のためにワンオフで策定されたものと考えれば良いだろう。FSB上には2本のVirtual Channelを構成できることになっており、こうしたものまで良く作りこんだと正直感心する思いだ。

Photo01:IBMでMicrosoft CPU ProjectのChief Engineerを勤めるJeffer D. Brown氏。IBM Achademy of Technologyのメンバーでもある。

Photo02:製造はIBMのCMOS 10KEで、90nm SOIに歪シリコンを組み合わせたものである。ダイサイズは168平方mmだそうだ。

Photo03:11FO4というのは、負荷を4つ付けたインバータ11段の意味。パイプライン各ステージはこの時間内に処理を行うことになる。

Photo04:ただ従来のAltivecへの下位互換性は保たれている。

Photo05:CPUとL2キャッシュはこの図だとShared Busで繋がっているように見えるが、実際はクロスバースイッチ(次図参照)なので、例えばL2→CPU Coreの転送だと3つのコアにL2から同時にデータが届くような事はない。

Photo06:xDCBTとはextended Data Cache Block Touchの略。Unixにおけるtouchコマンドの様なものだ。

Photo07:GPU側が700MHz程度の動作なのは、TSMCの90nmプロセスを使って、1.3~1.4GHz動作をさせる事が難しかった(or消費電力が過大になりすぎた)あたりでは無いかと思う。ATI自身、広いバス幅のハンドリングには長けていても、1GHzを超える回路はあまり得意ではない。従ってこのやり方は賢明と言えそうだ。

Photo08:最後に何気なく"6inches of wire"と書いてあるが、5.4Gbpsの信号を15cmも引き回すわけで、よく動くなぁと個人的には感心してしまう。

  • <<
  • <

1/2

インデックス

目次
(1) Xbox 360 CPU
(2) P.A.Semi PA6T/CONEXIUM

人気記事

一覧

イチオシ記事

新着記事