このページの本文へ

ロードマップでわかる!当世プロセッサー事情 第160回

ARMの組み込み向けで普及するCortex-Mと苦戦するCortex-R

2012年07月17日 12時00分更新

文● 大原雄介(http://www.yusuke-ohara.com/

  • この記事をはてなブックマークに追加
  • 本文印刷

8~16bitが主流のMCUに
32bitで打って出たCortex-M3

Cortex-M、Cortex-Rのロードマップ

 それではMCU向けの「Cortex-M」シリーズから解説しよう。MCUの市場はもともと、多くの半導体メーカーが自社のアーキテクチャーを利用した製品を、数多く投入していた。8~16bit製品が多かったが、中には32bitまでのラインナップを用意しているメーカーもあった。

 この分野に対してARMは、「ARM7/9/10/11」が携帯電話や一部のネットワーク機器向けに採用されてはいたものの、絶対的な比率としてはごくわずかでしかなかった。特に、古いARM7はともかく、ARM9~11になるとMCUにはやや性能が高すぎるという問題もあり、コスト面での競争力が乏しかったのが事実だ。

 そこでARMは縮小命令セット「Thumb」を、ARM v4世代から投入した。これはARMの32bit命令を、なるべく元の形を保ったまま16bitサイズに縮めようというもので、これによりコード密度(単位容量に含まれるプログラムのサイズ)の向上を図ろうというものだ。しかし、コストの問題は命令セットよりもコア側にあるわけだから、Thumbを使ってもたいして解決にならないのは当然だった。

 こうした反省を元に、まずは32bit MCUに向けて回路構成を最適化した製品が、2004年に投入された「Cortex-M3」である。当時8/16bitの市場は競争が激化しており、ARMといえどもなかなか参入はできなかったが、32bit分野は相対的に競争が激しくなかった。というのも、当時は「32bitのMCUは必要ない」(8/16bitの高性能品でカバーできる)という見解を取る半導体ベンダーが多かった。32bitはMPU向けのラインナップを充実させる方向性が主流で、32bitのMCUはある種の隙間だったわけだ。

 Cortex-M3に最初に飛びついたのは、STMicroelectronicsを初めとするいくつかのベンダーだった。同社は8/16bitではそれなりのラインナップを揃えていたものの、32bitレベルの性能を持つMCUはラインナップしておらず、ちょうど渡りに船だった。もっとも、命令セットはThumbをさらに拡張した「Thumb-2」のみのサポートで、32bit命令そのものは実行できなかった。そのため当初は利用できるライブラリも限られており、広く普及と言うにはほど遠い状況だった。ARM自身はこの状況でもあきらめず、引き続き開発環境やライブラリの充実、サードパーティーへの働きかけなどを続けていく。

FPGA上で使うMCU
Cortex-M1

 次にARMがリリースしたのは、「Cortex-M1」である。Cortex-M3とは毛色が異なるプロセッサーで、アーキテクチャー的には前世代の「ARM v6」に属しており、対応する命令セットもThumb-2のみという割り切ったものである。Cortex-M1は、それ自体でSoCを作るためのものではなく、他のFPGAの上で動作するコアである。Cortex-M1はアルテラやザイリンクスなどの各FPGA上で動作可能で、しかもFPGA上で動かす場合は、ライセンス費用が不要だった。

 今から思えばCortex-M1は、Thumb-2の普及のための一手だったのかもしれない。FPGA上でプロトタイプを作り、それが動いたらSoCで量産にという場合に、それなりの速度で動くMCUコアが無償で入手できる。開発環境もARM用に多く登場しているから、採用への敷居が下がることになる。そして一度なにかに採用されれば、「別の製品の開発にも使ってみるか」ということにもつながり、普及に弾みがつきやすい。Cortex-M1は、Cortex-M3の3分の1程度の回路規模であり、中規模以上のFPGAであれば採用が難しくなかったからだ。

 ただしCortex-M1のみでは、SoCへの展開は難しい。これに対応したのが2009年に投入された「Cortex-M0」である。回路規模はCortex-M1と同等程度ながら、FPGAではなくSoC用のプロセッサーで、こちらもアーキテクチャーはARM v6だ。命令セットはThumbに加えてThumb-2のサブセットという、やや変則的なものだった。Cortex-M0は省電力性をウリにしており、発表された2009年に早速採用したNXPセミコンダクターズは、Cortex-M0ベースの「LPC1000シリーズMCU」を太陽電池で動作させる、というデモでその低消費電力性を示したのが記憶にある。

カテゴリートップへ

この連載の記事

注目ニュース

ASCII倶楽部

プレミアムPC試用レポート

ピックアップ

ASCII.jp RSS2.0 配信中

ASCII.jpメール デジタルMac/iPodマガジン