Cell Broadband Engine

概要

Cell誕生のきっかけであったSCEの家庭用ゲーム機である「PlayStation 3」を筆頭に、一部のサーバーやワークステーション、薄型テレビなどの様々な製品に採用された。また、米エネルギー省が保有するスーパーコンピューター「Roadrunner」や、同アーキテクチャーのプロセッサのみで構成されたシステム「QPACE」が、スーパーコンピューターランキングTOP500のみならず電力効率を争うGreen500のランキングも賑わせた。
Cellは年々改良され、90nm→65nm→45nmと微細化された。なお、SCEは「PlayStation 4」にはCellを採用せずAMD社のJaguarコアを採用した。
Cellは独自色が強く普及しなかったが、ヘテロジニアスマルチコアという構造は、2010年代にCPUとGPUをワンチップに収めたAMDのAPU等で普及している。

特徴

Cellはマルチコアに分類され、ひとつのマイクロプロセッサに9つのコアを持っている。内訳には1個の汎用的なプロセッサコアと、8個のシンプルなプロセッサコア（うち1基は歩留まり向上のため非使用）を組み合わせたヘテロジニアスマルチコア（ヘテロジニアス: 非対称、異種混合）という形態をもつ。
汎用プロセッサコアはPowerPC Processor Element (PPE) と呼ばれる制御を担うコアで、8個のコアはSynergistic Processor Element (SPE) と呼ばれる演算を担うコアである。
PPE、SPE共に従来のパソコン向けのマイクロプロセッサであるPowerPC G5やPentium 4、Athlon 64といった高度なアウト・オブ・オーダー実行機能や分岐予測機構を持つマイクロプロセッサとは異なり、命令を並び替えたりするような複雑なスケジューリング機構を搭載しないことでコアを単純化し、高クロック化を実現している。
そのため、複雑な条件分岐を伴う整数演算能力はパソコン向けのマイクロプロセッサと比べ劣るが、強力で高度に並列化された演算機能を備え、数値解析やシミュレーション、動画、画像処理、音声処理などにおいては、複数のコアを並列に動作させることによって、Cellの性能を発揮させることができる。
また、仮想マシン支援機能が搭載されており、複数の仮想マシン上で複数のOS（ゲストOS）を互いに干渉させること無く走らせることができる。通常のOSが動作するスーパーバイザーモードの上位にハイパーバイザーモードがあり、仮想マシンを管理する最上位OSはこのハイパーバイザーモードで動作している。
PowerPCはバイエンディアンだが、Cellではビッグエンディアンで統一している。

PowerPC Processor Element

PPE は64ビットPowerアーキテクチャであり、命令セットはPowerPC G5互換ではあるが、既存のPowerPC系CPUとは異なる内部構造をもつ新設計のコアである。2スレッドを交代に実行することが可能で、スレッドの切り換えが速い事から、OSの駆動などを受け持つ。また、AltiVecにも対応している。
PowerPC Architecture,Book I〜III に準拠することが求められ、中にはBook I〜IIIでのオプション仕様がPPEでは必須になっているものがある。VMXもその一つ。
PPEの浮動小数点演算性能はIBMの示した布シミュレーションの例では、2.4GHz駆動のPPEがPentium 4 3.6GHz相当CPUの20%程度のパフォーマンスしか出ておらず、浮動小数点演算は得意ではないと言え、通常はSPEなどへのリソースマネージメントを行うことになる。
Cellの仕様を満たすためには最低1つは搭載することが求められる。

Synergistic Processor Element

