先日開催されたCEATEC 2007において、個人的にPC関連でもっとも興味を引いたのは、東芝の「SpursEngine」だった。SpursEngineそのものは9月20日に発表されていたチップだが、CEATECではノートPC「Qosmio G40」の筐体にSpursEngineを搭載。いくつかのアプリケーションを走らせていた。 直接的にはSpursEngineを用いることで、どんなアプリケーションが実現できるのだろうか? といった興味につながるだろうが、もう少し俯瞰して見ると、そこにはPCが進む分かれ道があるように思う。 それは大げさに言うならば、これまで頑なに拒否してきたPCへの異分子混入を、今後、受け入れていくのかというテーマである。PCの良さは言うまでもなくソフトウェアを活用することによる柔軟性。用途範囲を決める要素はパフォーマンスだ。パフォーマンスさえ上がっていくならば、汎用性と柔軟性を備えている方がいい。 しかし、一方で明らかに決まった用途があるならば、その部分は、より適したアーキテクチャに任せる方がエネルギー効率の面でもパフォーマンスの面でも有利という場合もある。
●SpursEngineをQosmioに使う理由 筆者は以前、東芝のPC開発部隊とSpursEngineを搭載するQosmioに関してディスカッションをしたことがあるが、そのときに彼らが考えていたのは、PCならではのユニークなAV機能を、いかにして構築していくかだった。 AVノートというカテゴリは、Qosmioを起点にして一気に世の中に拡がった。比較的高い価格設定にもかかわらず、Qosmioの未来も明るいように見えるが、筆者が見るところAV機能を重視するが故に壁にもぶち当たっているように思う。 AV PCをノートPCのフォームファクタで入手したいというニーズはもちろんあるだろう。しかし、制約も多い。ノートPCの液晶ディスプレイに正面から向き合って画質を高めるのは非常に難しいし、エンクロージャ容量を確保できない内蔵スピーカーでは、バランスよく低音を出すのは物理的に不可能だ(聞こえているように感じさせることはできるが)。 どうせ携帯性を求められていないのだから、もっとAV機能を強化できるデザインにすればいいではないかという意見もあるだろうが、それならばノートPCよりも、ある程度の可搬性を備えた一体型デスクトップPCでもいいではないかという話になってくる。 そこで、PCならではのリッチなユーザーインターフェイスを駆使し、PCらしいプロセッサパフォーマンスを活用してAVコンテンツをより楽しむための機能を実装するべきだという結論に至る。 だが、メディア命令が充実してきているとはいえ、x86命令のソフトウェアで効率よくメディア処理を行なうのは難しい。不可能ではないが、どうしてもできることの限界は低くなる。そこで考えられたのがSpursEngineの活用だったようだ(実際にはSpursEngineが先で、その応用をQosmio上で考えたのかも知れない)。 SpursEngineのデモ内容は、CEATECのレポートによって紹介されているのでここでは触れない。代わりに簡単にSpursEngineの紹介をしておくと、PLAYSTATION 3(PS3)に使われているCell B.E.に含まれているSPE(Stream Processing Element)を4個、フルHD解像度のMPEG-2およびH.264エンコーダ/デコーダを1つのチップにまとめ、XDR DRAMのインターフェイスとPCI Expressのインターフェイスを備えたメディアプロセッサだ。PCに組み込む場合は、システムのPCI Expressに直接ぶら下げて使う。 MPEG-2やH.264のストリームに対し、通常の汎用プロセッサでは処理効率の悪い映像の分析や加工を高速に行なうことで、従来のPCにはない新しい付加価値をそこに創造するのが目的だ。PCのプロセッサでSpursEngineと同様の処理をさせることも可能だが、その場合はパフォーマンスに制限が加わる上、常にPCのプロセッサに過大な負荷がかかる。言い換えれば、そうしたPCには向かない処理で、どこまで価値を引き出せるかがSpursEngine採用のポイントとなる。 ●SpursEngineのコンセプト
SpursEngineは「ミニCell」などと表現されて紹介されているのも見かけた。確かにSPEを並べているという点でCell B.E.に似ていることは確かだが、コンセプトは全く違う。Cell B.E.は、それ単体でシステムのメインプロセッサとして利用する汎用性を持つが、SpursEngineはPCI Expressにぶら下げ、特定処理をメインプロセッサから依頼されるコンパニオンチップだ。 PCに接続して利用する際は、PC上(Windows上)でユーザーインターフェイスやロジックの基本部分を構築しておき、メディアストリームの処理のみをSpursEngineに分配する。またSpursEngineもメディア処理、特に映像処理に特化した作りであることは、MPEG-2およびH.264のエンコーダ/デコーダを搭載していることからもわかる。 たとえばCell B.E.には8個のSPE(PS3用は7個)があり、これを使いこなすことであらゆる処理を行なう。使い方やSPEに与えるタスクの配分はソフトウェア次第で、たとえば8個のSPEで複数のH.264デコードを並列に行なってもいいし、1個でデコードを行ないながら、残りをすべて映像分析に使ってもいい。あるいは8個の異なるストリーム処理を行なうことも可能だ。 これに対してSpursEngineは、SPEを半分の4個に減らしてビデオCODECをハードウェアで搭載した。映像処理が主な目的なら、ビデオCODEC処理は専用回路で組んだ方がトランジスタが節約できるからだ。
PC側から見ると、SpursEngine全体が圧縮した映像ストリームを入れて、デコード後にSPEで処理を行ない再エンコードして出力する映像処理エンジンだが、SpursEngine内部を見るとさらにプログラマブルな部分と固定機能の部分に分かれた構造だ。 これだけ大規模な、しかも別途専用のメモリを搭載しなければならない処理エンジンだけに、そこに実装する機能は確実に魅力を高めるものである必要がある。とはいえ、x86のような汎用プロセッサが不得意な処理こそ、SPEの得意な分野であり、今後の練り込み次第でユニークな機能を実装できるかもしれない。 たとえば、(消費電力次第だが)SpursEngineが使われていない間に、メインプロセッサに大きな負荷をかけず、バックグラウンドでコンテンツの分析を実行。コンテンツの熟成(単純なデジタルフィルタではなく、分析結果を基に映像や音声を高品質化する処理)を行なったり、あるいは映像/音声からインデックス情報やメタ情報を抽出するといった用途の可能性もある。 ●用途限定の処理回路はPCには無駄? それとも…… ここからはSpursEngineから少し離れてPCアーキテクチャの進む方向について考えてみたい。 専用プロセッサ、あるいはDSPなど得意分野が異なるプロセッサを用いることで新しい価値が生み出せるという意見がある一方、そうした取り組みが実際にPCアーキテクチャの中で拡がったという歴史はない。何か新しい用途があったとしても、x86プロセッサ上にソフトウェアとして実装されてきたためだ。x86の方が進化の速度が早く、製品の切り替えも早いため、特定用途向けLSIを組み合わせてもすぐに廃れるという見方もある しかしSpursEngineに映像CODECが搭載されたように、用途が明らかな機能は、最初から組み込んでおく方が、絶対的なパフォーマンスの面でもエネルギー効率の面でも得策だ。MMXやSSEはそうした考え方に基づく命令と言えるし、CRCチェックの演算処理を軽くする新命令なども同様だ。だが、あくまでも処理を軽くするための命令セットの追加でしかない。 Intelはプロセッサのパッケージ内にGPUという異分子を取り込むことを決定しているが、これは始まりでしかないだろう。現在のPCアーキテクチャを鑑みて、必須となっているGPUを取り込むのは当然としても、その先はあるのだろうか。将来、コア数が2桁以上になっていくのだとするなら、いたずらにx86コアだけが増えていくというのは、あまり効率の良い方法とは思いにくい。 メモリやI/Oの帯域幅の混雑度によっては必ずしもあらゆる処理をCPUのパッケージ内に集約しすぎない方が良い場合もあるが、x86コアが不得手な処理のうち、利用頻度が高く、パフォーマンスが要求され、アルゴリズムとデータプロファイルが確定しているものに関しては、特定用途のコアを用意するというシナリオもあり得るように思う。特に消費電力がシビアなモバイルPC、あるいはさらに小さくUMPCやMIDといったデバイスになるほどメリットは大きい。 いつになるのかはわからないが、筆者はIntelがコア数を増やしていく中で、少しずつ組み合わせるコアの種類が増えていくのではないかと推測している。数年といったレンジでは複数のx86コア+GPUという構成が続くだろうが、長期的にはそうはならないのではないか。 SpursEngineのようなコンパニオンチップが、PCに従来とは異なる魅力を付加できるようならば、その可能性もより強まると考えている。
□関連記事 (2007年10月15日) [Text by 本田雅一]
【PC Watchホームページ】
|