Login

Cortex-M3プロセッサ

Cortex-M3プロセッサ Image (View Larger Cortex-M3プロセッサ Image)
ARM® Cortex®-M3プロセッサは、業界をリードする、確定性の高いリアルタイム アプリケーション向けの、32ビット プロセッサであり、パートナーが高性能で低コストのプラットフォームを、マイクロコントローラ、自動車のボディ システム、工場制御システム、ワイヤレス ネットワーキング、センサなど、多様なデバイスのために開発できるように設計されています。卓越した演算性能と、イベントに対する非常に優れたシステム応答を実現する一方で、低いダイナミック/スタティック電力の制約にも対応します。また、高度な設定が可能で、メモリ保護と強力なトレース技術を必要とするデバイスから、最小限の実装面積を要求する非常にコストが重視されるデバイスまで、さまざまな実装が可能です。
 


Cortex-M3をお勧めする理由

より高い性能と多くの機能の実現

2004年に導入され、新しいテクノロジとコンフィギュラビリティで最近更新されたCortex-M3は、特にマイクロコントローラ アプリケーションを念頭に置いて開発された主力のARMプロセッサです。

性能およびエネルギー効率 

高性能と低ダイナミック消費電力を誇るCortex-M3プロセッサは、業界をリードする電力効率を提供します。内蔵のスリープ モードとオプションの状態保持機能により、低消費電力と優れた性能が求められるアプリケーションに適しています。

多機能

このプロセッサでは、ハードウェア除算、シングル サイクル乗算、ビット フィールド操作などに最適なパフォーマンスとコード サイズを実現するThumb®-2命令セットを実行します。Cortex-M3 NVICは、設計時に高度な設定が可能で、個別の優先度、ダイナミックな再優先度付け、および内蔵システム クロックにより最大で240個のシステム割り込みを処理します。

豊富な接続

これらの機能と性能を兼ね備えたCortex-M3ベースのデバイスでは、複数のI/Oチャネルとプロトコル標準(USB OTG(On-The-Go)など)を効率的に処理できます。


ARM Cortex-M3の仕様

<tr class="alt"> <tr class="alt"> <tr class="alt"> <tr class="alt"> <tr class="alt"> <tr class="alt">
ARM Cortex-M3の機能
ISAのサポート Thumb&reg;/Thumb-2
パイプライン 3段
性能効率 3.32 CoreMark/MHz* - 1.25~1.50 DMIPS/MHz**
メモリ保護 サブ領域およびバックグラウンド領域を備えたオプションの8領域MPU
割り込み マスク不可割り込み(NMI)+1~240の物理割り込み
割り込み優先レベル 8~256の優先レベル
ウェイクアップ割り込みコントローラ 最大240のウェイクアップ割り込み
スリープ モード WFI命令とWFE命令、スリープ オン エグジット機能を内蔵
スリープ信号とディープ スリープ信号
ARMパワー マネジメント キット使用時のオプションのリテンション モード
ビット操作 命令およびビット バンディング機能を内蔵
拡張命令 ハードウェア除算(2-12サイクル)、シングル サイクル(32x32)乗算、飽和演算のサポート
デバッグ オプションのJTAGポートとシリアル ワイヤ デバッグ ポート。ブレークポイントは最大8つ、ウォッチポイントは最大4つ
トレース オプションの命令トレース(ETM)、データ トレース(DWT)、インストルメンテーション トレース(ITM)

* 次を参照:http://www.eembc.org/benchmark/reports/benchreport.php?benchmark_seq=1432&suite=CORE

** インライン化をオフにした状態での最小値(Dhrystoneの推奨につき)、インライン化をオンにした状態での最大値(他のプロセッサ アーキテクチャ用にレポート)。Dhrystone v2.1。

<tr class="alt">
ARM Cortex-M3実装データ***
180ULL
7トラック、代表値1.8v、25C)
90LP
(7トラック、代表値1.2v、25C)
40G
9トラック、代表値0.9v、25C)
ダイナミック電力 149 &micro;W/MHz 32 &micro;W/MHz 7 &micro;W/MHz
フロア プラン面積 0.43 mm2 0.12 mm2 0.03 mm2

*** 使用可能ベース構成は1 IRQ + NMIを含む、ETM、MPU、およびデバッグを除く


ARM Cortex-Mのテクノロジ

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


RISCプロセッサ コア Thumb-2&reg;テクノロジ
  • 高性能の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&reg;-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サイトなど、インターネット上には数多くの例やチュートリアルが提供されています。


In this section you will find useful documentation, white papers and tutorials on ARM Cortex-M processors and related technologies. For further information including information on development tools, software, boards, and a device database, CMSIS and mBed visit the ARM Embedded Microsite.

ARM Connected Community

Cortex-M3 related blogs, discussions, technical content

Books

Definitive Guide to the ARM Cortex-M0
A comprehensive guide to programming and implementing the groundbreaking ARM Cortex-M0 processor
Definitive Guide to the ARM Cortex-M3
A comprehensive guide to programming and implementing the groundbreaking ARM Cortex-M3 processor

Documentation for Cortex-M device users

Software development tools for Cortex-M device users

Find Cortex-M based microcontrollers

Universities

Related User Guides and App Notes

Cortex-M0/3/4 Devices Generic User Guides

Instruction Timing Information

Architecture (requires registration)

ARM Application Notes

Keil Application Notes

DesignStart for Processor IP


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