Semiconductor Portal

HOME » セミコンポータルによる分析 » 技術分析

特集:英国株式会社(2)民生AV向けマルチスレッドの並列プロセッサ

イギリスの半導体企業は、主に4つの地域に集積している。英国半導体協会であるNMI(National Microelectronics Institute)が2006年にレポートをまとめたNMI Design Survey Report 2006によると、SEEDA(South East England Development Agency)とSE(Scottish Enterprise)、EEDA(East of England Development Agency)、SWRDA(South West Regional Development Agency)の4つの地域だという。

SEEDAはロンドンの西周辺の地区、SEはスコットランド、EEDAはケンブリッジを中心とする東地区、SWRDAはブリストルを中心とする地域、である(図4)。


イギリスには、4つの地域に半導体関連企業が比較的集中している

図4 イギリスには、4つの地域に半導体関連企業が比較的集中している


これらの4つの地域の中から、ベンチャー企業の事例を、西から東へブリストル、バース、サーエンセスタ、アビントン、ケンブリッジの順で紹介していく。具体的には、XMOS Semiconductor社、Icera社、PicoChip Designs社、Innovision Research & Technology社、Toumaz Technology社、DisplayLink社、CamSemi社を採り上げる。いずれも生まれて間もないベンチャーで将来性のある企業ばかりだ。彼らのグローバルなものの考えが日本企業にとって大きな影響を及ぼすことになろう。

将来性豊かな並列プロセッサXcore
XMOS Semiconductor社は、ブリストルを代表するベンチャー企業である。創業者の一人であるDavid May氏は、今でもブリストル大学教授であり、かつての名門企業Inmos社で並列コンピュータチップのトランスピュータを開発指導してきた先端のエンジニアだ。最近、米Electronic Engineering Times誌創刊35周年記念企画の「今後期待される35の人、場所、もの」において、人の部門で取り上げられた6人のうちの1人に上がっている。ちなみに他の5人はゴア元副大統領、iPhone・iTouchなどの発明者の一人Tony Fadell氏などである。

XMOS社は、C言語でプログラムし、HDL(ハードウエア記述言語)には変換しない、というフロー重視のアーキテクチャを持ち、加えてマルチスレッドの32ビットマイクロプロセッサを開発しているベンチャーである。ポピュラーなC言語を使えるということで、Software Defined Radio(ソフトウエア無線)をもじってSoftware Defined Siliconと称していたが、その中身については公開していなかったようだ。昨年12月に日本で記者会見を開き、日本のメディアのいくつかが90nmプロセスで作った製品XcoreをSoftware Defined Siliconとして紹介していたが、どのメディアも中身は何も伝えていない。

今回の取材で明らかになったことは、マルチスレッドのプロセッサであり、並列動作を実行させるためのスケジューリングに工夫していることや、マルチコア化への拡張性も優れていること、C言語でのソフトウエアでフローチャートに沿って命令を実行するような「流れ」を主体とする方式であるため、ストリーミング処理に向いている、というような機能的な特長もある。加えて、実行したいアルゴリズムをFPGAやDSPではなく、マルチスレッドすなわちALUはわずか1個しか持たないプロセッサで実現するため、チップ面積が小さい、すなわち価格が安い、という特徴もある。このため場合によってはDSPやFGPAを駆逐する可能性もあるため、将来へのインパクトはかなり大きい。

EE Times誌が将来の35テーマの一つとして、David May氏を採り上げたのは、このプロセッサに対する将来性を買ったからである。すなわち並列処理可能で、消費電力が低く、小さくて安い32ビットプロセッサチップを開発したことによって、将来性が十分あることにつながっている。

C言語で設計できるストリーミング応用
「Xcoreは、同じC言語でもFPGAのようにハードウエア記述言語であるVHDLやVerilogなどには全く変換しないため、プログラムをいくら変えてもVHDLなどへは全く影響を及ぼさない。ハードウエア記述言語だと、小さな部分を書きなおしてもほかの部分にも影響を及ぼす。基本的にはチップ全部を書き直してしまうことが多い。XcoreはマイクロプロセッサをベースにしてCのプログラミング言語で書くため、プログラミング言語が直接、命令セットに変換される。他の部分への影響は全くない。書き直しが簡単で、効率が非常に良い。だからいくらでも書き換えが容易にできる」と同社マーケティング担当上級副社長のRichard Terrill氏は言う。

「一方のFPGAでは、ブール代数へ変換し論理合成する必要があり、プログラマブルとはいえハードウエア言語へ変換しているため、書き換えに時間がかかる。マイクロブレーンやNiosといったFPGAメーカーのプロセッサコアは大きすぎてマイクロプロセッサとはいえない」、とかつてFPGAメーカーに在籍していた同氏は手のうちをよく知りつくしている。

この32ビットRISCプロセッサコアはC言語だけでプログラムするソフトウエアのフローを持つため、プログラムの変更は簡単だ。When、If、Thenの基本的なプログラム構文をそのまま命令セットに変換しプログラムを実行できるため、アセンブラにコンパイルする仕方もノイマン型のコンピュータと全く同じにプログラムできる。C言語のプログラムの経験のある人間なら、誰でもマイクロプロセッサで電子回路を実現できる。


