ARMアーキテクチャに100%フォーカス。開発ツールの共通化など大きなメリットがある。

NXPセミコンダクターズは、2006年にフィリップスから独立した半導体メーカーである。米ワシントンポストに「2011年を牽引する企業5社」の1社としてとりあげられるなど注目を集めている。アナログとデジタルを最適に組み合わせたハイパフォーマンス・ミックスドシグナル(HPMS)製品を事業のコアとして打ち立てている同社が注力する製品の一つが、ARMコア搭載のマイコンである。今回は、NXPセミコンダクターズのマイコン戦略について話を聞いた。

メインイメージ

120品種のマイコンをラインアップ。

NXPセミコンダクターズ(以下、NXP)は、フィリップス時代の2003年からARMコアを採用してきており、現在マイコンとして120品種のラインアップを誇る。品種として、LPC1100/LPC1200、LPC 1300、LPC2000、LPC1700、LPC2900、LPC1800、LPC4300、LPC3000と幅広い。これらは、Cortex-Mシリーズに加え、ARM7やARM9も含まれる。

同社のマイコンの特長として、同ピン数の品種は基本的にピン互換となっている点をあげることができる。しかも、同ピン数の品種において、内蔵フラッシュ・メモリ・サイズのバリエーションを持たせていることから、プログラム・サイズが増大した場合でもピン互換によって容易に対応していくことが可能となっている。

現在、特に注力しているのがCortex-Mシリーズだ。Cortex-M0からCortex-M3、Cortex-M4と幅広く採用しており、8ビットから32ビット、さらにはDSP(Digital Signal Processor)までの領域をカバーしている。

NXPのマイコンは、ARMコアしか採用していない。「他社が複数のコアを採用しているのに対して、NXPは100%ARMにフォーカスしています。当然のことながらアーキテクチャも同じで開発ツールを共通化できるなど、お客様にとって大きなメリットとなっています」とは、NXPでハイパフォーマンス・ミックスドシグナルを統括している国吉 統括部長 。

Cortex-M0は、NXPが初めて製品化しており、Cortex-M4についても他社より先行している。「NXPはARMコアに100%フォーカスしていることから、ARM社とも緊密な連携と協力を取りやすいポジションにあります」(国吉氏)。

Cortex-M0を搭載した最新マイコン。

LPC1100Lは、Cortex-M0を搭載した最新のマイコンであり、LPC1100シリーズの第2世代品となるものだ。「Cortex-M0は、仕様策定段階からNXPが関わってきたものです」(国吉氏)。

Cortex-M0の特長として、①高性能、②高密度コード、③低消費電力&高エネルギ効率の3つをあげることができる。「Cortex-M0の処理能力は0.9DMIPS/MHzであり、8ビットや16ビット・マイコンの2~4倍の性能となります。32× 32 ビットの乗算命令をはじめ,ほとんどの命令実行がシングル・サイクルで済みます。しかも、高速の割り込みも実現しています」とは、マイクロコントローラ システムエンジニアの小原氏。

高密度コードは、ARMのThumb2命令によるものだ。Thumb2命令は16ビット命令長(いくつかの32ビット命令長もある)であり、コードの高密度化が可能だ。「16×16 の乗算では、ある8ビット・マイコンの場合48クロック・サイクルが必要であり、コード・サイズは48バイトになります。同じく16ビット・マイコンでは、8クロック・サイクルが必要であり、コード・サイズは8バイトになります。それがCortex-M0では1クロック・サイクルで済み、コード・サイズもわずか2バイトで済みます」(小原氏)。

低消費電力化では、低スリープ電流に加え、WIC(Wake-Up Interrupt Controller)による素早い起動も実現している。「超低消費電流モードからただちに起動し、短時間で必要なタスクを完了でき、再びディープ・スリープ・モードに入ることで、8ビットや16ビット・マイコンよりも平均での消費電流を低減できます。リセットからの立ち上がりも速く、ミリ秒オーダで済みます」(小原氏)。

パワー・プロファイルをAPIで用意。

