人知れず消えていったマイナーCPUを語ろう(第5回):DSPを魔改造して汎用プロセッサに仕立てた「Imagination META」

ガジェット Other
大原雄介

猫に傅くために原稿を書いて日銭を稼いでいる毎日。元は組み込み系のエンジニアだったのに、もうずいぶん遠い所まで来てしまった。

特集

人知れず消えていったマイナーCPUを語ろう(第5回):DSPを魔改造して汎用プロセッサに仕立てた「Imagination META」
  • 人知れず消えていったマイナーCPUを語ろう(第5回):DSPを魔改造して汎用プロセッサに仕立てた「Imagination META」
  • 人知れず消えていったマイナーCPUを語ろう(第5回):DSPを魔改造して汎用プロセッサに仕立てた「Imagination META」

コンピュータの歴史を暗部も含めてていねいに掘り起こすことで定評のある大原雄介さんによる連載5回目。Appleに見捨てられたことで有名なImaginationのかなり変わったCPUです。



DSP(Digital Signal Processor)の話はまた改めて掘り下げたいと思うのだが、構造が簡単な割に性能が高く取れることと、(慣れると)比較的プログラミングがしやすいというメリットもあって、それこそ一世を風靡しかけた時期もある。風靡しきれなかったのは、やはりDSPに伴うデメリットというか制約が大きかったからという話であるが、これが周知されるようになったのはDSPが登場してちょっと後の話である。

X端末の教訓

1980年代後半から1990年初頭に掛けて、X Terminal(X端末)と呼ばれるデバイスが随分流行った時期がある。名前の通りX WindowのServer(つまり画面表示側)だけが実装されたもので、X Client(つまりUNIXが動くワークステーションなど)とNetworkで接続してX Serverのみを稼働させるというものだ。

実装は比較的簡単で、X Serverとこれを動かすための最低限のGraphics、Network Stack、それとキーボード/マウスのハンドリングなどを実装すればよかった。

で、このX Terminalの出始めの時期である。当時海外のX Terminalではプロトコルスタックやネットワークスタック、周辺回路の制御を行う汎用CPU(Intel 286とか386、MC68020あたりが多かったが、ちょっと後になるとMIPS R2000とかTIのmicroSPARCなんかを使った実装もあった)に画面制御用のDSPを組み合わせるという構成が非常に多かった。

ところが某D社では「このDSP高性能だから、汎用CPU無しで行けるんじゃね?」と閃いてしまったエンジニアが、DSP 1個だけで構成されたX Terminalを開発。予想通り酷いことになった。

DSPの性能をきちんと出すためには、余分なことをさせないのが一番である。汎用CPUと異なり、スタックを駆使してコンテクストスイッチングがバシバシ起きるような状況になると、DSPの性能は額面の1割も出なくなる。案の定性能は出ないは不具合は出まくるわで、結局商品競争力が著しく劣ったためにさっさと市場から消えることになった。「DSPに余分なことをさせない」というのは、鉄則である。

Imagination Technologiesという会社

ということで今回のお題はImagination TechnologiesのMETAである。Imagination Technologiesといえば、一昔前はGPUの一大ベンダーであり、スマートフォン向けをはじめとした組み込み市場で絶大なマーケットシェアを握っていた。元々はVideoLogicという名前で1985年にイギリスで創業した同社はグラフィックチップのIPを開発するベンダーである。

同社が開発したPowerVR Series 1と続くSeries 2はNECとの間でライセンス契約が結ばれ、続くPowerVR Series 3とSeries 4はSTMicroelectronicsとの間でライセンス契約を獲得する。ただSeries 3はともかくSeries 4は出荷前にSTMicroelectronicsがグラフィックチップの生産から撤退するという決断を下したことで幻の製品になってしまった。

Series 5以降は組み込み機器にターゲットを変更。STB(Set Top Box)やビデオプレイヤーなどの家電に加え、後にはスマートフォン向けのマーケットを獲得したことで急成長を遂げる。

そんなImagination Technologioesであるが、当時の製品はGPUのIPだけであって、この一本足打法では何かあった時に簡単に会社が傾くという危機感があったらしい(実際後でそうなった)。

