Cell Broadband Engine

Cell Broadband Engineは、ソニー・コンピュータエンタテインメント  、ソニー、IBM、東芝によって開発されたPowerPCアーキテクチャベースの64ビットRISCマイクロプロセッサである。

Emotion Engineの実質的な後継。ソニーは本プロセッサの後継を発表していないが、東芝は後継としてレグザエンジンCEVOを開発している。また、IBMは本プロセッサの後継となるPowerXcellを開発した。

1. 概要
-----

主に大容量データを高効率に処理するためのストリーム・プロセッシングを志向したプロセッサである。GPGPUという概念が無かった頃に、プログラム全体の制御を担う汎用コアとデータ処理に特化した補助コアのヘテロ構成のアーキテクチャを実現した。

Cell誕生のきっかけであったSCEの家庭用ゲーム機であるPlayStation 3を筆頭に、サーバーやワークステーション、薄型テレビ、映像制作機器などの様々な製品に採用された。また、米エネルギー省が保有するスーパーコンピューターのRoadrunnerや、同アーキテクチャーのプロセッサのみで構成されたシステムであるQPACEが、スーパーコンピューターランキングTOP500のみならず電力効率を競うGreen500のランキングも賑わせた。

Cellは年々改良され、90nm→65nm→45nmと微細化された。なお、ソフト開発の難しさもあり、SCEはPlayStation 4にはCellを採用せず、PC用プロセッサと同様のアーキテクチャを持つAMDのJaguarコアを採用した。

Cellは独自色が強く普及しなかったが、ヘテロジニアスマルチコアという構造は、2010年代にCPUとGPUをワンチップに収めたAMDのAPU等で普及している。

2. 特徴
-----

Cellはマルチコアに分類され、ひとつのマイクロプロセッサに9つのコアを持っている。内訳には1個の汎用的なプロセッサコアと、8個のシンプルなプロセッサコアを組み合わせたヘテロジニアスマルチコアという形態をもつ。

汎用プロセッサコアは//PowerPC Processor Element//  と呼ばれる制御を担うコアで、8個のコアは//Synergistic Processor Element//  と呼ばれる演算を担うコアである。

PPE/SPEともに従来のパソコン向けのマイクロプロセッサであるPowerPC G5やPentium 4、Athlon 64といった高度なアウト・オブ・オーダー実行機能や分岐予測機構を持つマイクロプロセッサとは異なり、命令を並べ替えたりするような複雑なスケジューリング機構を搭載しないことでコアを単純化し、高クロック化を実現している。

そのため、複雑な条件分岐を伴う整数演算能力はパソコン向けのマイクロプロセッサと比べ劣るが、強力で高度に並列化された演算機能を備え、数値解析やシミュレーション、動画、画像処理、音声処理などにおいては、複数のコアを並列に動作させることによって、Cellの性能を発揮させることができる。

また、仮想マシン支援機能が搭載されており、複数の仮想マシン上で複数のOSを互いに干渉させること無く走らせることができる。通常のOSが動作するスーパーバイザーモードの上位にハイパーバイザーモードがあり、仮想マシンを管理する最上位OSはこのハイパーバイザーモードで動作している。

PowerPCはバイエンディアンだが、Cellではビッグエンディアンで統一されている。

3. プロセッサアーキテクチャ
---------------

3.1. 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.4 GHz駆動のPPEでPentium 4 3.6GHz相当CPUの20%程度のパフォーマンスしか出ておらず、浮動小数点演算は得意ではないと言え、通常はSPEなどへのリソースマネージメントを行うことになる。

Cellの仕様を満たすためには最低1つは搭載することが求められる。

3.2. Synergistic Processor Element
----------------------------------

