Login

Cortex-M0+プロセッサ

Cortex-M0+プロセッサ Image (View Larger Cortex-M0+プロセッサ Image)
ARM® Cortex®-M0+プロセッサは、最高のエネルギー効率を達成したARMプロセッサです。大きな成功を収めているCortex-M0プロセッサを基盤とし、完全な命令セットとツールの互換性を維持しながら、消費電力の削減とパフォーマンス向上を実現します。Cortex-M0プロセッサと同様、非常に小さなシリコン面積、低消費電力、および最小限のコード フットプリントを持つこれらのプロセッサにより、開発者は8ビットの価格レベルで16ビット デバイスを飛び越え、32ビットの性能を実現できます。Cortex-M0+プロセッサには、柔軟な開発を実現するさまざまなオプションがあります。
 


最もエネルギー効率の高いARMプロセッサ

2段のコア パイプラインを備えた最適化されたアーキテクチャを用いることにより、Cortex-M0+プロセッサではパフォーマンスを2.15 CoreMark/MHzに高めると同時に、わずか11.2uW/MHz(90LPプロセス、最小構成)という消費電力を達成しています。 

簡単

Cortex-M0+プロセッサではCortex-M0 プロセッサと同じ56の命令が使えるため、簡単に短時間で開発を行うことができます。Thumb®命令セットは、32ビットの演算性能が利用できるのと同時に、優れたコード密度を提供します。これらの機能を兼ね備えたCortex-M0+プロセッサは、さまざまなアプリケーションの8/16ビット デバイスを置き換えるコスト効率の高いプロセッサとして最適です。また、ツールおよびバイナリでは、多くの機能を備えたCortex-M3およびCortex-M4プロセッサとの上位互換性が維持されています。 

万能性

アプリケーションはそれぞれ異なっており、特定のニーズを持っています。パートナーが最も広範なアプリケーションに合わせてソリューションを設計することができるように、Cortex-M0+プロセッサは幅広いオプションを提供しています。メモリ保護ユニット(MPU)と再配置可能なベクタテーブルなどの多くのオプションは、Cortex-M3プロセッサとCortex-M4プロセッサで共通しています。この新しいプロセッサに特化したその他のオプションには、制御の高速化を実現するシングル サイクルI/Oインタフェースと拡張デバッグ用のマイクロトレース バッファがあります。


ARM Cortex-M0+の機能
ISAのサポート Thumb® / Thumb-2サブセット
パイプライン 2段
性能効率 2.15 CoreMarks/MHz* - 0.93~1.08 DMIPS/MHz**
メモリ保護 サブ領域およびバックグラウンド領域を備えたオプションの8領域MPU
割り込み マスク不可割り込み(NMI)+1~32の物理割り込み
スリープ モード WFI命令とWFE命令、スリープ オン エグジット機能を内蔵
スリープ信号とディープ スリープ信号
ARMパワー マネジメント キット使用時のオプションのリテンション モード
ビット操作 ビット バンド領域をCortex-Mシステム デザイン キットで実装可能
拡張命令 ハードウェア シングル サイクル(32x32)乗算オプション
デバッグ 最大4つのブレークポイントと2つのウォッチポイントを備えたオプションのJTAGポートとシリアルワイヤ デバッグ ポート
トレース オプションのマイクロトレース バッファ

* CoreMark:1.0:21.46 /ARM Cコンパイラ5.03 [ビルド24] -O3 --loop_optimization_level=2   -Otime  -DMICROLIB --library_type=microlib  --cpu=cortex-m0 / FPGAプラットフォーム、SRAMコード - SRAMのデータ、メモリおよびCPUクロック:10MHz

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


ARM Cortex-M0+実装データ***
180ULL(7トラック、代表値1.8v、25C) 90LP(7トラック、代表値1.2v、25C) 40G(9トラック、代表値0.9v、25C)
ダイナミック電力 52 µW/MHz 11 µW/MHz(9µA/MHz) 3 µW/MHz
フロア プラン面積 0.13 mm2 0.04 mm2 >0.01 mm2

*** 使用可能ベース構成は1 IRQ + NMIを含む、デバッグを含まない


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-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プロセッサおよび関連テクノロジに関する有用なドキュメント、ホワイト ペーパー、およびチュートリアルを紹介します。

開発ツール、ソフトウェア、ボードおよびデバイス データベース、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プロセッサのプログラミングと実装のための総合ガイド

 

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

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

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

大学

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

プロセッサIP向けDesignStart

 
» 
Powered 19480
Go Left
Go Right

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