SPE は SIMD系のアーキテクチャで、単精度浮動小数点演算を4スロット同時に処理することができ、倍精度浮動小数点演算を2スロット同時に演算できる。また整数も16ビット値を8スロット、32ビット値を4スロットの演算ができる。以上のようなベクトル演算が可能な128ビット長128個のレジスタを持ち、ソフトウェアパイプライニングなど処理の最適化を可能とする。また、キャッシュメモリは持たず代わりに256KiBのローカルストア (LS) と呼ばれるSRAM専用メモリを持っており、そこにプログラムとデータを格納して実行する。SPEはメインメモリ上のプログラムとデータを直接扱えず、DMAを用いてXDR DRAMメモリとLS間の転送を行う必要がある。LSはメインメモリから独立したメモリ空間を持つため、キャッシュコヒーレンシ保持の仕組みが不要で高速化に貢献している。例えるなら常にL1キャッシュに当たっている状態である。SPEはMemory Flow Controller (MFC) と呼ばれる制御ユニットに専用のDMAコントローラを持ち、これによりSPEは多量のデータを高速に処理するストリーム処理を可能とする。IBMの示した物理挙動シミュレーションとレンダリングの例では、3.2GHzのPentium 4と比較し、2.1GHz駆動のSPE1基で1.5倍、8基で12倍の性能差を記録した。IBMの示したシミュレーションをPentium 4 3.6GHzクラスのCPUで実装した場合との比較では3基のSPEでPentium 4 3.6GHzクラスCPUの2倍のパフォーマンスを記録した。命令長は32ビット固定である。
1基あたり3.2GHz駆動で25.6GFLOPSの演算性能がある。
Cellの仕様を満たすためには最低1つは搭載することが求められる。

アイソレーションモード

セキュリティ強化のため、SPEはアイソレーションモードと呼ばれる特殊な動作モードを備えている。これは、暗号化・復号処理やCSSやAACSなどのデジタル著作権管理システムでの利用が想定されている。
アイソレーションモードで動作するSPEのLS領域は他のSPEやPPEからのアクセスが遮断され、外部からの読み書きは一切できない。アイソレーションモードで暗号に用いる秘密鍵などの機密情報を扱うことで、他のプロセスからそれらを盗み取ることを不可能にする。
SPEはアイソレーションモード用の移行・離脱命令を実行することでそのモードに遷移する。一旦SPEがアイソレーションモードに入ると、外部から可能な操作はそのSPEで動作するプロセスの停止のみである。離脱命令および外部からのプロセス停止が実行されると、SPEのコンテキストおよびそのLSに置かれたプログラムやデータは速やかに消去されるため、機密情報が外部に漏洩することは無い。また、アイソレーションモードで実行されるプログラムコードは、それが本来のものと改変されていないか検証してから実行されるため、第三者による有害なコードを実行する危険性を排除している。
プロセス間の干渉を防ぐ機構として多くのプロセッサではCPUモードを備えているが、スーパーユーザーなどの元々高い権限を持つユーザが有害なプロセスを特権モードで動作させた場合にはこれを防止できない。アイソレーションモードはこのような場合でも機密情報を守ることが可能である。

入出力

プロセッサコア以外に、Rambus社からライセンス供与を受けた帯域幅25.6GB/sの新メモリXDR DRAMのメモリコントローラと、チップ間接続のための新インタフェースFlexIOも搭載する。FlexIOの帯域幅は最大76.8GB/sとなる。Cell内のコアとこれらのインタフェース群はやはり広帯域のリング状内部バスElement Interconnect Bus (EIB)と呼ばれるもので接続される。

IIC

Internal Interrupt Controller の事であり、Cell内部で割り込み処理を担っている。外部からの割り込み信号の対応や内部のPPEやSPEから発せられた割り込みを外部に伝えたりしている。

EIB

Element Interconnect Bus の事であり、Cell内部のメインバスとして各部を接続している。現在の実装（PPE×1+SPE×8）ではリングバス構造をしている。
コア個数など仕様によって最適な実装が大きく異なるのでCell仕様の範囲外とされている。EIBとしての役目が果たせるならば実装上の制限は無い。

構成

2005年現在はコアが9個（PPE×1+SPE×8）搭載されているが、これはCell Broadband Engine アーキテクチャと呼ばれる規格化された拡張可能なアーキテクチャの一実装形態であり、これを1PEとした4PE（PPE×4+SPE×32）など多様な構成を取り得る。
Cell Broadband Engineアーキテクチャ仕様書ではPPEとSPEがそれぞれ一つ以上が含まれる事を要求している。さらにIIC、EIBがそれぞれ一つ含まれる事を要求している。
東芝が2007年9月に発表したCellベースのメディアプロセッサ「SpursEngine」は、SPEを4個とMPEG-2、H.264のエンコード・デコード回路を搭載し、動作周波数もCellより低い1.5GHz駆動(10W台)という構成である。