SPE は SIMD系のアーキテクチャで、単精度浮動小数点演算を4スロット同時に処理することができ、倍精度浮動小数点演算を2スロット同時に演算できる。また整数も16ビット値を8スロット、32ビット値を4スロットの演算ができる。以上のようなベクトル演算が可能な128ビット長128個のレジスタを持ち、ソフトウェアパイプライニングなど処理の最適化を可能とする。また、キャッシュメモリは持たず代わりに256KiBのローカルストア  と呼ばれるSRAM専用メモリを持っており、そこにプログラムとデータを格納して実行する。SPEはメインメモリ上のプログラムとデータを直接扱えず、DMAを用いてXDR DRAMメモリとLS間の転送を行う必要がある。LSはメインメモリから独立したメモリ空間を持つため、キャッシュコヒーレンシ保持の仕組みが不要で高速化に貢献している。例えるなら常にL1キャッシュに当たっている状態である。SPEは//Memory Flow Controller//  と呼ばれる制御ユニットに専用の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つは搭載することが求められる。

3.2.1. アイソレーションモード
------------------

セキュリティ強化のため、SPEはアイソレーションモードと呼ばれる特殊な動作モードを備えている。これは、暗号化・復号処理やCSSやAACSなどのデジタル著作権管理システムでの利用が想定されている。

アイソレーションモードで動作するSPEのLS領域は他のSPE/PPEからのアクセスが遮断され、外部からの読み書きは一切できない。アイソレーションモードで暗号に用いる秘密鍵などの機密情報を扱うことで、他のプロセスからそれらを盗み取ることを不可能にする。

SPEはアイソレーションモード用の移行・離脱命令を実行することでそのモードに遷移する。一旦SPEがアイソレーションモードに入ると、外部から可能な操作はそのSPEで動作するプロセスの停止のみである。離脱命令および外部からのプロセス停止が実行されると、SPEのコンテキストおよびそのLSに置かれたプログラムやデータは速やかに消去されるため、機密情報が外部に漏洩することは無い。また、アイソレーションモードで実行されるプログラムコードは、それが本来のものと改変されていないか検証してから実行されるため、第三者による有害なコードを実行する危険性を排除している。

プロセス間の干渉を防ぐ機構として多くのプロセッサではCPUモードを備えているが、スーパーユーザーなどの元々高い権限を持つユーザが有害なプロセスを特権モードで動作させた場合にはこれを防止できない。アイソレーションモードはこのような場合でも機密情報を守ることが可能である。

3.3. 入出力
--------

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

3.4. IIC
--------

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

3.5. EIB
--------

Element Interconnect Bus の事であり、Cell内部のメインバスとして各部を接続している。現在の実装ではリングバス構造をしている。

コア個数など仕様によって最適な実装が大きく異なるのでCell仕様の範囲外とされている。EIBとしての役目が果たせるならば実装上の制限は無い。

3.6. 構成
-------

2005年現在はコアが9個搭載されているが、これはCell Broadband Engine アーキテクチャと呼ばれる規格化された拡張可能なアーキテクチャの一実装形態であり、これを1PEとした4PEなど多様な構成を取り得る。

Cell Broadband Engineアーキテクチャ仕様書ではPPEとSPEがそれぞれ一つ以上が含まれる事を要求している。さらにIIC、EIBがそれぞれ一つ含まれる事を要求している。

東芝が2007年9月に発表したCellベースのメディアプロセッサ「SpursEngine」は、SPEを4個とMPEG-2、H.264のエンコード・デコード回路を搭載し、動作周波数もCellより低い1.5GHz駆動という構成である。

3.7. ビット長呼称
-----------

CPUのニーモニックによってビット長呼称が違っているが、Cellの場合は以下の通りになっている。



4. プログラミングモデル
-------------

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

4.1. ジョブ・キュー
------------

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

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

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

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

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

4.4. 最適化コンパイラ
-------------

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

5. Cellコンピューティング
----------------

Cellコンピューティングとは久夛良木健によれば以下の2つが要点となる。

従来のネットワークは情報のネットワークだったが、それがピア・ツー・ピアコンピューティングのバスになる。
従来のバッチで非リアルタイムのグリッド・コンピューティングから、リアルタイムでのグリッドコンピューティングへ。Cellではこのリアルタイムな処理分散を実現する前提の設計がなされている。SPEが独自にSPE用メインメモリーであるとも言えるローカルストアを持っている理由の一つには、この一環もある。

