東芝が2007年9月に発表したメディア処理プロセサ「SpursEngine」。Cellの信号処理プロセサ「SPE」を4個搭載した上で,H.264やMPEG-2のコーデック回路を追加するなど,Cellの技術をデジタル家電などに向けて再設計したマイクロプロセサだ。

 SpursEngineには,CellのDNAがいかに継承されたのか。米国オースチンにあるCellの開発センター,通称「STI(Sony,Toshiba,IBM) Design Center」にてCellのアーキテクチャ設計に携わるなど東芝のCell開発陣のリーダー役を務め,帰国後,今回のSpursEngineの開発を主導した増渕美生氏(東芝 セミコンダクター社 システムLSI事業部 ブロードバンドシステムLSI開発センター センター長,写真右)に,SpursEngineの技術について聞いた。(聞き手=進藤 智則)


CellやSpursEngineの開発を主導した東芝の増渕氏。 (画像のクリックで拡大)

――SpursEngineは,Cellの真髄/DNAともいえるSPEを4個搭載しています。SpursEngineは,Cellの直接の派生形といえるでしょうか。

増渕氏 確かにSPEを搭載しているという意味では,CellのDNAは継承しています。ただし,Cellにおいて汎用処理を行うCPUコア「PPE」は除いてありますので,直接の派生とまではいえないかと思います。

――SPEに加え,もう一つのCellのDNAともいえるのが高速のリング型バス「EIB(element interconnect bus)」だと思います。ただし,SpursEngineの発表資料を見ると,4個のSPEは一見,通常の共有バスで接続されているよう見受けられます(図2)。リング型バスのEIBは継承しなかったのでしょうか。

増渕氏 説明の図が良くなかったですね。SpursEngineでは,EIBはもちろん継承しています。SPEを生かす上でEIBのような高速なバスは非常に重要です。


図2:SpursEngine内部のブロック図。 (画像のクリックで拡大)

 ただし,Cellが4GHz近い動作周波数で動くのに対し,SpursEngineの動作周波数はデジタル家電を想定して,もっと抑えてあります。サンプル・チップでは1.5GHz動作です。低い動作周波数に合わせて回路面積が小さくなるよう,レイアウト設計などは最適化してあります。特にSPEについては,2007年6月の学会「2007 Symposium on VLSI Circuits」で発表したように,SpursEngine向けにレイアウトを最適化し,回路面積を30%削減しました(関連記事)

――Cellはその設計当初から,SPEの数を柔軟に増減できるようなアーキテクチャが採用されていました。チップの中心をリング型バスのEIBが貫き,その上下にSPEが繋がるという形です。SpursEngineを設計するに当たって,こうしたSPEの取り外しのしやすさは実感されましたか。


CEATECで展示されていたSpursEngineのダイ。 (画像のクリックで拡大)

増渕氏 論理的なアーキテクチャとしては,4個のSPEの切り出しは非常にやりやすかったのは事実です。Cellの設計思想がうまく働いたといえるでしょう。ただし,SpursEngineではCellのチップのレイアウトをそのまま切り出すというわけには行きません。SpursEngineには,SPEのほかにH.264やMPEG-2のコーデック回路を搭載する必要があったからです。四角いチップの中に,こうしたコーデック回路と四つのSPEをどのように配置し収めるか。物理的なレイアウトにはそれなりに苦心しました。

――Cellの発案者である久多良木健氏は,CellでSPEの数を8個とした根拠について「コンピュータの世界は2のべき乗。これは美学だ」と言い切りました(関連記事)。SpursEngineでSPEを4個とした理由は何でしょう。

増渕氏 我々はCellを開発して以降,(CEATECで展示しているような画像認識の実演などを含め)さまざまなアプリケーションでCell向けのソフトウエアを開発してきました。そうした経験の中から,SPEが何個くらいあれば所望のアプリケーションを実現できるか,感覚はつかめるようになっていました。SpursEngineでは,MPEG-2やH.264など最新のAV機器に必要なコーデック処理は専用論理回路として実装していますから,SPEで実行するのは映像認識など主にコーデック以外の処理になります。もちろん映像認識アルゴリズムの研究者は,処理能力はいくらでも欲しいといいますが,最後はデジタル家電向けLSIで許容できる回路面積との兼ね合いで決めました。

――Cellでは,PPE上のソフトウエアがSPEにプログラムを流し込み,処理の開始をキックするようになっています。SPEはDMAを使って主記憶から自律的にデータを取得できるようになってはいますが,そうはいってもPPEとSPEは連携して動作しているように思います。SpursEngineではこのPPEをチップ上から取り除き,そのPPEの役割を担うホスト側のCPUコアをチップの外側に置くという方針を採っています。ホスト側のCPUコアとSPEの連携は,Cellの場合と同じようにスムーズに回るものなのでしょうか。

増渕氏 確かにホスト側のCPUコアとSPEが連携する際,チップの内部に閉じた連携か,もしくは外部とのやり取りかで条件はかなり異なります。SpursEngineでは,ホスト側との接続にPCI Expressを採用していますが,仮にSPEが頻繁にチップ外部のホストとやり取りすると,効率は悪くなります。
 そこでSpursEngineでは,SPEとホスト側との連携をスムーズにするために,そうした連携を支援する専用のCPUコア「Control Processor」をチップ上に集積しました。東芝独自の32ビットCPUコアです。PPEほどの処理は行いませんが,チップ外部のホストとSPEとの間に立って連携を支援します。このControl Processorのファームウエアは,SpursEngineのユーザーは特に触らなくて済むようにしてあります。


SpursEngineを搭載したボード。 (画像のクリックで拡大)

――ホスト側のソフトウエアからSpursEngineには,どのようにアクセスするのでしょう。

増渕氏 ホスト側からは,専用のデバイス・ドライバを介してアクセスすることになります。現在は,ホストの環境として86系マイクロプロセサで動作するWindows向けのドライバを用意しています。Linux向けのデバイス・ドライバなどは,今後,検討する予定です。

――CEATECでの展示パネルには,SpursEngine IIのロードマップも提示されていますが,既に開発は始まっているのでしょうか。


SpursEngineのロードマップ。 (画像のクリックで拡大)

増渕氏 SpursEngine IIについては,まだ検討段階です。現在は,まだSpursEngineの試作LSIが出来た段階でして,2008年前半にこの量産サンプルを出荷できるよう作業を進めています。

この記事を英語で読む