Login

Cortex-Mシリーズ

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

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

ARMエンベデッド製品とリソースについての詳細は、ARMエンベデッド マイクロサイトからご利用いただけます。

見出し

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

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

 


業界標準

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

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


エネルギー効率エネルギー効率

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

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

小さなコードプロセッサのダイの写真

低いシリコン コスト

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

mbed評価ボード使いやすさ

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

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

高性能パフォーマンス比較

競争力の高い製品

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

Cortex-Mプロセッサの比較

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


ARM Cortex-M0 ARM Cortex-M0+ ARM Cortex-M3 ARM Cortex-M4
「8/16ビット」アプリケーション 「8/16ビット」アプリケーション 「16/32ビット」アプリケーション 「32ビット/DSC」アプリケーション
低コストで簡単 低コスト、卓越したエネルギー効率 性能、汎用 効率的なデジタル信号制御

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


ARM Cortex-Mのテクノロジ

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


RISCプロセッサ コア Thumb-2®テクノロジ
  • 高性能の32ビットCPU
  • 確定的な動作
  • 小型、低レイテンシのパイプライン
  • 16/32ビット命令の最適な組み合わせ
  • 8ビット デバイスより30%小さいコード サイズ
  • 性能低下なし

ツールおよびRTOSサポート CoreSightデバッグ/トレース

低消費電力モード ネスト型ベクタ割り込みコントローラ(NVIC)
  • スリープ機能を内蔵
  • 複数のパワー ドメインに対応
  • アーキテクチャに基づくソフトウェア制御
  • 低レイテンシ、低ジッタの割り込み応答
  • アセンブリ プログラミングが不要
  • C関数の割り込みサービス ルーチン

CMSIS

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

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

NVICは、すべてのCortex-Mプロセッサの重要な一部として、プロセッサの卓越した割り込み処理機能を提供します。Cortex-M0、Cortex-M0+およびCortex-M1の各プロセッサにおいて、NVICは最大32の割り込み(IRQ)、マスク不可割り込み(NMI)、およびさまざまなシステムの例外をサポートしています。Cortex-M3とCortex-M4の各プロセッサは、VICを拡張して最大240のIRQ、1 NMI、その他のシステムの例外をサポートします。

通常、NVICの設定はプログラミング可能です。構成レジスタは、メモリ マップの一部で、Cポインタとしてアクセスできます。また、CMSISライブラリには、割り込み制御を簡単に行うためのヘルパ関数が豊富に用意されています。
NVICの内側で、各割り込みソースは割り込み優先を割り当てられます。NMIなど、システムの例外の中には、優先レベルが固定されているものがあります。また、優先レベルがプログラム可能なものもあります。それぞれの割り込みにさまざまな優先を割り当てることにより、NVICはソフトウェアに介入されずにネスト割り込みを自動的にサポートできます。

アーキテクチャは、各プログラム可能な割り込みや例外につき8ビットの優先レベル設定を用意しています。ゲート数を削減するには、これらのレジスタの部分のみを実装します。Cortex-M0、Cortex-M0+およびCortex-M1プロセッサ(ARMv6-Mアーキテクチャ)には、4つのプログラム可能なレベルがあります。Cortex-M3とCortex-M4の各プロセッサ(ARMv7-Mアーキテクチャ)では、優先レベルを8~256の間で選択できる設計です。

Cortex-Mプロセッサを使いやすくするため、Cortex-Mプロセッサではスタック ベースの例外モデルを使用します。例外が発生すると、多くのレジスタがスタックにプッシュされます。これらのレジスタは、例外ハンドラが完了すると元の値に戻ります。これにより、例外ハンドラは通常のC関数に書き込むことができます。また、割り込み処理の非表示のソフトウェア オーバーヘッドを削減できます。

また、Cortex-Mプロセッサでは、各割り込みハンドラで実行する関数のアドレスを含むベクタ テーブルを使用します。プロセッサは、割り込みを許可すると、このベクタ テーブルからアドレスをフェッチします。繰り返しになりますが、これによりソフトウェアのオーバーヘッドが回避され、割り込みレイテンシが削減されます。

また、割り込み処理をより効率的にしてシステムの応答性を向上させるため、Cortex-Mプロセッサの実装には、さまざまな最適化技術が使用されています。

テール チェイン - ISRの終了時に他の例外が保留中の場合、プロセッサは、保存されたすべてのレジスタをスタックから復旧しないで、次のISRに移ります。これにより、1つの例外ハンドラから別の例外ハンドラに切り替える際にレイテンシが削減されます。

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

後着 - 優先度が低い方の割り込みのスタックの最中に優先度が高い方の割り込みが到着した場合、プロセッサは新しいベクタ アドレスをフェッチし、最初に優先度の高い方の割り込みを処理します。

これらの最適化を行えば、割り込みの読み込みが増加するにつれて割り込みのオーバーヘッドは削減され、エンベデッド システムにおける割り込み処理スループットの向上が可能となります。


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

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

命令の幅

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

ARM Cortex-Mプロセッサでは、優れたコード密度を実現する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プロセッサおよび関連テクノロジに関する有用なドキュメント、ホワイト ペーパー、およびチュートリアルを紹介します。

開発ツール、ソフトウェア、ボードおよびデバイス データベース、CMSISおよびmBedの詳細については、ARMエンベデッド マイクロサイトを参照してください。

[ブック](Books)

The Definitive Guide to the ARM Cortex-M0
画期的なARM Cortex-M0プロセッサのプログラミングと実装のための総合ガイド
The Definitive Guide to the ARM Cortex-M3
画期的なARM Cortex-M3プロセッサのプログラミングと実装のための総合ガイド

The Definitive Guide to the ARM Cortex-M0
(韓国語)

画期的なARM Cortex-M0
プロセッサのプログラミング
と実装のための総合ガイド
プロセッサ

 

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

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

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

大学

関連ユーザ ガイドとアプリケーション ノート

Cortex-M0/3/4デバイス汎用ユーザ ガイド

命令のタイミングに関する情報

アーキテクチャ(要登録)

ARMアプリケーション ノート

Keil アプリケーション ノート

プロセッサIP向けDesignStart





Maximise


Cookies

We use cookies to give you the best experience on our website. By continuing to use our site you consent to our cookies.

Change Settings

Find out more about the cookies we set