PS3発売当初のSCEは、PS3を核とした複数の機器による家庭内ネットワークでのCellコンピューティングを提唱していた。しかし、久夛良木がSCE社長を退いて平井一夫体制になって以降は、Cellコンピューティングについて触れられることはほとんど無くなった。現状ではCellコンピューティングが行える環境は整備されておらず、実現できる見通しも立っていない。PlayStation 4ではCell Broadband Engineではなく他社製のチップをCPUに採用したため、Cellコンピューティング構想は事実上放棄された形となっている。

6. 評価
-----

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

7. 沿革
-----

2001年3月9日 - SCE、IBM、東芝がブロードバンド時代に向けた超並列プロセッサの共同研究および開発に合意。
2002年4月2日 - IBM、ソニー、東芝と最先端半導体製造プロセス技術の共同開発で合意と発表。
2004年11月29日 - SCE、IBM、ソニー、東芝が次世代プロセッサ「Cell」についてISSCCに関連する論文を提出と発表。
2005年
2月 - 米国で開催されたISSCCで概要を公表、試作品が初披露された。
2月8日 - SCE、IBM、東芝の3社は共同開発中のマイクロプロセッサのアーキテクチャを初めて明らかにした。
3月31日 - Transmeta社がCell派生品などに自社の省電力技術「LongRun2」を組み込んでいくことを発表した。
5月17日 - E3において PLAYSTATION 3 に搭載されるCellが3.2GHz動作で1PPE+7SPEであることが発表された。7SPEなのは、SPE一つが不良でも動作するようにし、歩留まり向上を計ったとのこと。
6月 - 米Mercury Computer Systemsがサーバ/ワークステーションの開発を表明。2006年春から評価ボードを発売。2007年初頭までにブレードサーバシステムもリリースしている。なお、2006年夏にはCELLを用いたアクセラレータボードを発表している。
8月25日 - SCE、IBM、ソニー、東芝はCellブロードバンド・エンジン・アーキテクチャの革新的な技術の詳細について、主要な技術仕様書を公開。
9月 - 東芝がデジタル家電向けの開発キットを発表。
9月7日 - 公式サイトの技術仕様書の一部に日本語版追加。
11月9日 - 開発キットおよび関連仕様書「Cell Broadband Engine Software Development Kit」を公開。
12月14日 - 公式サイトの技術仕様書の一部に日本語版追加。同年8月25日から英語版で公開されていた物の日本語版が揃う。
2006年
2月8日 - 米IBMがCellプロセッサを採用したブレードサーバを開発したと発表。2006年9月に発売開始。
9月 - IBM、ロスアラモス国立研究所のペタフロップススパコン計画Roadrunnerシステムにアクセラレータとして採用 。
11月11日 - 90nmプロセスのCellを搭載したPLAYSTATION 3が発売。
11月15日 - [1]がSony-Toshiba-IBMCenter of Competenceとして選定された。
2007年
2月 - IBMが、ISSCC2007にて、65nmプロセスのCellを発表。
9月20日 - 東芝が、Cell技術を用いた省電力フルHD画像処理コプロセッサ「SpursEngine」を発表。
10月12日 - IBMが、集積度を二倍に高めたCellブレードサーバを発表。
10月18日 - ソニーが同社の所有するCell生産設備を東芝に売却すると発表。今後はソニー、SCE、東芝が出資する新会社が、東芝からラインの貸与を受け製造する予定。
10月29日 - [2][3]がSony-Toshiba-IBMCenter of Competenceとして選定された。
11月11日 - 65nmプロセスのCellを搭載したPLAYSTATION 3が発売。
2008年
2月4日 - SCE、IBM、Toshiba America Electronic Componentsが共同で、ISSCC2008にて、45nmプロセスのCellを発表。今後のPLAYSTATION 3等に搭載される予定。
4月3日 - フィックスターズ、最新型Cellを搭載したPCIeボード「GigaAccel 180」を発売。
5月8日 - 東芝経営方針説明会において、Cell搭載テレビを2009年秋に発売予定を発表。
5月17日 - IBM、拡張倍精度SPEを8基搭載し、倍精度浮動小数点演算を最大5倍に強化した「PowerXCell 8i プロセッサー」を開発、搭載ブレードサーバーをリリース。
5月27日 - みずほ証券、金融デリバティブ高速計算システムに、Cell/B.Eを世界で初めて採用。従来システムに比べて高速化に成功。10倍以上の見込みも。
6月10日 - Cellベースのスーパーコンピュータ「Roadrunner」が「Blue Gene/L」を二倍以上引き離す1ペタフロップスを世界最速達成。
6月23日 - 東芝が、Cell技術を用いたメディアプロセッサ「SpursEngine SE1000」を搭載したノートパソコン「Qosmio G50/F50」を発売すると発表。
7月18日 - CRI・ミドルウェア、東芝SpursEngine向けミドルウェアに参入
7月25日 - 東芝セミコンダクター、「SpursEngine Developers Forum 2008」を開催。「SPEのプログラミング手法を知らなくても利用可能」
8月13日 - ソニー、北米市場へ向けCell/B.E.搭載、4K解像度映像制作ユニット『BCU-100』“ZEGO”発表。年内発売へ
11月26日 - CRI・ミドルウェア、SpursEngine向けコンソールツール、SpursEngineコンソールエンコーダ「CRI SpursCoder」及び掲示板を公開
12月8日 - 三菱総合研究所、動産担保融資における在庫データのモニタリングにCell/B.E.を活用
2009年
2月24日 - フィックスターズ、Cell活用のH.264リアルタイムソフトウェアエンコーダ「CodecSys CEシリーズ」発売
5月22日 - 北九州産業学術推進機構、Cell/B.E.システム群を北九州学術研究都市の研究者に無償で開放。
8月19日 - SCEが、45nmプロセスのCellを搭載したPlayStation 3を、9月3日に発売する事を発表。
10月5日 - 東芝は、Cellプラットフォームを初めて搭載した液晶テレビ「CELL REGZA 55X1」を12月上旬より発売すると発表。
11月20日 - 連邦政府調達サイトに、アメリカ空軍が軍用のスーパーコンピュータの研究開発のためにPlayStation 3を2,200台発注する予定であることが掲載された。
2010年
3月15日 - ソニー、3D映像撮影制作業務用機器Cell/B.E.チップ搭載マルチイメージプロセッサー「MPE-200」を発売。
3月30日 - ソニー、放送業務用機器拡張用PCI-Expressインターフェイス、Cell/B.E.チップ搭載マルチコアプロセッシングボード「BKMP-AB100」を発売。
7月28日 - 東芝は、Cell/B.E.チップ搭載した3D対応液晶テレビ「CELL REGZA 55X2」を10月下旬より発売すると発表。
9月30日 - ソニー、放送業務用機器、Cell/B.E.チップ搭載マルチフォーマットインジェストステーション「MPE-L1000」を発売。

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

