Cellは非対称マルチコアで革新を狙ったが‥‥

2006年出荷開始
Cell Broadband Engine
Cell Broadband Engine(Cell/B.E.)
Cell(正式名称「Cell Broadband Engine」、略称Cell/B.E.)は、ソニー、ソニー・コンピュータエンタテインメント(SCE)、IBM東芝 の4社(STI連合)が共同開発し、2006年(平成18年)にPlayStation 3 へ搭載された64ビットマイクロプロセッサである。制御用コア「PPE」1個と演算用コア「SPE」8個を組み合わせた非対称ヘテロジニアス・マルチコア構成を採用し、当時の汎用PC向けCPUの約10倍のスループットを実現した。

目次

開発の経緯

Cell Broadband Engine ダイ写真
Cell Broadband Engine ダイ写真
2001年(平成13年)3月9日、ソニー・コンピュータエンタテインメントIBM東芝 の3社は、ブロードバンド時代に向けた超並列プロセッサの共同研究開発に合意した。同月、米テキサス州オースティンのIBM開発拠点内に「STIデザインセンター」が開設され、3社の技術者が結集して本格的な開発が始まった。

開発は難航し、2004年(平成16年)11月にようやくISSCC(国際固体素子回路会議)向けの論文が提出され、2005年(平成17年)2月の同会議で概要と試作品が初公開された。同年5月17日のE3 では、PlayStation 3 搭載版が3.2GHz駆動・1PPE+7SPE構成であることが明らかにされた。ソニーは2003~2006年度にCellの生産設備へ総額約5000億円を投じている。

非対称マルチコア構成とローカルストア構造

Cellのアーキテクチャ図
PPEとSPEによる非対称マルチコア構成
Cell は1個のマイクロプロセッサに9個のコアを持つ。制御を担う汎用コア「PPE」(PowerPC Processor Element)1個と、演算に特化した単純なコア「SPE」(Synergistic Processor Element)8個(歩留まり向上のため1個は不使用)を組み合わせた非対称(ヘテロジニアス)マルチコア構成である。

PPE・SPEともに、PowerPC G5Pentium 4 のような複雑なアウトオブオーダー実行 や分岐予測機構を持たない。命令のスケジューリングを単純化することで高クロック化を実現しており、複雑な条件分岐を伴う整数演算は不得手だが、並列化された演算処理には威力を発揮する設計である。

SPEはキャッシュメモリ を一切持たず、代わりに256KiBのSRAM専用メモリ「ローカルストア」(LS)にプログラムとデータを格納して実行する。メインメモリとは独立したアドレス空間を持つためキャッシュコヒーレンシ保持の仕組みが不要となり、処理速度の向上に貢献した。SPEはメインメモリを直接扱えず、DMAでXDR DRAMとLS間を転送する。

PPE・各SPE・メモリインタフェース・IOインタフェースは、超高速バス「EIB(Element Interconnect Bus)」と呼ばれる4系統のリング状内部バスで接続される。最大96バイト/サイクルの伝送能力を持ち、Rambus社のXDR DRAMメモリコントローラ(帯域25.6GB/s)やチップ間接続用インタフェース「FlexIO」(最大76.8GB/s)とあわせて、Cell全体の高いスループットを支えた。

絶大な浮動小数点演算能力

SPEは単精度浮動小数点演算を4スロット、倍精度演算を2スロット同時に処理できるSIMD型のコアで、3.2GHz駆動時に1基あたり25.6GFLOPSの性能を持つ。PlayStation 3 では7基のSPEを搭載し、理論上は179.2GFLOPSに達する演算能力を実現した。
IBMが示した物理挙動シミュレーションとレンダリングの例では、3.2GHzのPentium 4 と比較して2.1GHz駆動のSPE1基で1.5倍、8基で12倍の性能差を記録したという。この並列演算能力により、数値解析・物理シミュレーション・動画や画像処理・音声処理など、大容量データを高速に扱うストリーム・プロセッシング に威力を発揮した。

PCアーキテクチャとの乖離

Cell はPowerPCアーキテクチャをベースとしながらも、既存のパソコン向けCPUとは大きく異なる設計思想を採る。各SPEが独立したメモリ空間(ローカルストア)を持ち、分岐予測などのハードウェア機構も持たないため、通常のマルチプロセッサ向けプログラムがそのまま動作せず、専用のプログラミングモデルの習得が必要であった。
またPowerPC 自体はバイエンディアンだが、Cellはビッグエンディアンに統一されている。こうしたPCアーキテクチャとの乖離は開発者にとって大きな参入障壁となり、対応ソフトウェアの開発が難航する一因となった。

PlayStationへの適用

PlayStation 3 メイン基板
PlayStation 3 メイン基板
CellPlayStation 3(2006年11月11日発売)のCPUとして開発された。GPU「RSX」と組み合わされ、当時の汎用PC向けCPUの約10倍のスループットを発揮したとされる。ソニーは久夛良木健氏の構想のもと、PS3を核に家庭内の複数機器を連携させる「Cellコンピューティング」も提唱した。
PS3以外にも、IBMのブレードサーバー「BladeCenter QS21」、ワークステーション、東芝 の薄型テレビ「CELL REGZA」、ソニーの映像制作機器「Zego BCU-100」など幅広い製品に採用された。しかし久夛良木氏の退任後、Cellコンピューティング構想が語られることはほとんどなくなった。