さらに、第2世代のLPC1100LおよびLPC1300Lから「パワー・プロファイル」をAPI(Application Program Interface)で用意した。「いままでのマイコンは、アクティブ・モードやスリープ・モードなど固定された電力モードしか持っていませんでした。パワー・プロファイルのコンセプトは、アクティブ・モードでも関数ごとに最適な電力管理を行えるということです」(小原氏)。パワー・プロファイルとして、初期モード、CPUパフォーマンス・モード、低アクティブ電流モード、CPU高効率モードなどがあげられる。

CPUパフォーマンス・モードは、初期モードと比較して約30%以上のパフォーマンスを向上させることで、短い時間でタスクを終了でき、それに対し低アクティブ電流モードは、パフォーマンスを下げることで、20~30%のアクティブ・パワーを低減。さらに、CPU高効率モードは、必要に応じて有効電流を最低限におさえながらCPUの高い処理能力を維持することに重点が置かれているアプリケーションに向けたものとなる。

このパワー・プロファイルによって、低い供給電力で最も低い稼働電流を維持しながら全体の電力消費を最低限におさえることが可能になり、さらにはCPUのスピードと機能性を損なうことなく、1.8V~3.6Vの電圧範囲を通じて最大の稼働周波数を実現している。「いままでのマイコンでの電力管理は、内容を深く理解した上、こまかなレジスタの設定が必要でした。パワー・プロファイルでは、ソースコードからAPIをコールするだけで簡単に使うことができます」(小原氏)。

Cortex-M4とCortex-M0を搭載したマイコン。

LPC4300は、Cortex-M4とCortex-M0を搭載した世界初の非対称デュアルコアのマイコンである。「デュアルコアにしたことで、さまざまな割り込みなどはCortex-M0で対応することで、Cortex-M4の負荷を軽減することができます」と木村 マネージャーは、LPC4300のメリットを語る。

NXPが採用したCortex-M4 Fは、SIMD(Single Instruction Multiple Data)とFPU(Floating Point number processing Unit)を搭載し、外付けDSPがなくても複雑なデジタル信号処理を実現した高性能なコアである。一般にCortex-M3と比較して固定小数点演算で5~10倍、浮動小数点演算で50倍以上という高い演算能力を持つ。

SIMDはCPU負荷が大きく、ほとんどの場合アセンブラでないと対応が難しい。「SIMDを手軽に活用できるようにDSPコンセプト社と共同でAPIを開発し、APIをコールするだけで済むようにしました」(木村氏)。

多くのペリフェラルを持つLPC4300。

LPC4300には、デュアル・バンク・フラッシュ、SPI(Serial Peripheral Interface)フラッシュ・インタフェース、SCT(State Configurable Timer )、SGPIO(Serial General Purpose I/O)といった多くのペリフェラルも搭載されている。

デュアル・バンク・フラッシュは、内蔵の1Mビット・フラッシュ・メモリを2つのバンクに分けて使えるようにする機能であり、デュアル・モードと連続モードがある。「デュアル・モードでは、1Mビットの半分である512kビットをひとつのバンクとしています。一方のバンクからコードを実行している間に、もう一方のバンクで消去や書き込みができるので、プログラムを実行しながらのバージョンアップなどが可能となります」(木村氏)。

SPIフラッシュ・インタフェースは、外付けのシリアル・フラッシュ・メモリを内蔵フラッシュ・メモリと同一のメモリ空間にマッピングできる機能である。クワッドレーンSPIメモリからレーン当たり最大80Mbps、最大40Mバイト/秒の高速インタフェースにより、内蔵フラッシュ・メモリを超えるデータのコード実行が可能になる。「SPIフラッシュ・インタフェースによってパソコン向けの安価なフラッシュ・メモリも活用でき、システムの低価格化というニーズに応えることができます」(木村氏)。さらに、テクニカルマーケティングの畔地氏は「外付けながらインターナルのメモリ・マップからも見えるので、プログラミングがしやすくなります」という。

SCTは、CPUに負荷を与えることなく、イベント制御式のPWM波形の生成、ADコンバータの同期化、デッドタイム・コントロールといった複雑な機能を実現できるものだ。「ブラシレスDCモータや電力制御、照明などのアプリケーションにおいて、ユーザ独自の制御信号を作成できます」(木村氏)。

