後藤弘茂のWeekly海外ニュース

PCを遙かに超える、Cellのメモリ/IO帯域




●Cellのメモリ帯域はXDR DRAMで25.6GB/sec

 Cellプロセッサは、メモリインターフェイスと複数のチップ間接続インターフェイスを内蔵したシステムチップだ。そして、高パフォーマンスのプロセッシング能力に合わせて、各インターフェイスの帯域も極端に広くなっている。

 Cellのメモリ帯域は25.6GB/sec。これは、現行のデスクトップPCのデュアルチャネルDDR2-533の帯域8.5GB/secの約3倍。メインメモリとしては極端な広帯域だ。ただし、メインメモリの量は少なく、おそらくPlayStation 3(PS3)では128MBのメインメモリしか搭載されないものと見られる。PS3のメモリが128MBだとしたら、現行のデスクトップPCのメインストリームと比べて1/2〜1/4程度となる。それは、ソフトウェア側にとって、メモリ量を削減するテクニックが要求されることを意味している。

 Cellのメモリ帯域が極めて広いのは、Rambusの新DRAMメモリ「XDR DRAM(Yellowstone:イエローストーン)」を採用したからだ。Cellが実装するメモリインターフェイスは発表ではデュアルXDRで、転送レートは3.2Gbpsとなっている。逆算するとXDRのインターフェイス幅は64bitとなる。デュアルXDRの意味はデュアルチャネルで、1チャネルが32bit幅ということになる。

 XDR DRAMは既存のDDR系DRAMとは異なり、ポイントツーポイント接続形態を取る。XDR DRAMチップのインターフェイス幅は可変で最大で16bit幅「x16」。XDR DRAMは1チップ当たりのインターフェイス幅を狭くして接続するチップ個数を増やすことができる。しかし、PS3のようなアプリケーションの場合は、できる限りチップ数を減らして帯域を大きくするため、XDR DRAMはx16で接続されると推定される。そのため、Cellに接続されるXDR DRAMのチップ個数は4個(64÷16)と推定される。

●新技術を満載したXDR DRAM

 XDR DRAMはピン当たり3.2Gbps以上の高速伝送が可能だ。これは、現行のDDR2-533メモリの約6倍。XDR DRAMはパラレル型のインターフェイスを使うのに、シリアル型インターフェイスのPCI Expressよりも高速な伝送が可能だ。XDR DRAMが高速に伝送できる理由はいくつかある。

(1)ポイントツーポイント接続
(2)スキューを事実上なくす技術「FlexPhase」
(3)クロック当たり8ビットのデータ転送
(4)小さな電圧振幅
(5)オンチップアクティブターミネーション

 現在のDRAMは複数のDRAMチップが1つのチャネルに接続される1対多のマルチドロップ型接続だが、XDR DRAMはコントローラとDRAMチップが1対1で接続されるポイントツーポイント接続を取る。これは、DDR3などと同じ考え方だ。

 これまでは、パラレルアーキテクチャで高速伝送をしようとすると必ずピン間の伝送タイミングのずれであるスキューが問題になった。Rambusはこのスキュー問題を解決するために、「FlexPhase」と呼ぶ技術を開発した。Cell側のインターフェイスが伝搬遅延を最初から計算して、各ピン毎に異なるタイミングでデータの伝送を行なう。どのピンの信号も同時にDRAMチップに届くように、最初からタイミングをずらしてしまうわけだ。

 また、XDR DRAMではデータ転送は「Octal Data Rate(ODR)」と呼ぶ技術で、外部クロックの4倍のクロックを生成、その内部クロックの両エッジに同期するデータレートで転送する。その結果、外部クロックの8倍の転送レート、つまり外部400MHzなら3.2Gbpsの転送になっている。

 さらに、XDR DRAMではシグナリング技術も新しい「Differentila Rambus Signaling Level(DRSL)」に変わった。電圧は1.0Vから1.2Vで、振幅を200mVと小さくする(RDRAMは800mV)ことで高速化を容易にした。また、終端抵抗(ターミネーション)もオンチップに内蔵し、抵抗値をアクティブに変更できるようにした。

●256Mbitチップならメモリ量は128MB

 Rambusは、狭いインターフェイス幅で広いメモリ帯域を実現することを基本的な思想としている。同社の技術を使うと、DRAMのチップ個数を抑えながら、極めて広いメモリ帯域が得られるわけだ。その出発点だったRDRAMは、PlayStation 2に2チップ構成で3.2GB/secという当時としては画期的な広帯域をもたらした。

 XDR DRAMは、その思想を押し進めた技術で、主流DRAMとの転送レートの差をさらに広げた。そして、Cellでは接続するDRAMチップ数も、PS2のEmotion Engineの2チップから4チップに増えた。そのため、PS3では、PCとのメモリ帯域の差は3倍にまで広がると見られている。

 当初、XDR DRAMは512Mbit品から製造に入る予定だった。これは、SCEIがDRAMベンダー側に要求している仕様が512Mbitだったからだったと言われている。この仕様の通りだとしたら、4チップでメモリ容量は256MBになっていたはずだ。しかし、2004年7月の「Rambus Developer Forum(RDF) Japan 2004」で、XDR DRAMベンダー各社の示した製品ロードマップでは、製造に入るチップ容量は半分の256Mbitに変わっていた。この計画が変わっていなければ、PS3に搭載されるXDR DRAMは256Mbit品になると推定される。その場合は、PS3に搭載されるメモリは256Mbitチップが4個で合計128MBになる。

 現在はまだ、この128MBがCellのメインメモリ専用なのかグラフィックス処理を担当するメディアプロセッサとの共有なのかはまだわからない。どちらも考えられるからだ。例えば、Cellと組み合わせられるメディアプロセッサ側にも、デュアルチャネルのXDRインターフェイスがあり、4個のXDR DRAMチップが接続されていたら、PS3は合計8個のXDR DRAMチップを搭載していることになる。その場合は、PS3はシステム全体で合計で256MBのメモリを搭載し、約51.2GB/secのメモリ帯域を備えることになる。