その後のCPU・GPUへの影響

スーパーコンピューター「Roadrunner」
スーパーコンピューター「Roadrunner」
多数の演算コアで処理能力を高めるCell の登場は業界に衝撃を与えた。インテルAMD などCPUベンダー、さらにはGPUベンダーまでもが、シングルスレッド性能の追求からマルチコア化による処理能力向上へと舵を切るきっかけとなった。GPUを汎用処理にも使う「GPGPU」という発想も、この流れの延長線上にある。
米エネルギー省のスーパーコンピューター「Roadrunner」(改良型Cell「PowerXCell 8i」搭載)は2008年(平成20年)6月、世界初の1ペタフロップスを達成した。Cellが切り拓いたヘテロジニアス・マルチコアという構造は、後年AMD のCPU・GPU一体型プロセッサ「APU」などに受け継がれている。

売却と終焉

2007年(平成19年)10月、ソニーは自社のCell生産設備を東芝 へ売却すると発表した。以後は3社が出資する長崎セミコンダクターマニュファクチャリング(NSM)が製造を担ったが、2009年(平成21年)11月、IBM は次世代Cellの開発中止を発表し、研究開発の幕を閉じた。
2010年(平成22年)12月、東芝とソニーはNSMのウェハーラインをソニーへ譲渡することで合意しNSMは解消された。2011年(平成23年)のCESで東芝は新型テレビにCellベースの回路を採用せず、ソフト開発の難しさもありPlayStation 4 にもCellは採用されなかった。2001年(平成13年)の提携合意から10年、Cellはその役目を終えた。

主要スペック

項目 仕様
開発元 SCE・ソニー・IBM・東芝(STI連合)
発表 2005年2月(ISSCC)
出荷開始 2006年11月(PlayStation 3搭載)
コア構成 PPE×1+SPE×8(PS3では7基搭載、うち1基はOSが占有)
命令セット Power Architecture(PowerPC G5互換)
データ幅 64ビット
ローカルストア 256KiB(SPEごとに独立)
内部バス EIB(Element Interconnect Bus/最大96バイト/サイクル)
メモリ XDR DRAM(帯域25.6GB/s)
チップ間IF FlexIO(最大76.8GB/s)
製造プロセス 90nm(初代)~45nm(後期)
演算性能 SPE1基あたり25.6GFLOPS(単精度、3.2GHz時)
主な採用例 PlayStation 3、Roadrunner、CELL REGZA、BladeCenter QS21等
開発終了 2009年11月(IBM、次世代Cell開発中止を発表)

CPUの歴史

発表年 メーカー CPU名 ビット数 最大クロック
1970年Garrett
AiResearch
MP944 (軍用)20bit375KHz
1971年インテル40044bit750KHz
1974年インテル80808bit3.125MHz
1975年モステクノロジーMOS 65028bit3MHz
1976年ザイログZ808bit20MHz
1978年インテル808616bit10MHz
1979年モトローラMC68098bit2MHz
1979年ザイログZ800016bit10MHz
1980年モトローラMC6800016bit20MHz
1983年NECV3016bit16MHz
1984年インテル8028616bit12MHz
1985年インテル8038632bit40MHz
1985年インテルi96032bit100MHz
1985年サン・マイクロシステムズSPARC32bit150MHz
1985年エイコーンARM132bit6MHz
1986年MIPSR200032bit15MHz
1987年ザイログZ28016bit12MHz
1987年モトローラMC6803032bit50MHz
1988年MIPSR300032bit40MHz
1989年インテル8048632bit100MHz
1989年インテルi86032bit50MHz
1990年モトローラMC6804032bit40MHz
1991年MIPSR400064bit200MHz
1992年DECAlpha 2106464bit200MHz
1993年IBM, モトローラ, ApplePowerPC 60132bit120MHz
1993年インテルPentium32bit300MHz
1994年IBM, モトローラ, ApplePowerPC 60332bit300MHz
1995年サイリックスCyrix Cx5x8632bit133MHz
1995年AMDAm5x8632bit160MHz
1995年サン・マイクロシステムズUltraSPARC64bit200MHz
1999年IBM, モトローラPowerPC G432bit1.67GHz
1999年AMDAthlon32bit2.33GHz
2000年インテルPentium 432bit3.8GHz
2001年インテルItanium64bit800MHz
2003年AMDOpteron64bit3.5GHz
2003年インテルPentium M32bit2.26GHz
2006年SCE,ソニー,IBM,東芝Cell64bit3.2GHz
2006年インテルCore Duo32bit2.33GHz
2006年インテルCore 2 Duo64bit3.33GHz
2008年インテルCore i9/i7/i5/i364bit5.8GHz
2017年AMDRyzen64bit5.7GHz
2020年AppleM1/M2/M3/M4/M564bit3.49GHz
2023年インテルCore Ultra 9 / 7 / 564bit5.1GHz

参考サイト

(この項おわり)
header