図 1. 拡張アドレスからのバイトの読み込み
説明
レジスタ rs1 と rs1+1 の内容を連結して得られた有効アドレスが指すメモリ位置から、1 バイト (8 ビット) を読み込みます。符号拡張データは、レジスタ rd に格納されます。rs1 のレジスタ番号は偶数である必要があります。ミスアライン (奇数番号) のレジスタは予約されているため、使用できません。
ロード命令で、物理メモリ アクセス (PMA) チェックにエラーが発生した場合、またはメモリからのデータ読み出し時にエラーが発生した場合に、アクセス フォールト例外が発生します。
ロード命令で使用される仮想メモリの有効アドレスを物理アドレスに正しく変換できなかった場合に、ページ フォールト例外が発生します。
擬似コード
Addr ← (rs1 + 1) (rs1)
(rd)[24:31] ← Mem(Addr)[24:31]
(rd)[0:23] ← Mem(Addr)[24]
変更されるレジスタ
rd (トラップが発生した場合、レジスタは変更されません)
レイテンシ
-
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) を使用するように設定されている場合にのみ有効です。
- 命令のデコード時には、命令ビット 20 ~ 24 および 26 ~ 28 は無視されます。