プログラミングモデル

CellのSPEは通常のマルチプロセッサと異なり各SPEが独立したメモリ空間を持ち、また分岐予測などのハードウェア機構を持たないため、その性能を十分に引き出すにはそれに合わせたプログラミングモデルを採用する必要がある。Cellの開発者たちは次のようなモデルを提案している。

ジョブ・キュー

PPEがシステムメモリ上のジョブ・キューを管理し、複数のSPEにジョブを割り当てて管理する。ジョブ・キューからジョブをDMAコントローラを介してローカルストアに読み込む mini kernel が各SPE上で走り、ジョブを実行した結果をシステムメモリに返し、PPEと同期を取る。

SPEによる自己マルチタスク

各SPEにkernelを持ち、共有メモリのタスク・キューを使い、分散してスケジュールが行なわれる。タスクの同期は、ミューテックスまたはセマフォにより実現される。

ストリーム・プロセッシング

各SPEは、input stream からの入力データに対してカーネル関数を実行し、その結果をoutput stream に送る。これは、シリアルまたは並列パイプラインを容易に実現する。このモデルは、データができるだけ長くローカルストアに存在するので効率がよい。

最適化コンパイラ

最適化は、Synergistic Processing Unit (SPU) のインストラクションレベル、自動SIMD化、共有メモリモデルの自動並列化の3レベルがある。SPUのインストラクションレベルでは、ハードウエアで分岐予測を持たないので、分岐ヒント命令を少なくとも分岐の11サイクル前に自動的にスケジュールする。共有メモリモデルの自動並列化は、OpenMPで記述された1つのソースからPPEとSPEに自動分割する。SPEにおいては、コードは自動分割され、規則的なデータは共有メモリとローカルストア間のDMA命令に自動生成され、不規則なデータはソフトウエアキャシュにより処理される。ソフトウエアキャッシュ（4 way set 連想メモリ）は、SIMD命令で実行される。

評価

多数のコアを備えることにより処理能力の向上を実現したCell Broadband Engineの登場は衝撃的であった。当時のPS3に搭載されたCell Broadband Engineのチップ全体のスループットは、当時の汎用PC向けCPUの10倍程度に達した。その影響は大きく、IntelやAMDなどCPUベンダーは勿論、GPUベンダーまでもコアを肥大化させてシングルスレッド性能を追求する方向から、マルチコア化によってチップ全体での処理能力を追求する方向に転じた。GPUコアをCell B.E.のように汎用処理にも使用するというアイデアを展開していった。

長崎セミコンダクターマニュファクチャリング

長崎セミコンダクターマニュファクチャリング株式会社（NSM）は、2008年3月3日に設立した、東芝、ソニー、SCEの合弁会社。Cell Broadband Engine、RSX、東芝とソニーのデジタルコンシューマー機器等向けシステム・オン・チップ（SoC）を生産する。
製造設備は、東芝が2008年4月にソニーとソニーセミコンダクタ九州株式会社（SCK）から約900億円で購入したSCK長崎テクノロジーセンター Fab2の下層の300mmウェハーラインが東芝から貸与されている。資本金は1億円で、出資比率は東芝 60%、ソニー 20% 、SCE 20%。
東芝とソニーは2010年12月24日のニュースリリースで、東芝が所有しNSMが操業する、SCK長崎テクノロジーセンターの300mmウェーハラインをソニーに譲渡する旨の基本合意書を締結したこと、法的拘束力を有する正式契約は2010年度内早期の締結を目指すこと、東芝、ソニー、SCEの三社によるNSMの合弁関係は譲渡に伴い解消されることを発表した。ソニーは2010年12月27日のプレスリリースで、CMOSイメージセンサーの生産能力を倍増するために、東芝からSCK長崎テクノロジーセンターの300mmウェーハラインを取得し、設備の一部をCMOSイメージセンサーの製造ができるように整備すること等を発表した。日本経済新聞では、東芝は世界2位のシェアであるNAND型メモリに経営資源を集中するため、不採算のシステムLSI事業では、巨額の設備投資が必要な先端品のシステムLSIについて、2011年度からは設計だけを行い、生産はサムスン電子に委託、収益改善につなげるため長崎工場はソニーに売却すると報じた。