そこで2000年3月、同じイギリスのEnsigmaという会社を買収する。同社はDSPを利用した通信向けプラットフォームを提供する会社であった。今でこそWi-Fiや4G/5G、BluetoothなどのWireless ModemはSDR(Software Defined Radio)で完全にデジタル化されているが、この技術は2000年当時はまだ一般的とは言い難かった。

EnsigmaはこうしたWireless ModemをDSPをベースとして実装するいうソリューションを提供している会社であった。Imagination Technologiesの側からすれば、既に携帯電話向けのGPU IPを広範に提供しているので、ここにWireless ModemのIPを提供したら、こちらも採用してもらいやすいだろう、という皮算用があったものと思われる。

結果から言えばこの思惑は空振りに終わる。というのは、特に携帯電話の場合は「キャリア毎」にそのModemがきちんと通信が行えることを試験によって認証する必要があるため、この認証コストが半端ないためである。

Wi-FiとかBluetoothではそこまでの手間が掛からないのでまだ採用例がある(こちらは基本一度Wi-Fi AllianceなりBluetooth SIGの認証を取ってしまえば、あとは国別(日本なら技適、アメリカならFCC、etc)を取るだけで済むが、携帯電話の方は結局資金力に物を言わせてこうした認証を取得したベンダー(要するにQualcomm)のモデムを買った方が安くあがるからだ。

なのでそうした大手ベンダーの採用を勝ち取れないと、Wireless ModemのIPの販売は難しい。ただこれは結果論であって、まだこの当時はそこまで明らかにはなっていなかったと思う。

さて話を戻すと、そんな訳でImagination Technologiesは元々自身で開発していたGPU IPに加えてDSP IPも入手した訳であるが、これで満足しなかったというか、「これがあればもっとすごいモノが出来るのでは?」と考えたのだろう、と思う。2001年5月3日、同社はMetagence Technology部門の設立とMETA-1というCPUコアのIPライセンスを開始したことを発表する

METAのアーキテクチャ

このMETA-1、CPUコアというよりはDSPに近いのだが、そこにMulti-Threadの考え方と、ある種のSuperScalar的なアイデア(SuperScalarそのものではない)をブッ込んだ魔改造DSPである。

基本DSPはSingle Threadであり、しかも分岐とかが無い前提(Local loopに関してはZero-overhead Loopが可能なので分岐のOverheadを考える必要が無い)し、どうかするとMemory AddressすらCyclicだったりする。何しろ処理目的がそれこそAudioだったりWirelessだったりと信号処理なことが多いから、一定時間の間に一定量のデータが来るので、それに一定の処理を施すというのが処理の主眼であって、あとはデータ量と頻度が処理性能に見合えばきちんとデータ落ちすることなく処理が出来るという仕組み。だから本来はSingle Threadの方がちゃんと処理負荷を算出しやすい。

Multi-Threadというのは、処理量が変化しやすいのとMemory AccessへのLatencyが大きく、かつ変化量も多い汎用CPU向けの技術であって、これを合体させるというアイデアがどこから湧いてきたのか判らないが、とにかくそういう悪魔合体したのがMETA-1という訳だ。

Photo01:2003年のMicroProcessor Forumの発表スライドより。AMA(Automatic MIPS Allocation)というのは、あるThreadに対する演算性能を確保するという、QoS的な代物である。あと、DSPのくせにMMUを搭載しているのもかなり珍しいというか、変

よく見るとScalable Computing ResourcesにはData UnitとAddress Unitが複数あり、これは要するに複数のThreadからのリクエストを、複数のData Unit/Address UnitにDynamicに割り振れることを意味している。もっとも資料を見る限り、一つのThreadに複数のData Unit/Address Unitを割り振ることは出来ないようで、その限りにおいてはSuperScalarとは呼べない。強いていうならMIMDというあたりか。

命令セットはVLIWに近いものがあるが、命令の順番と対応する実行ユニットを動的に割り振りを変えられるというあたりはVLIWともちょっと違う。まぁかなり変なアーキテクチャだった訳だ。

ちなみにData UnitにはLocal DSP RAM(説明によればRegister的に使うことも可能らしい)がある辺りはまんまDSPなのだが、DSP命令的なもの以外にGP(General Purpose)的な命令実行も可能となっている。ただ条件分岐などは、別に用意されたControl Unitで制御を行うという話である。

ちなみにアドレス空間は32bitで、その意味では32bitプロセッサであるが、メモリアクセスの幅そのものは64bitになっていた。Imagination Technologiesは、このMETA-1ベースの製品にMETA 120という名称を付けている。当初はちょっと混乱していたが、最終的にアーキテクチャ名がMETA-1、製品名がMETA 120に落ち着いたらしい。

IPコアなだけに、例えばData UnitとかAddress Unitを幾つ搭載するか、とかThreadを幾つまでサポートするかは変更可能になっているが、Imagination Technologiesによる「お勧め」(Typical Configuration)は、Threadの数は2~4、Data/Address Unitはそれぞれ2つ位を想定しているという話であった。

実装サンプルとして示されたのが、Eureka 147 DAB(Digital Audio Broadcast:デジタル音声放送の規格)のReceiverの実装で、初期の段階でも4 Threadを使ってUIまで含めて実装可能であり、より最適化が進むと3 Threadで賄えるようになった、としている(Photo02)。

Photo02:だからといって4 Thread目でMPEG4のデコードは厳しくないか?とは思う。またMETA-1は画面入出力系の機能を持っていないので、そうしたチップを外付けにするか、もしくはそれこそImaginationのGPUを組み合わせたチップにすることを想定しているものと思われる

このMETA 120、少なくともFrontier SiliconのChorus FS1010というDAB用チップに採用されたことは判明しており、Frontier Siliconのこれに続く製品にも採用されたのは確実だが、それ以外の採用事例がまるで見つからないというのが困ったところである。

とは言えまだ当時Imagination TechnologiesはPowerVRのお蔭で経営的には困っていなかったので、引き続きMETAに開発リソースを投入する。2002年2月にはMETA 120がEnsigma DivisionからEnsigma UCC(Universal Communication Coprocessor)としても発売されている

IPそのものはMETA 120と同じで、ただそのうえでデジタルラジオやデジタルTV、アナログTV、Wi-Fi及び3G Networkに対応したソフトウェアが提供されるという形だったようだ。UCCは内部的には内部的にはSCP(Signal Conditioning Processor)とMCP(Modulation & Coding Processor)、ECP(Error Correction Processor)の3つに分割されていたそうで、要するに3 Threadでの動作になっていた訳だ。2003年8月にはLinuxの移植も完了している。

2005年2月にはMETA 120の後継としてMETA 122が発表された。これはMETA 120に周辺回路も加え、これ単体でSoCを構成できるようにしたIPである。

ちなみにこのリリースの中には"the latest version of its multi-million shipping META processor family"とか"The META family has already proven its capabilities, becoming the de-facto standard for DAB digital radio, with approximately 70% global market share, and now being deployed in DAB, T-DMB, DVB-T and TV devices."なんて表現が入っているが、発表から4年で数百万個のチップの出荷というのは余り多いとは言えないし、この当時DABマーケット向けに毎年100万個以上のDABチューナーが出荷されており、その7割がMETA 120ベースというあたりは、要するに他のマーケットは取れなかったということだろう。

話を戻すと、これに加えて2005年3月には、MTX Processorと呼ばれる新しいIPの提供を開始している

もうこちら、中身がどんなものだかさっぱり判らないのだが、文面から見るとMETA 120などとは異なり通常のRISC CPUベースの製品の模様だ。最初の製品はMTX 112で、32bit CPUにも拘わらず16bit命令を利用可能というのは、ArmのThumbとかMIPSのMIPS16eの類の縮小命令をサポートしている、という意味かと思う。

リリースがMETAとMTXは相互に補完関係にあるという書き方をしているあたり、やはりDSPベースのMETAで汎用プロセッサ的な処理をやらせるのはいろいろ厳しかったのだと思われる。

2007年10月には、第2世代であるMETA 2アーキテクチャに基づくMETA HTPが発表される。こちらはMETA 1及びMTXの両方の命令に互換性があり、130nmプロセスで360MHz、90nmで500MHz、65nmなら700MHz駆動が可能とされていた。DSPというかMAC演算部に関して言えば、32bit×32bit構成以外に16bit×16bitでの演算も可能になっており、この場合は4倍速で動作することになった。なのでアプリケーションによっては、コアそのものの動作周波数向上と併せて4~5倍速での動作も可能だっただろう。

このMETA HTPをベースにしてEnsigmaから2007年11月にリリースされたのが、Ensigma UCC230である。先のEnsigma UCCの第2世代版とでもいうべきこの製品は、ISDB-Tに準拠し1-seg mobile TV(1セグTV)、3-seg(Digital Radio)、13seg(フルセグTV)のデコードを単体でで可能とした製品である。

もっとも単体なのはRF部のみで、放送波のデコードには別のチップが必要となるが、これはImagination TechnologiesのPowerVR VXDというマルチスタンダードのVideo Decoder IPが用意されているので、この2つにあとは表示部(これもImagination TechnologiesがIPを色々用意している)を組み合わせることで文字通り1チップで1seg/3seg/13segの製品を構成することが可能だった。

2012年11月には、META HTPをベースとしながらもSingle Threadにしたコンパクト構成のMETA LTPアーキテクチャと、これを実装したMETA LTP210が発表される。こちら、8051の置き換えなどまで狙ったという代物で、40nm LPプロセス利用時には1.23 DMIPS/MHzの性能と9μW/MHzの低消費電力が特徴とされていたが、8051の置き換えには性能はともかく消費電力がちょっと大きすぎる気もする。

そんな訳で当初は汎用の高性能CPU(?)を作るはずが、目的がちょっと違う方向に進んでしまったものの、まぁまぁ使われていたMETAであるが、終わりは唐突だった。

MIPS買収とMETA終了

2012年11月、Imagination TechnologiesはMIPS Technologyを買収することを発表、2013年2月に買収を完了する。この買収に伴いImagination TechnologiesはMETA部門を閉鎖、全てのエンジニアはMIPS部門に移籍し、ここで当時MIPSが開発中だったWarriorシリーズの設計に携わることになる。

既存のMETA HTPやLTP、それとEnsigma UCCシリーズなどのIPは引き続き販売されていたが、開発やサポートの無くなったIPを導入しようとする物好きな顧客はおらず、急速にそのシェアを失っていく。もっとも当時はまだPowerVRシリーズのGPUが好調だったImagination Technologiesには、METAファミリーの売上が消えることはほとんど痛手にはならず、むしろMIPS部門を立ち上げて新たな売り上げの柱に育て上げるまでの間の一時的な損失と受け止められたようだ。

ただ結局MIPSは一度もImagination Technologiesの新たな売り上げの柱になることはなく、それどころか2017年にAppleによるIPの利用中止の影響を受けてMIPS部門とEnsigma部門の両方を売却することになる。その後Imagination TechnologiesはCanyon Bridgeの支援を得て再生、現在はPowerVRベースのGPU IPに加え、CatapultというRISC-VのCPU IPも販売しているが、もうMETAの形跡はどこにも残っていない。

あるいはImagination TechnologiesがMIPS Technologyを買収しなければ、もう少しMETAの命脈は永らえたかもしれない。しかし、買収が無かったらAppleによるIP利用中止のショックを乗り越えられたか?というとそれは怪しいし、METAのアーキテクチャを欲しがるようなベンダーがあったとも思えないわけで、その意味ではいずれ消える運命にあったのは間違いない。ただその消え方が、結局ビジネスにならなかったMIPSのあおりを喰らった、というのは正直不本意であっただろう。


忘れ去られたCPU黒歴史 Intel/AMDが振り返りたくない失敗作たち
¥1,386
(価格・在庫状況は記事公開時点のものです)
《大原雄介》

大原雄介

猫に傅くために原稿を書いて日銭を稼いでいる毎日。元は組み込み系のエンジニアだったのに、もうずいぶん遠い所まで来てしまった。

特集

BECOME A MEMBER

テクノエッジ友の会に登録しませんか?

今週の記事をまとめてチェックできるニュースレターを配信中。会員限定の独自コンテンツのほか、イベント案内なども優先的にお届けします。