CompactRISCは、ナショナルセミコンダクターの命令セットアーキテクチャのファミリです。このアーキテクチャは、縮小命令セットコンピューティングの原理に従って設計されており、主にマイクロコントローラで使用されます。[1] このファミリのサブアーキテクチャは、16ビットのCR16とCR16C、および32ビットのCRXです。[2]
アーキテクチャ
CR16ファミリーの特徴:コンパクトな実装( 250 nmで1 mm 2未満)、2 MB(2 21)のアドレス指定、最大66 MHzの周波数、16ビット整数用のハードウェア乗算器。[1]
ビット操作、保存/復元、複数のレジスタのプッシュ/ポップなどの複雑な命令を1つのコマンドで実行できます。[1]
CR16 には、16 ビットの汎用レジスタが 16 個と、21 ビット幅のアドレス レジスタがあります。プログラム カウンタ、割り込みスタック ポインタ ISP、割り込みベクター アドレス レジスタ INTBASE、ステータス レジスタ PSR、構成レジスタ、および 3 つのデバッグ レジスタの 8 つの特殊レジスタがあります。ステータス レジスタは、C、T、L、F、Z、N、E、P、I のフラグを実装します。[1]
命令は、2 アドレス形式でいくつかの形式でエンコードされます。通常は 16 ビット エンコードですが、長さが 32 ビットの中規模即値命令には 2 つの形式があります。一般的なオペコードの長さは 4 ビット (ほとんどのエンコード タイプのビット 9 ~ 12) です。基本的なエンコード形式は次のとおりです。
- 登録から登録まで、
- レジスタへの短い5ビットの即値、
- 16ビット値の中間即値をレジスタに格納(32ビットエンコード)、
- 短い5ビット変位(2ビットオペコード)による相対ロード/ストア、
- 中程度の18ビット変位(32ビットエンコーディング、2ビットオペコード)による相対的なロード/ストア。[1]
CR16Cは異なるオペコードエンコーディングフォーマットを採用しており、23~32ビット幅のアドレスレジスタと2つの32ビット汎用レジスタを備えています。[3]
CR16はトラップと割り込みを実装しています。CR16の実装には、フェッチ、デコード、実行の3段階のパイプラインがあります。[1]
CR16製品
CR16はナショナルセミコンダクターのマイクロコントローラに使用されており、2001年以降はフラッシュメモリを内蔵した統合型マイクロコントローラが利用可能になった。[4] [5] 2007年以降はCR16ベースのIPがライセンス供与されている[6]
参考文献
- ^ abcdef Brunvand, Erik. 「National Semiconductor CR16、コンパクト RISC プロセッサ、ベースライン ISA とその先」(PDF) . CS/EE 3710 . ユタ大学. 2016 年12 月 3 日閲覧。
- ^ フォン・ハーゲン、ウィリアム (2011). GCC の決定版ガイド。アプレス。 p. 422.ISBN 9781430202196。
- ^ 「CR16C プログラマーズリファレンスマニュアル」(PDF)。
- ^ Graham, Jeanne (2001-02-22). 「National Semi の 16 ビット MCU はフラッシュとアナログを統合」. EETimes . 2016 年12 月 3 日閲覧。
- ^ 「Nationalの16ビットRISC MCU、高耐久性フラッシュを宣伝」EETimes、2001年3月13日。 2016年12月3日閲覧。
- ^ Hammerschmidt, Christoph (2007-02-21). 「NatSemi が組み込み IP の再販に IPextreme を採用」. EETimes . 2016 年12 月 3 日閲覧。
外部リンク
- ナショナルセミコンダクター組み込みマイクロコントローラ(CR16 およびCOP8)
- National Semiconductor の Web サイトの CompactRISC コア アーキテクチャ ページ (2007 年のアーカイブ コピー)
- CR16B プログラマーズ リファレンス マニュアル、ナショナル セミコンダクター、1997
- GCC CR16 ポート
