Login

ARM The Architecture For The Digital World  

Cortex-Mシリーズ

Cortex-Mシリーズ Image
ARM Cortex™-Mプロセッサ ファミリは、高いエネルギー効率と使いやすさを兼ね備えた、上位互換性のあるプロセッサで、開発者が将来の組み込みアプリケーションのニーズに対応できるように設計されています。将来の組み込みアプリケーションでは、より豊富な機能をより低コストで提供するとともに、接続性とコードの再利用性、エネルギー効率を高めることが求められます。 

Cortex-Mファミリは、スマート メータリング、 ヒューマン インタフェース デバイス、車載/産業用制御システム、白物家電、コンシューマ製品、医療機器などのエンド アプリケーション向けのコストおよび電力が重視される MCUおよびミックスド シグナル デバイス用に最適化されています。

Cortex-Mプロセッサのアプリケーションの例

Cortex-Mプロセッサのアプリケーションの例

 


Cortex-Mをお勧めする理由

業界標準

ARM Cortex-Mプロセッサ は、 NXP SemiconductorsSTMicroelectronicsTexas Instruments東芝などの主要ベンダを含む、40社を超すARMパートナーにライセンスされている、マイクロコントローラの世界標準です。 ARMパートナーは、標準のプロセッサを使用することで、一貫したアーキテクチャを使用してデバイスを作成し、優れたデバイスの実装の作成に専念できます。

Actel Analog Devices Atmel Broadcom CypressDust Networks ember Energy Micro Freescale Semiconductor富士通 Nuvoton NXP Renesas Samsung  STMicroelectronicsTexas Instruments 東芝 Triad Semiconductor


エネルギー効率

エネルギー効率

低いエネルギー コスト、長いバッテリ寿命

  • 低い MHzまたは短い動作時間で実行可能
  • アーキテクチャに基づくスリープ モードのサポート
  • 8/16ビットよりもスマートな動作、長いスリープ時間

小さなコード

プロセッサのダイの写真低いシリコン コスト

  • 高密度な命令セット
  • 8/16ビット デバイスよりも多いバイトあたりの演算回数を実現
  • より低い RAM、ROM、またはFlash の要件

mbed評価ボード使いやすさ

迅速なソフトウェア開発と再利用

  • 複数のベンダが対応している世界標準
  • コードの互換性
  • 統一されたツールおよびOSのサポート      

パフォーマンス比較

高性能

競争力の高い製品

  • 強力なCortex-Mプロセッサ 
  • MHzあたりの高い性能を実現
  • 低い消費電力で多くの機能を実装可能

 


Cortex-Mプロセッサの比較

Cortex-Mファミリは、互換性があり使いやすい幅広い範囲の組み込みデバイスに最適なソリューションです。このようなデバイスには、コスト、電力、およびパフォーマンスに関する考慮事項がさまざまに異なるマイクロコントローラ(MCU)などがあります。 それぞれのプロセッサは、広範な組み込みアプリケーション範囲に最適なトレードオフを実現します。

 

ARM Cortex-M0ARM Cortex-M3ARM Cortex-M4

「8/16ビット」アプリケーション 

「16/32ビット」アプリケーション

 「32ビット/DSC」アプリケーション

低コストで簡単

  性能効率

効率的なデジタル信号制御

 

Cortex-Mファミリ プロセッサはすべてバイナリ上位互換であるため、Cortex-Mプロセッサ間でソフトウェアの再利用およびシームレスな移行が可能です。

 


ARM Cortex-Mのテクノロジ

 Cortex-Mシリーズ プロセッサは、それぞれ固有の利点を備えていますが、どれもCortex-Mを幅広い組み込みアプリケーションに最適なプロセッサとしている基本的なテクノロジに裏打ちされています。

 

 RISCプロセッサ コア 

Thumb-2®テクノロジ

  • 高性能の32ビットCPU
  • 確定的な動作
  • 低レイテンシの3段 パイプライン
  • 16/32ビット命令の最適な組み合わせ
  • 8ビット デバイスの3分の1のコード サイズ
  • 性能低下なし
 低消費電力モード

ネスト型ベクタ割り込みコントローラ(NVIC)

  • スリープ機能を内蔵
  • 複数のパワー ドメインに対応
  • アーキテクチャに基づくソフトウェア制御
  • 低レイテンシ、低ジッタの割り込み応答
  • アセンブリ プログラミングが不要 
  • ピュアCの割り込みサービス ルーチン
 ツールおよびRTOSサポートCoreSightデバッグ/トレース

CMSIS

