Renesas Synergy™

FAQ 1010743 : RL78/G13のメモリ・マップをみると「Mirror」とあります。これは何のためのものですか?

お問い合わせの「ミラー領域」は,コード・フラッシュ・メモリに配置された定数や定数のテーブルを参照するために準備された領域です。(ただし,RL78/G12のコード・フラッシュ・メモリが8kバイト以下の製品ではサポートされていません。)

RL78ファミリは1Mバイトのメモリ空間をアクセス可能で,定数も1Mバイトのメモリ空間でアクセスすることが可能です。しかしながら,1Mバイトの空間をアクセスするには,アドレスの指定に20ビット必要となり,汎用レジスタだけではアドレスを指定できません。
RL78ファミリでは,データを効率的にアクセスするために,1Mバイトのメモリ空間の最後の64kバイト(FxxxxH)にデータとしてアクセスするリソースをまとめることで,汎用レジスタでアクセスできるようにしています。
ところが,コード・フラッシュ・メモリはこのFxxxxHのアドレスではなく00000Hから始まるアドレスに配置されています。このため,1Mバイトの空間からはES:プリフィックスを使ってアクセス必要がありコード効率と実行速度が悪くなります。そこで,FxxxxHの何も配置されていない空き領域をコード・フラッシュ・メモリをアクセスするための窓口としたのが「ミラー領域」です。
ミラー領域を介してコード・フラッシュ・メモリをアクセスすると,汎用レジスタでアドレスを指定でき,効率的にアクセスすることができます。具体的にはアセンブラ記述では「ES:」のようなプリフィックスを使う必要がありません。C言語でのプログラムではスモール・モデルのようなコンパクトなメモリ・モデルが使えます。
なお,元々FxxxxHの空き領域を利用しているため,コード・フラッシュ・メモリを自由にアクセスできるわけではありません。単にミラー領域のFxxxxHのアドレスのFが0になったアドレスxxxxHだけがアクセス可能になります。

ただし,RL78/G10ではミラー領域の動作が他と異なっています。詳細はFAQ : RL78/G10のミラー領域を参照ください。

適用製品

RL78 ファミリ
他にご質問がございましたら、リクエストを送信してください