図 1. 拡張アドレスへのワードの格納
説明
レジスタ rs2 の内容を、rs1 と rs1+1 の内容を連結して得られる有効アドレスがアクセスする、ワード境界に揃ったメモリ位置に格納します。rs1 レジスタ番号は、偶数である必要があります。ミスアライン (奇数番号) のレジスタは予約されているため、使用できません。
ストア/AMO 命令で、有効アドレスの下位 2 ビットのいずれかが 1 であると、アドレスが整列していないとして例外が発生します。
ストア/AMO 命令で、物理メモリ アクセス (PMA) チェックにエラーが発生した場合、またはメモリへのデータ書き込み時にエラーが発生した場合に、アクセス フォールト例外が発生します。
ストア/AMO 命令で使用される仮想メモリの有効アドレスを物理アドレスに正しく変換できなかった場合に、ページ フォールト例外が発生します。
擬似コード
Addr ← (rs1 + 1) (rs1)
Mem(Addr) ← (rs2)
変更されるレジスタ
なし
レイテンシ
-
C_OPTIMIZATION= 0、2、3 で 1 サイクル -
C_OPTIMIZATION= 1 で 2 サイクル
備考
- この命令は、MicroBlaze V が、拡張アドレスを使用し、PMP がディスエーブルになっており (C_ADDR_SIZE > 32、C_PMP_ENTRIES = 0)、RV32I ベースの整数命令セット (C_DATA_SIZE = 32) を使用するように設定されている場合にのみ有効です。
- 命令のデコード時には、命令のビット 7 ~ 11、26 ~ 28、および 31 は無視されます。