ARM Cortexマイクロコントローラ ソフトウェア インタフェース規格(CMSIS)は、 Cortex-Mプロセッサ シリーズ向けのベンダに依存しないハードウェア抽象化レイヤです。 CMSISにより、インタフェース ペリフェラル、リアルタイム オペレーティング システム、およびミドルウェアに対して、プロセッサとの間に一貫したシンプルなソフトウェア インタフェースを実現でき、ソフトウェアの再利用が簡素化されます。CMSISがあれば、新しいマイクロコントローラ開発者の学習が容易になり、新製品の市場化期間が短縮されます。

詳細: ネスト型ベクタ割り込みコントローラ(NVIC)

NVICは、Cortex-Mプロセッサの重要な一部として、プロセッサの卓越した割り込み処理機能を提供します。

Cortex-Mプロセッサでは、各割り込みハンドラで実行する関数のアドレスを含むベクタ テーブルを使用します。 プロセッサは、割り込みを許可すると、このベクタ テーブルからアドレスをフェッチします。

ゲート数を減らし、システムの柔軟性を高めるため、Cortex-Mプロセッサでは、スタック ベースの例外モデルを使用します。 例外が発生すると、クリティカルな汎用レジスタがスタックにプッシュされます。 スタック処理と命令フェッチが終了すると、割り込みサービス ルーチンまたはフォールト ハンドラが実行され、レジスタが自動的に復元されて、割り込まれたプログラムが通常実行を再開できるようになります。この方法により、従来のCベースの割り込みサービス ルーチンでスタック操作に必要だったアセンブラ ラッパの記述が不要となり、アプリケーション開発が大幅に容易になります。 NVICでは、割り込みのネスト(スタック処理)をサポートしているため、高い優先度を与えることで割り込みを早期に処理できます。

ハードウェアにおける完全な割り込み応答

Cortex-Mシリーズ プロセッサの割り込み応答は、割り込み信号から割り込みサービス ルーチンの実行までのサイクル数です。 これには、次の動作が含まれます。 

  • 割り込みの検出
  • Back-To-Backまたは後着割り込みの最適な処理(下記参照)
  • ベクタ アドレスのフェッチ
  • 破壊可能レジスタのスタック処理
  • 割り込みハンドラへの分岐

これらはハードウェアで実行されるタスクであり、Cortex-Mプロセッサの仕様に記載されている割り込み応答サイクル数に含まれます。 他の多くのアーキテクチャでは、これらのタスクをソフトウェアの割り込みハンドラで実行する必要があるため、レイテンシと複雑性が増加します。

 

NVICのテール チェイン

Back-To-Back割り込みの場合の図

バック ツー バック割り込みの場合、従来のシステムでは状態の保存と復元のサイクルを2回繰り返すため、レイテンシが長くなります。 Cortex-Mプロセッサでは、NVICハードウェア内にテール チェイン技術を実装することにより、アクティブな割り込みと保留中の割り込み間の移動を簡略化しています。 プロセッサの状態は、ソフトウェア実装の場合より少ないサイクル数で、割り込み開始時に自動的に保存され、割り込み終了時に復元されます。これにより、低MHzのシステムの性能が大幅に向上します。

 

優先度の高い割り込みの後着に対するNVICの反応

割り込みの後着の場合の図

前の割り込みのスタック プッシュ実行中に優先度の高い割り込みの後着が生じた場合、NVICはただちに新しいベクタ アドレスをフェッチし、上記のように保留中の割り込みを処理します。Cortex-MのNVICは、後着と横取りのサポートにより、このような場合にも確定的な応答を提供します。

 

NVICによるスタック ポップの横取り

横取りの場合の図

同様に、例外が発生した場合もNVICはスタック ポップを放棄し、上記のように、ただちに新しい割り込みを処理します。 横取りを行い、状態の復元と保存を終了せずに2番目の割り込みに切り替えることにより、NVICは確実に低いレイテンシを実現します。

 


8/16ビットからARM Cortex-Mへの移行

ARM Cortex-Mのコード サイズの利点の説明

ARM Cortex-Mプロセッサは、8ビットおよび16ビット アーキテクチャよりも優れたコード密度を実現します。 これには、メモリ要件を緩和し、高価なオンチップのフラッシュ メモリを最大限に利用できるという大きな利点があります。このセクションでは、この利点の理由について説明します。

コード サイズを比較したグラフ

相対的なEEMBC CoreMarkテスト サイズを使用したコード サイズの比較

命令の幅

