Login

重要なお知らせ

このサイトはcookieを利用して、コンピュータに情報を保存しています。続けるには、同意が必要です。 cookie.

ARMのWebサイトでは2種類のcookieを利用しています:(1)サイトの機能を有効にし、要求に対して素早く反応できるようにするもの。(2)分析のためのcookieで、当サイト利用時に限り匿名でWeb訪問者をトラックするもの。cookieの利用に同意されない場合は、弊社のプライバシーポリシーをご確認いただき、cookieを無効にする方法を選択できます。cookieを無効にすると、サイトのいくつかの機能が使用できなくなりますのでご注意ください

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

 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
  • 確定的な動作
  • 低レイテンシの2段パイプライン
  • 16/32ビット命令の最適な組み合わせ
  • 8ビット デバイスより30%小さいコード サイズ
  • 性能低下なし

 低消費電力モード

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

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

 ツールおよびRTOSサポート

 CoreSightデバッグ/トレース

  • 幅広いサードパーティ製ツールをサポート
  • Cortexマイクロコントローラ ソフトウェア インタフェース規格(CMSIS)
  • ソフトウェアを最大限に再利用
  • JTAGまたは2ピン シリアル ワイヤ デバッグ(SWD)接続
  • 複数のプロセッサに対応
  • トレースのサポート

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ハードウェア内にテール チェイン技術を実装することにより、アクティブな割り込みと保留中の割り込み間の移動を簡略化しています。プロセッサ状態は、ソフトウェア実装の場合より少ないサイクル数で割り込みの開始時にハードウェアに自動的に保存され、割り込み終了時に復元されます。 これにより、低い周波数のシステムの性能が大幅に向上します。 

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

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

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

 

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

横取りの場合の図

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

 


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

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)

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

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