Login

重要なお知らせ

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

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

Cortex-M0プロセッサ

Cortex-M0プロセッサ Image
ARM Cortex™-M0プロセッサは、提供中のARMプロセッサの中で最も小さく、最も消費電力が低く、最もエネルギー効率の高いプロセッサです。このプロセッサの非常に小さなシリコン面積、低消費電力、および最小限のコード フットプリントにより、開発者は8ビットの価格レベルで16ビット デバイスを飛び越え、32ビットの性能を実現できます。Cortex-M0プロセッサは、ゲート数が非常に少ないことから、アナログ信号デバイスやミックスド シグナル デバイスにも使用できます。
 


最も小さいARMプロセッサ

Cortex-M0は、コード密度とエネルギー効率が優れているため、さまざまなアプリケーションの8/16ビット デバイスを置き換えるコスト効率の高いプロセッサとして最適です。また、ツールおよびバイナリでは、多くの機能を備えたCortex-M3プロセッサおよびCortex-M4プロセッサとの上位互換性が維持されています。 さらに消費電力が低い、またはさらに広範な設計オプションを必要とするアプリケーションには、完全互換のCortex-M0+プロセッサが理想的な代替オプションです。

低消費電力 

Cortex-M0プロセッサは、12 Kゲート未満の面積でわずか16µW/MHz(90LPプロセス、最小構成)しか消費しません。これは、最先端の低消費電力技術を持ち、超低消費電力機器の開発に重要な役割を果たしているARMの比類のない知識と経験に基づいています。

簡単

56個の命令だけで、Cortex-M0の命令セット全体を即座に習得できます。ただし、Cフレンドリなアーキテクチャであるため、シンプルで高速な開発が実現できます。 また、完全に確定的な命令および割り込みタイミングにより、応答時間を簡単に計算できます。

最適化された接続

特に、データの効率的な前処理や通信のためにデジタル機能が増加しているアナログ デバイスで、Bluetooth Low Energy(BLE)、IEEE 802.15、Z-Waveなどの低電力接続をサポートするように設計されています。


ARM Cortex-M0の仕様

ARM Cortex-M0の機能
ISAのサポートThumb®/Thumb-2サブセット
パイプライン3段
性能効率1.62 CoreMark/MHz  -  0.84 DMIPS/MHz(RVCT 5.0.90コンパイラ)
割り込みマスク不可割り込み(NMI)+1~32の物理割り込み
スリープ モード

WFI命令とWFE命令、スリープ オン エグジット機能を内蔵

スリープ信号とディープ スリープ信号

ARMパワー マネジメント キット使用時のオプションのリテンション モード

ビット操作ビットバンド領域をCortex-Mシステム デザイン キットで実装可能
拡張命令ハードウェア シングル サイクル(32x32)乗算オプション
デバッグオプションのJTAGポートとシリアル ワイヤ デバッグ ポート。 ブレークポイントは最大4つ、ウォッチポイントは最大2つ

 

ARM Cortex-M0実装データ*

180ULL

(7トラック、ティピカル1.8v、25C)

90LP

(7トラック、ティピカル1.2v、25C)

40G

(9トラック、ティピカル0.9v、25C)

ダイナミック電力73µW/MHz16µW/MHz4µW/MHz
フロア プラン面積0.13 mm20.04 mm2>0.01 mm2

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


ARM Cortex-Mのテクノロジ

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

 

 RISCプロセッサ コア 

Thumb-2®テクノロジ

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

ネスト型ベクタ割り込みコントローラ(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ビット アーキテクチャよりも優れたコード密度を実現します。 これには、メモリ要件を緩和し、高価なオンチップのフラッシュ メモリを最大限に利用できるという大きな利点があります。このセクションでは、この利点の理由について説明します。

命令の幅

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)

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

» 
Cortex-M Series Forum Posts

Maximise