●圧倒的な帯域のチップ間インターフェイス

 Cellは、チップ間インターフェイスに新技術「FlexIO(Redwood:レッドウッド)」を採用する。FlexIOもRambusが開発した技術で、XDR DRAMと類似性の高い技術を使う。そのため、パラレルインターフェイスでありながら、PCI Expressよりもはるかに速い最高6.4Gbpsの転送レートを実現する。

 CellのFlexIOインターフェイスの幅は12bytes=96bits。各信号線は最高6.4Gbpsの転送レートなので、96bit幅で帯域は最大76.8GB/secとなる。PCI Express x16でさえ帯域は8GB/secなので、PCI Express x16の10倍近い帯域をCellのFlexIOは備えていることになる。

 FlexIOは伝送(TX,Transmit)と受信(RX,Receive)が非対称となっており、Cellから他チップへの伝送(下り)が7bytes(56bits)、他チップからCellへの受信(上り)が5bytes(40bits)となっている。帯域では、下りが44.8GB/sec、上りが32GB/secとなる。下りの帯域が大きいのは、GPUが接続されることを考慮しているからだという。GPUの場合は、相対的に下りのデータ転送の方が多くなる。

 Cellでは、この96bit幅のインターフェイスを、2つのインターフェイスに自由にコンフィギュレートできる。組み合わせる場合の、インターフェイスの最小単位は8bitsだ。例えば、インターフェイス0が下り16bits/上り16bits、インターフェイス1が下り42bits/上り24bitsといった組み合わせが可能だ。

 Cellでは、FlexIOを、GPUやI/Oチップとの接続や、Cell同士の相互接続に使うという。PlayStation 3の場合には、接続されるのチップは、1つがGPU、もう1つがおそらくI/Oプロセッサになると推定される。I/Oプロセッサが、PlayStation 2の場合のように1世代前のPlayStationのメインチップを含むとしたら、そこにEEとGSが内蔵されることになる。

 GPUとI/Oチップを接続すると仮定して、どの程度の帯域が割り振られるのかを推定してみよう。もし、I/Oチップ接続のインターフェイスを、16bit/16bit幅で構成するなら双方向で25.6GB/secとなる。これは、PCI Express x16の4倍の帯域で、I/Oチップを接続するとしたら、これで十二分だ。もし、I/Oチップ側を16bit/16bit幅とするなら、GPU側の接続は必然的に下り40bit/上り24bit幅となり、帯域は下り32GB/sec、上り19.2GB/secとなる。合計で51.2GB/secの帯域で、常識的に考えるなら過剰だ。ただし、メモリ帯域は25.6GB/secなので、FlexIOに接続されたGPUがメインメモリを共有するとしたら、この帯域で最大帯域的には釣り合うことになる。もっとも、この膨大な帯域はCPU同士の接続のためで、PS3での実装では、フルの帯域を使わない可能性もある。

 FlexIOの配線は一般的なプリント配線基板である「FR4」で対応できるという。つまり、PS3の製造で、特殊な基板を使う必要はないわけだ。

 CellへのFlexIOの実装では、実際には6つのセルに分かれている。各セルにはTXとRXのモジュールが8bit分づつ含まれており、1つのセルだけがTXとTXの組み合わせとなっている。Cell上で、FlexIOは13.1平方mmのダイエリアを占めている。トランジスタ数は360万で消費電力は8bitのTXとRXのペアで1.03W(6.4GB/sec時)となっている。つまり、FlexIOインターフェイスがフルに動作するとそれだけで6Wを消費するわけだ。

想定されるPS3での外部チップの構成図
PDF版はこちら

□関連記事
【2月9日】【海外】PlayStation 3に搭載されるCellの性能
http://pc.watch.impress.co.jp/docs/2005/0209/kaigai154.htm
【2004年7月9日】【海外】PlayStation 3のスケジュールは変更なし、メモリ仕様は変更へ
http://pc.watch.impress.co.jp/docs/2004/0709/kaigai101.htm
【2004年12月27日】【海外】NVIDIAが作るPS3メディアプロセッサのアーキテクチャ
http://pc.watch.impress.co.jp/docs/2004/1227/kaigai145.htm

バックナンバー

(2005年2月11日)

[Reported by 後藤 弘茂(Hiroshige Goto)]


【PC Watchホームページ】


PC Watch編集部 pc-watch-info@impress.co.jp 個別にご回答することはいたしかねます。

Copyright ©2005 Impress Corporation, an Impress Group company. All rights reserved.