からくりブログ

株式会社からくり社員のブログです

ARM Cortex シリーズについて

勉強会用の教材として、プログラミング教育用ロボット ビュートローバー ARM というものを購入しました。これからメンバでこつこつ遊んでいくつもりですが、おそらくその過程で話題にならなそうな内容を挙げていこうと思います。


名前の通り、このキットには ARM の Cortex(コーテックス)-M3 という CPU が付属しています。じつはこの手のキットにはもっと古い ARM CPU が載っているかと思っていたので、ちょっと驚きです。
型式は LPC1343 といい、NXP セミコン社製の CPU です。
(ARM 社はライセンスおよび開発環境を売るメーカで半導体を生産はしていません。NXP セミコン社は、ARM から ARM コアのライセンシー契約を結び、CPU 化しています)

ARM Cortex シリーズは、M と A と R があり、それぞれ以下の特徴があります。
  • Cortex-M シリーズ
    シンプルな、制御系向きな CPU コアです。割り込み制御もシンプルなものとなっており、Non-OS でも動作させやすいです。また、一番低電力です。
  • Cortex-A シリーズ
    高級な、性能を求める製品向きな CPU コアです。スマートフォンには、だいたいこの Cortex-A シリーズがマルチコアされた CPU が搭載されています。割り込み制御やメモリ管理も高機能なものとなっており、このクラスになると Non-OS で性能を活かすのは難しいかもしれません。もちろん、電力はそれなりにかかります。
  • Cortex-R シリーズ
    M と A の中間の、リアルタイム性をある程度追い求めつつ、それなりの処理速度や複雑な制御を可能にした CPU コアです。割り込み処理は A と M よりも高速です。でも、あまり浸透していない気がします… 本来は車載向けなどにも期待されていたはずですが、性能があがった M3 が主流なようです。



さて、Cortex-M3 の話に戻ります。
大きなポイントは、使えるのが Thumb-2 命令で、ARM 命令は使用できないこと。また、割り込みは、それぞれの割り込みごとにベクタアドレスが割り当たっていて、シンプルです。それ以外にもシンプルな点は多々ありますが、勉強会の中で話題になったら深掘りしていこうかと思います。

今回は、Thumb-2 命令について。
以前は ARM 命令が 32bit 長、Thumb 命令が 16bit 長と分かれていて、明確にモード切替を行って処理されていました。しかし Thumb-2 は、16bit と 32bit の混在となっています。しかし基本的な命令は備えており(いくつか使えない命令もあります)、命令コードサイズの縮小に貢献しています。
ただ、最近はアセンブラで処理を書くことはほぼなく、C コンパイラ任せなので、このあたりの知識は必要ないかもしれません。


ちょっと今回は概要的な話のみになってしまいました。ただ、割り込み制御の仕組みまで説明してしまうと長くなってしまうので、また次回とさせてください。

最後に、ARM Information Center に無料登録すれば ARM に関する情報を閲覧することができます。
ARM に関する、ほぼすべての情報が得られると思います。興味のある方や、ARM 搭載ボードで勉強しようという方は、ぜひ登録してみてみてください。

  • “ARM Information Center”:http://infocenter.arm.com/help/index.jsp
    • “Cortex-M シリーズプロセッサ”:http://infocenter.arm.com/help/topic/com.arm.doc.set.cortexm/index.html

Leave a Reply

Your email address will not be published.

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>