8ビットのマイクロコントローラでは8ビット命令を使用し、ARM Cortex-Mプロセッサ ベースのマイクロコントローラでは32ビット命令を使用するというのはよくある誤解です。実際には、PIC18とPIC16の命令サイズはそれぞれ16ビットと14ビットです。8051アーキテクチャの場合、一部の命令は1バイト長ですが、その他の多くの命令は2バイト長または3バイト長です。一般に、同様のことが16ビット アーキテクチャにも当てはまり、一部の命令では6バイト以上のメモリを必要とする場合があります。

 ARM Cortex-M3プロセッサおよび Cortex-M0プロセッサでは、優れたコード密度を実現するARM Thumb®-2テクノロジを利用しています。Thumb-2テクノロジにより、Cortex-Mプロセッサは基本となる16ビットThumb命令をサポートし、より強力な32ビット命令に対応するように拡張されています。通常、Cコンパイラでは、32ビット バージョンの命令を使用することで処理をより効率的に実行できる場合を除き、16ビット バージョンを使用します。

命令の効率

この図は、ARM Cortex-Mプロセッサの命令がより強力であることを考慮していないため、不完全です。 1つのThumb命令が複数の8/16ビット マイクロコントローラ命令に相当する場合がよくあります。つまり、Cortex-Mデバイスにはより小さなコードが用意されており、低いバス速度で同じタスクを実現します。

プロセッサ アーキテクチャごとの16ビット乗算演算の比較
  8ビットの例 16ビットの例ARM Cortex-M

MOV A, XL ; 2バイト

MOV B, YL ; 3バイト

MUL AB; 1バイト

MOV R0, A; 1バイト

MOV R1, B; 3バイト

MOV A, XL ; 2バイト

MOV B, YH ; 3バイト

MUL AB; 1バイト

ADD A, R1; 1バイト

MOV R1, A; 1バイト

MOV A, B ; 2バイト

ADDC A, #0 ; 2バイト

MOV R2, A; 1バイト

MOV A, XH ; 2バイト

MOV B, YL ; 3バイト

 

MUL AB; 1バイト

ADD A, R1; 1バイト

MOV R1, A; 1バイト

MOV A, B ; 2バイト

ADDC A, R2 ; 1バイト

MOV R2, A; 1バイト

MOV A, XH ; 2バイト

MOV B, YH ; 3バイト

MUL AB; 1バイト

ADD A, R2; 1バイト

MOV R2, A; 1バイト

MOV A, B ; 2バイト

ADDC A, #0 ; 2バイト

MOV R3, A; 1 バイト  

 

MOV R4,&0130h

MOV R5,&0138h

MOV SumLo,R6

MOV SumHi,R7

(オペランドは、メモリ マップされたハードウェア乗算ユニットとの間を移動します)

 

 MULS r0,r1,r0

 注: 実際のCortex-Mの乗算では、32ビット乗算が実行されます。ここでは、r0およびr1に16ビット データが格納されていると想定しています。

コンパクトなデータ フットプリント

Cortex-Mプロセッサで重要なことは、8ビットと16ビットのデータ転送をサポートしており、データ メモリを効率的に使用できることです。 そのため、プログラマは8/16ビットをターゲットにしたソフトウェアと同じデータ型をそのまま使用できます。

 

エネルギー効率の利点

より多くの接続方法(USB、Bluetooth、IEEE 802.15など)および高度なアナログ センサ(加速度計、タッチ スクリーンなど)を備えた、より低コストな製品に対する需要が増すにつれ、データの前処理や通信のためのデジタル機能とともにアナログ デバイスをより緊密に統合するニーズが高まっています。 ほとんどの8ビット デバイスには、そのようなタスクをMHz数の大幅な増加とそれに伴う消費電力の増加なしに維持する性能がありません。そのため、組み込みの開発者はより高度なプロセッサ テクノロジを備えた代わりのデバイスを探す必要があります。 マイクロコントローラ アプリケーションにおけるエネルギー効率の問題に対処するために、以前は16ビット デバイスを使用していました。 しかし、16ビット デバイスは相対的に性能効率が低く、32ビット デバイスと同じタスクを実行するには、一般に、アクティブなデューティ サイクルを長くするか、クロック周波数を高くする必要があります。

 

簡単なソフトウェア開発

ARM Cortexプロセッサ ベースのマイクロコントローラ向けのソフトウェア開発は、8ビット マイクロコントローラ製品向けよりも非常に簡単に行うことができます。Cortexプロセッサは、Cによるプログラムが完全に可能なだけでなく、ソフトウェアの問題の特定に役立つ複数の高度なデバッグ機能を備えています。また、MCU開発キットに含まれている追加リソースのほかに、ARMプロセッサ ベースのMCUベンダのWebサイトなど、インターネット上には数多くの例やチュートリアルが提供されています。


リソース

このセクションでは、ARM Cortex-Mプロセッサおよび関連テクノロジに関する有用なドキュメント、ホワイト ペーパー、およびチュートリアルを紹介します。

  

Cortex-Mデバイス ユーザ向けのドキュメント

Cortex-Mデバイス ユーザ向けのソフトウェア開発ツール

 Cortex-Mベースのマイクロコントローラの検索

大学

» 
Cortex-M Series Forum Posts

Maximise