8スレッド管理するスケジューラがキモ
Xcoreは8個のタスクを同時に実行する8スレッドのマイクロプロセッサである。外部からは8個のマイクロプロセッサが働いているように見えるが、物理的には1個のALUだけしか持たないため、チップ面積は小さいというわけだ。しかもマルチコアへの拡張も容易だとしている。デュアルコアであれば16個のスレッドが動くことになる。


Xcoreの基本タイル

図5 Xcoreの基本タイル


並列処理をつかさどる機能がハードウエアスケジューラで、8個の異なるスレッドを管理している。ハードウエアスケジューラはソフトウエアのOSのようなものに近い。しかもイベントドリブン方式でスレッドを管理している。この方式だと、もし条件が要求されない場合には、プロセッサは動かない。だから消費電力はその分食わない。

スレッドはある決まった時刻ごとに待つ。例えばスレッド1は2クロック後まで動作しなくてもいいと、スケジューラが管理する。スケジューラは常にタイマーを監視していて、その決まった時間にスレッドが動作しなければ、次のスレッドを動かすように促す。

たとえば、32ビットデータを流すイーサネットでは、一度に4ビット分を動作させる。32ビットワードでは各ワードに対して8個のトランザクションを処理する。I/Oピンでは、32ビットデータが入ってくると、シリアルデータをパラレルに変換して、4バイトデータに作り直す。スケジューラはイーサネットパケットが入ってきたと認識し、その後ビデオデータが入ってくると、ビデオ処理用のスレッドが起き出し処理を開始する。つまり、ビデオというイベントがやってきて初めて動作するため、イベントドリブン方式と呼んでいる。それまでビデオ処理用のスレッドはそれまでの間寝ているため、消費電力は食わない。

このプロセッサコアに対して、例えば、FPGAで同じ機能を実現しようとすると、イーサネットやタイマーなどを、ハードウエアとしてチップに集積するため、チップ面積が大きくなる。これに対して、Xcoreはあくまでもプログラム手順に従ってソフトウエアを流していくため、チップ面積はALUという演算部分だけで済む。Xcoreプロセッサコアで重要なのは、スケジューリングに重点を置いていることだ。どれだけの処理をスレッドに切り出して処理するか、がノウハウになっている。

チップはわずか2ドル
一つのコアをタイルと呼んでいるが、タイルの性能は8スレッドの動作、400MHzのクロックで最大400MIPSである。プロセッサコア1個でマルチスレッドアーキテクチャをとっているため、チップ面積はかなり小さいと思われるが、残念ながらチップ面積は明らかにしなかった。この8スレッドの1タイルのチップ単価は量産時にわずか2ドルで販売する予定だという。

アルゴリズムによってはDSPで処理する方が速いかもしれない。しかし、「DSPは25ドルもする。設計する機器によっては安い価格帯のDSPとXcoreを組み合わせて使うのも手である。」とTerrill氏は言う。応用によっては積和演算が必ずしも高速だとは限らない。FPGAはDSPよりももっと高い。電子製品のライフスパンを考えると、FPGAは製品が変わればFPGAもはじめから変えなければならない。Xcoreだと、リコンパイルだけですむ。

応用としては、フラットパネルディスプレイ(FPD)、セットトップボックス、デジタルオーディオなどがある。FPDではLCDのバックライトを調整して輝度を変えても色味が変わらないように調整する、あるいは独自の仕様にディスプレイを変えてしまい差別化を図る、といった応用があるという。セットトップボックスでは、衛星放送テレビ、ケーブルテレビ、通信放送テレビ、地上波テレビ、デジタルビデオカメラなど、ソースが違えば色合いなどの映像が微妙に違ってくる。プログラマブルだから何にでも変えることができる。

ソフトウエアの流れに沿ったXcoreの処理はストリーミングなどのオーディオ応用にはうってつけである。というのは、オーディオストリーミングはクロックとぴったり同期しなければならず、手順から外れることは許されないからである。

その他、規格がまだ定まっていないような応用には特に威力を発揮する。どのような規格であれ、あらかじめプログラムしておくだけでどの方式にもマッチすることができることがこのチップの強みである。

マルチコアから新ビジネスモデルまでフレキシブル
現在、1コアのタイルだけではなく、2コア、4コア、16コアのチップを設計している。16コアだと、400MHz×16で、6400MIPSにもなる。もちろん、ハイエンドの応用である。マルチコア方式であろうと、必ずマルチスレッドを使うため、単純な掛け算で性能は決まる。

チップサイズは明らかにしないが、チップを封入するパッケージサイズは、4コアデバイスが10mm角、1コアデバイスは5mm角になる。最初に量産するチップは4コアデバイスになるという。

最初はチップを電子機器メーカーに売るが、後にチップセットとして供給したり、マルチチップモジュールとして供給することも考えている。ワイヤレスへの応用では、RF回路やアナログ回路とこの65nmで設計しているプロセッサとはデザインルールが違いすぎるためだとしている。将来は、IPとして半導体メーカーや機器メーカーに販売することも視野に入れているという。

90nmで設計した試作品はすでに2007年12月に日本で記者会見を開きデモしたが、65nmの量産製品は、第2四半期には発売する予定だという。同社は株式をまだ上場していない。

ご意見・ご感想