RISC-Vの制御レジスタは実装によって異なる、特に、動作モードによって増加するようなので、まずは、GD32VF103を調べます。
![](https://stat.ameba.jp/user_images/20221231/12/mcufamily/bc/66/j/o0792054315223484847.jpg?caw=800)
まずは命令セットが、RV32IMACということで、RV32Iに加えて、M:乗算(除算)、A:アトミックアクセス、C:Compressがサポートされています。
パイプラインは2段構成となっており、Cortex-M0+と同等です。この時点で本マイコンはハイパフォーマンスなものでないことが分かります。
特権については、マシン+ユーザの2つをサポートしている、これも最低限の機能を実装した物となります。
命令セットでは、メモリアクセスでのミスアライメントアクセスがサポート、
分岐予測やプリフェッチバッファがサポート、
割り込みのtail-chainingについてはCortex-Mでも採用されている技術ですし、
これは、今後パフォーマンス含めてみていく必要がありそうです。
ここでは、特権でサポートされているレジスタをいくつか見ていきます。
まずはmisaから見ていきます。
![](https://stat.ameba.jp/user_images/20221231/13/mcufamily/aa/23/j/o1570086215223499766.jpg?caw=800)
実機から読み出した値は、0x4090'1105ですので、説明した形に加えて、独自拡張もされているようです。
さらに、mvendoridとmarchidでアーキテクチャが分かるようになっているようです。
![](https://stat.ameba.jp/user_images/20221231/13/mcufamily/eb/97/j/o0999049515223518852.jpg?caw=800)
mvendoridが0x0000_0031eとなっていることで、BANK=6, offset=30となります。
BANKで6,offsetが30だとAndes Technologyになるようです。
ここは怪しいので、もし違ったらご指摘ください。
|