スマホが変えた組み込みのエコシステム 波にのまれて消えた「MIPS」:マイクロプロセッサ懐古録(13)(3/3 ページ)
2000年代前半、組み込みプロセッサコア市場で大きなシェアを獲得していたMIPS。だがスマートフォンの台頭とともに変化し始めたエコシステムにうまく対応できず、その勢いは下火になっていった。
2000年代初頭はシェアトップに
先にもちょっと書いたがMIPS32はほぼ2003年頃に、携帯電話を除く32bit Embedded Processorとしては間違いなくトップシェアを獲得していた。2003年といえば、IntelはPentium 4/Pentium M、AMDはOpteron/Athlon 64を発表した年であり、Embedded SystemもそろそろNetwork対応が必須になり始めた時期である。まだ当時の事だから軽量な組み込み向けのNetwork Stackなど存在しない。それでもMIPS32コアなら十分に処理が可能だった。MIPS32 4Kの場合、180nmプロセスでコアのエリアサイズは2.5mm2ほど。これが200〜300MHzで動作可能であり、MIPS32 4Kコアは1.6 DMIPS/MHz・3.1 Coremarks/MHzという性能とされていたから、200MHzで320 DMIPSほど。大体Pentium 200MHzと大差ない程度の性能が得られる計算になる。それでいて消費電力は低め(利用するプロセスにも依存するが、おおむねフル稼働時で2mW/MHzとされていたので、200MHz駆動で0.4W程度)だったので、Active Fanによる冷却が不可能な機器への組み込みも難しくなかった(図4)
MIPSにとって幸いだったのは、ソフトウェア互換性の問題が少なかった(無かったとは言わない)ことだ。というのは先にも触れたNetwork対応という新しい要件がEmbeddedにもちょうど押し寄せてきた時期だったからだ。この時期Network対応といえばUNIX(もうLinuxも存在してはいたが、まだ現在のような主流の位置には達していなかった)になる訳だが、そうしたUNIXの多くはMIPSベースのワークステーション上で稼働していたから、そうしたNetwork StackをMIPS32に移植するのは困難ではなかった。というかこの時期、BSDのNetwork周りが結構あちこちに移植というか再利用されていた記憶があるのだが、MIPS32ベースのSoCへの移植はもちろん難しくなかった。
この当時MIPSアーキテクチャに対する批判として多かったのはコード密度の低さである。これはCISCに比べると、RISCでは必要な命令数が多くなる=オブジェクトファイルのサイズが大きくなる≒必要なメモリ量が増える、という話である。この批判そのものは間違っていないのだが、1990年代に比べるとメモリの容量当たり単価が下がったことで、このコード密度の低さもそれほど大きな問題にならなくなりつつあった。そんな訳で2000年代前半、MIPS32はEmbeddedマーケットで広範に使われるようになってきた。
加えて1990年代末頃から、Network ProcessorのマーケットにもMIPSが進出していた。こちらは64bitだが、MIPS64 5Kはあまり使われず、主要なメーカーはみなArchitecture Licenseを取得して、自前で64bitコアの実装を行っていた。Cavium/SiByte/NetLogic/PMC-Sierra/RMI Corporationなどがこれに該当する。ちなみにCaviumは最終的にMarvellに、PMC-SierraはMicrochipに、SiByte/NetLogic/RMI CorporationはBroadcomに買収されている。これらのメーカーは2010年代末まで、MIPS64アーキテクチャに基づくNetwork Processorをリリースしていた。
ではその間MIPS Technologiesは何をやっていたかというと、MIPSの製品ラインを強化するとともに、さまざまなIPや開発環境を提供する事を試みたという話は以前「Appleの通告は「MIPSの終わり」の始まりか」で説明した通りだが、残念ながらこの頃になると次のトレンドが押し寄せてきた。スマートフォンのエコシステムの拡充である。
スマホ向けでArmが有利になった理由
2007年の初代iPhoneに始まり、このあとAndroid/iOSという2大スマートフォンOSがそろいたつ中、CPUのアーキテクチャもArmが圧倒的に有利になってきた。というのはスマートフォン向けのSoCは組み込み向けにも十分使える性能と消費電力であり、また特にAndroidはEmbeddedにも広く門戸を開いたから、2010年頃からAndroidを使ったシステムが次第に増え始めていた。もちろん、MIPSもAndroidには速攻で対応していたが、2005年発表のCortex-A8や2007年発表のCortex-A9が、スマートフォン向けSoCのみならずEmbedded向けのコントローラーにも採用されるようになると、次第にマーケットはこうしたArmベースのプロセッサに移行を始めてゆく。
理由はやはりソフトウェアである。Androidは仮想マシンベースで動作するとか言いつつも、実際にはネイティブコードを多用することが少なくないことや、周辺回路向けドライバやミドルウェアの充実度を考えると、AndroidベースではArmアーキテクチャを利用する方が便利である。またMIPS Technologiesの新製品のラインアップが、どちらかというとNetwork Processorなどのハイパフォーマンス方向に振り切れている感じで、実際にEmbedded向けが必要としていた新製品とマッチングしていなかったことも理由の一つには挙げられると思う。MIPS32 4Kの中にはMCU向けのMIPS32 M4Kという派生型もあり、これはMicrochipがPIC32Mとして採用した(その後MIPS32 M14Kという改良型に切り替わった)ものの、もう同社もPIC32にArmベースのプロセッサを採用する(PIC32C)ようになっている。32bitアプリケーションプロセッサのマーケットはこれより先にMIPS32に別れを告げており、2020年にはMIPS自身がMIPSアーキテクチャに基づく新製品の開発を終了してRISC-Vに鞍替えする事を発表するなど、MC68000の時と同じく、エコシステムは急速に廃れることになってしまった。
MIPS32は命令セットそのものがシンプルなので、端的に言えば自分で実装する事も難しくない。商用として流すのには問題はあるが、探すと幾つか自分で実装したものも見つかる。また一時期MIPSが行っていたMIPS Open Initiativeで本家MIPSが提供していた無償利用可能なIPがまだ探せば見つかる(MIPS Open Initiative自身は既に終了している)し、まだ市場には若干だがMIPSベースのSoCも流通している(例えばPIC32Mシリーズ)から、利用できない訳ではない。が、エコシステムとしてはほぼ終了してしまったと考えて良いと思う。
⇒「マイクロプロセッサ懐古録」連載バックナンバー一覧
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
先見の明が支えたMotorola「MC68000」 PowerPCの陰でロングセラーに
今回はMotorolaの「MC68000」を紹介したい。1990年代に、32bitの組み込み向けプロセッサとして、派生品も含めて圧倒的なシェアを誇っていた製品だ。その生い立ちと衰退までの経緯、そして現状を解説する。
表舞台に上らなかった「世界初」のプロセッサ、MP944
一般的に「世界初」のプロセッサとされるのは「Intel 4004」だ。だが、それよりも前に登場し、使われていたプロセッサがある。Garrett AiResearchの「MP944」だ。だがその知名度はとても低い。その理由はなぜなのか、MP944の概要とともに語りたい。
登場して半世紀、多くの互換品を生んだIntel「80186/80188」
1980年代初頭に登場したIntelのマイクロプロセッサ「80186/80168」は、多くの互換CPU/CPU IPを生んだ。発売後、半世紀近くがたった今でも、多くの組み込み機器で動作している驚異的なロングランのプロセッサである。
32年ぶりの新製品も 波乱万丈だったMotorola「MC6800」
今回はMotorolaのプロセッサ「MC6800」を紹介しよう。開発から市場投入に至るまで波乱万丈な経緯を持つMC6800は、派生品も多く、一時代を築いた息の長いプロセッサである。
ファミコンにも採用された「MOS 6502」、その末路をたどる
今回は、メーカーそのものが無くなり「一発屋」となってしまった「MOS 6502」を紹介したい。任天堂の「ファミコン」にも採用された製品だが、その末路は「会社がなくなったことによる断絶」だった。
一発屋で終わったけど抜群の影響力、TI「TMS1000」
今回はTexas Instruments(TI)が開発した「TMS1000」を紹介する。「MCUの最初の製品」とも称されるものだ。TIの製品としては短命だったが、IntelやMicrochip Technologyなどの製品に幅広く影響を与えた。
