スタック
通常のマイコンにはスタックポインタは一つしかありません。しかしCortex-M3はスタックポインタ(SP)を2つ持っています。汎用レジスタの13番がSPになっています。R13(SP)は、メインスタック(SP_main) とプロセススタック(SP_process)との間で切り替わるバンクレジスタの構成になっています。
通常のマイコンにはスタックポインタは一つしかありません。しかしCortex-M3はスタックポインタ(SP)を2つ持っています。汎用レジスタの13番がSPになっています。R13(SP)は、メインスタック(SP_main) とプロセススタック(SP_process)との間で切り替わるバンクレジスタの構成になっています。
さまざまな分野でArmマイコンへの置き換えが進む中、横河ディジタルコンピュータ(以下、YDC)は、2012年4月からMDK-Armの取扱いを開始した。すでに2000年からArm正規代理店に認定され、コンパイラ、デバッグツールやトレーニングコースを提供してきている。
Cortex-M3はアンアラインド・データ・アクセスをサポートしています。8ビット、16ビット、32ビットデータをRAM等のメモリに格納する場合、アンアラインド・データ・アクセスをサポートしていれば、無駄な領域を作らず各々のデータをRAMに格納することができます。例えばSRAMメモリでは25%以上削減可能です。
RAMやレジスタの1ビットだけを変更したい場合、Cortex-M3ではビットバンドという方式で1命令で変更できます。ビットバンド方式とは、RAMやレジスタの各ビットがアドレス単位で指定できるエイリアス領域を持っており、そのエイリアスを変更することにより、オリジナルのビットが自動的に変更されるというものです。
Arm v7M アーキテクチャでは、ハーバード方式のバスを採用しています。ハーバード方式とは、データ・バスと命令バスを分離したアーキテクチャです。一般に、データと命令はいずれもメモリ領域に割り当てられているため、一つのバス上でデータと命令を処理する方式をとります。
Thumb-2命令セットとは、16ビット固定長命令セットとして導入され、Thumb-2技術の導入で、16ビットおよび32ビット命令長の混在命令セットです。Arm命令セットのパフォーマンスと、Thumb命令セットのコード密度の特徴をあわせ持つ、Cortexシリーズの主力命令セットです。
従来のArmプロセッサはArm命令(32ビット)とThumb命令(16ビット)の2つの命令セットを採用していました。しかし、Cortex-M3はArm命令セットを採用せず、Thumb命令セットの新版であるThumb-2命令セットを採用しています。
Cortex-M3プロセッサの機能概要を簡単に説明します。Cortex-M3コアは、少ないゲート数、短い割り込みのオーバーヘッド、低コストのデバッグを特徴とする低電力コアです。高速な割り込み応答機能を要求する組み込み用途に向いています。
Cortex-M3も制御部と演算部を含んで、Cortex-M3プロセッサと呼んでいます。 Cortex-M3プロセッサの中に、演算部であるCortex-M3コアが含まれていますので、Cortex-M3プロセッサとCortex-M3コアの2層構造になっていると言えます。