Cell Broadband Engine

Cell Broadband Engine（セル ブロードバンド エンジン、略称: Cell/B.E.、Cell、CBE）は、ソニー・コンピュータエンタテインメント (SCE) 、ソニー、IBM、東芝によって開発されたPowerPCアーキテクチャベースの64ビットRISCマイクロプロセッサである。
Emotion Engineの実質的な後継。ソニーは本プロセッサの後継を発表していないが、東芝は後継としてレグザエンジンCEVOを開発している。また、IBMは本プロセッサの後継となるPowerXcellを開発した。
概要.
主に大容量データを高効率に処理するためのストリーム・プロセッシングを志向したプロセッサである。GPGPUという概念が無かった頃に、プログラム全体の制御を担う汎用コアとデータ処理に特化した補助コアのヘテロ構成のアーキテクチャを実現した。
Cell誕生のきっかけであったSCEの家庭用ゲーム機であるPlayStation 3を筆頭に、サーバー（IBM BladeCenter QS21など）やワークステーション、薄型テレビ（東芝 CELL REGZA）、映像制作機器（ソニー Zego BCU-100、BKMP-AB100）などの様々な製品に採用された。また、米エネルギー省が保有するスーパーコンピューターのRoadrunnerや、同アーキテクチャーのプロセッサのみで構成されたシステムであるが、スーパーコンピューターランキングTOP500のみならず電力効率を競うのランキングも賑わせた。
Cellは年々改良され、90nm→65nm→45nmと微細化された。なお、ソフト開発の難しさもあり、SCEはPlayStation 4にはCellを採用せず、PC用プロセッサと同様のアーキテクチャを持つ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 970)互換ではあるが、既存のPowerPC系CPUとは異なる内部構造をもつ新設計のコアである。2スレッドを交代に実行することが可能で、スレッドの切り換えが速い事から、OSの駆動などを受け持つ。また、AltiVecにも対応している。
PowerPC Architecture, Book I〜III に準拠することが求められ、中にはBook I〜IIIでのオプション仕様がPPEでは必須になっているものがある。VMXもその一つ。
PPEの浮動小数点演算性能はIBMの示した布シミュレーションの例では、2.4 GHz駆動の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台)という構成である。
ビット長呼称.
CPUのニーモニックによってビット長呼称が違っているが、Cellの場合は以下の通りになっている。
プログラミングモデル.
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コンピューティング.
Cellコンピューティングとは久夛良木健によれば以下の2つが要点となる。
Cellではこのリアルタイムな処理分散を実現する前提の設計がなされている。SPEが独自にSPE用メインメモリーであるとも言えるローカルストアを持っている理由の一つには、この一環もある。
PS3発売当初のSCEは、PS3を核とした複数の機器による家庭内ネットワークでのCellコンピューティングを提唱していた。しかし、久夛良木がSCE社長を退いて平井一夫体制になって以降は、Cellコンピューティングについて触れられることはほとんど無くなった。現状ではCellコンピューティングが行える環境は整備されておらず、実現できる見通しも立っていない。PlayStation 4ではCell Broadband Engineではなく他社製のチップをCPUに採用したため、Cellコンピューティング構想は事実上放棄された形となっている。
評価.
多数のコアを備えることにより処理能力の向上を実現した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年度からは設計だけを行い、生産はサムスン電子に委託、収益改善につなげるため長崎工場はソニーに売却すると報じた。