SGPIOは、ハードウェアのタイマやシフトレジスタ・ユニットを組み合わせることでGPIOを大きく拡張したものだ。任意のシリアルI/Oは、従来プログラムによるビット操作が必要だったが、SGPIOはハードウェアでシリアル転送できるので、プログラム負荷を大幅に低減できる。そのため、標準搭載のシリアル入出力ポートが不足した場合でも、容易に入出力ポートを追加できる。

ARMコアに向けたさまざまなツールが利用可能。

開発ツールとして、ARMコアに向けたさまざまな製品を利用できる点もARMコア採用マイコンならではのことだ。「NXPとして、いままでパートナーなどのボードを販売しているのに加え、2008年から独自の開発プラットフォームとしてLPCXpressoの提供も行っています」と、岡野 シニアマネージャー。

「LPCXpresso」は、NXPとCode Red社、Embedded Artists社で共同開発したものだ。Code Red社のEclipseベースのIDE(統合開発環境)、LPC-Link JTAG/SWDデバッガ付きターゲット・ボードなどで構成されており、わずか30米ドルで販売されている。サポートはWebベースである。

LPCXpressoに登録することでコード・サイズが128kバイトまでのプログラムを開発できる。ボードは、LPC1114、LPC1343、LPC1768を搭載した3種類をラインアップしており、今後LPC1227やLPC11Uxxを搭載したもののリリースも予定している。「まずはこのボードで評価し、次に自身の周辺を接続してから自身のボードに接続するなど、開発の初期から最終製品までフルに活用できます」(岡野氏)。さらに、KEIL、IARシステムズなど多くのツールを活用できる。

また、高速プロトタイピング・ツールの「mbed(エンベッド)」がある。これは、開発ツールをインストールすることなく、ARMのWebサイトをクラウド・コンピューティングとして使って開発を行えるものだ。Cortex-M3を内蔵したLPC1768を搭載したボードをUSBでパソコンに接続するだけで良い。「一般のツールと異なりmbedは、プログラムをインストールすることなく、パソコンとWebブラウザ、Webアクセス環境があれば、直ぐに開発に取り掛かることができます」(岡野氏)。

RealView DevelopmentSuiteのコンパイラがクラウドで動作しており、ソースコードさえあれば一連の開発を行うことができる。C++のクラス・ライブラリとして、ピン・アサインなどの低レベルのものから、LCDコントローラ、Webサーバやメールサーバ、モーション・コントロール、各種センサなど、さまざまなものが揃っている。

オープンなARMの環境に乗り換える時。

LPC1100は、汎用マイコンとして8/16ビット・マイコンの置き換えを狙ったものだ。「低ビットのマイコンは、低消費電力、低コスト、使い勝手の高さといったニーズがあります。LPC1100は、これらの要求に応えながら32ビット・マイコンへ置き換えられるのもので、お客様にとって大きなメリットがあるものです」(国吉氏)。一方、LPC4300は、ローエンドのオーディオやモータのベクトル制御など、CPU負荷の大きなアプリケーションに向く。

今後の展開として、Cortex-M0搭載マイコンのラインアップを充実させていく。すでに、LPC1100に加え、128kフラッシュ・メモリで48/64ピン・パッケージのLPC1200を量産中であり、オンチップCANドライバを搭載したLPC11C00はすでに一部を除いて量産中である。さらに、セグメント・ディスプレイ・ドライバを搭載したLPC11D00、DAコンバータや温度センサ、コンパレータなどの各種アナログ・ペリフェラルを搭載したLPC11A00、オンチップUSBドライバを搭載したLPC11U00などを予定している。DMA(Direct Memory Access)やRTC(Real Time Clock)を搭載したものなど、そのラインアップを拡充していく予定だ。LPC4300は、クロック周波数を高くしてより性能向上させるなど、より高性能化を図っていく。

最後に国吉氏は、「ARM搭載マイコンは、標準ツールが使えます。いまやプロプライタリーの環境ではなく、オープンな環境に乗り換える時です。100%ARMにフォーカスしているNXPは、幅広いラインアップと多くの経験をベースにそのお手伝いを強力にさせていただきます」と、結んだ。