長崎セミコンダクターマニュファクチャリング株式会社は、2008年3月3日に設立した、東芝、ソニー、SCEの合弁会社。Cell Broadband Engine、RSX、東芝とソニーのデジタルコンシューマー機器等向けシステム・オン・チップを生産する。

製造設備は、東芝が2008年4月にソニーとソニーセミコンダクタ九州株式会社から約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年度からは設計だけを行い、生産はサムスン電子に委託、収益改善につなげるため長崎工場はソニーに売却すると報じた。

9. 関連項目
-------

ソニー・コンピュータエンタテインメント
PlayStation 3
Roadrunner
東芝
CELL REGZA
レグザ
フィックスターズ
セリウス 
SpursEngine
ストリームプロセッシング
IBM
ソニー

10. 脚注・出典
---------

11. 外部リンク、参考文献
--------------

11.1. SCE
---------

[4]アーキテクチャ、ニーモニック、SPE向けの言語拡張などCellに関する基本情報を網羅している。
[5]2005年のGame Developers ConferenceでSony Computer Entertainment US Research and Developmentが発表したスライド。

11.2. IBM
---------

[6]
[7] 製造プロセスや、音声認識エンジンでの性能評価やプログラミングモデルなどの応用に関するジャーナル。
[8]Cellの開発で中心的役割を担ったIBMのPeter Hofsteeらによるチュートリアルスライド。
[9]

11.3. 東芝
--------

[http://www.toshiba.co.jp/tech/review/abstract/2006_06.htm 東芝レビュー 61巻6号