プロが教えるわが家の防犯対策術!

マイコンに限った話ではないかとは思いますが、現在マイコンプログラムの勉強をしておりますが、マイコンのデータシートのメモリマップを見ると先頭番地からフラッシュメモリのマッピングがあり、その次に各種レジスタやRAMのマッピングがなされています。

(1)このメモリマップというものは論理アドレスと物理アドレスの対応表のようなものだと解釈しておりますが、この対応表自体はRAMの一部に格納されているのでしょうか?

(2)例えばフラッシュメモリの物理アドレスが00~FFまであり、RAMの物理アドレスも00~FFだった場合で且つ
フラッシュメモリの後ろにRAMのマップを作る場合、メモリマップの中の論理アドレスは00~2FFまでで物理アドレスはフラッシュメモリの部分は00~FF,RAMのブツリアドレスも00~FFになるという理解で良いですか?

ひょっとするとかなり見当違いをしている質問かもしれません。
よろしくお願いします。

A 回答 (4件)

    • good
    • 1

うーん、なんかピンとこないですね。


何か勘違いしてるかも。

1)一般的にメモリマップとは、どこからどこまでのアドレスにどんなハードウェアが接続されているかとか何に使われているか。の図です。
000000-00ffff:フラッシュメモリ
010000-010fff:レジスタ
011000-0fffff:メインメモリ
という感じなはずです。

メインメモリで、ここからここはこれ、という図も「メモリマップ」です。
区別するなら「メインメモリのメモリマップ」です。

2)1)で書いたメモリマップ内00000-fffffで、レジスタの先頭は10000から始まります。
そのレジスタだけに注目した場合、相対的な位置は000-fffの範囲になります。
この相対的な位置のことを「論理アドレス」と言っているのでしょうか。

「論理アドレス」「物理アドレス」とは仮想記憶を使う場合に使用する用語です。
バンク切替などを行わない場合、この言葉は使いません。
固定のメモリマップの場合、単に「アドレス」というだけです。
あえていうなら「相対アドレス」ですが、かえってややこしくなるので普通は使いません。
    • good
    • 0
この回答へのお礼

どうもありがとうございます。
仮想記憶の物理アドレスはメモリマップ(メインメモリではないメモリマップ)とどういう関係にあるのでしょうか?

>1)一般的にメモリマップとは、どこからどこまでの>アドレスにどんなハードウェアが接続されているかと>か何に使われているか。の図です。
>000000-00ffff:フラッシュメモリ
>010000-010fff:レジスタ
>011000-0fffff:メインメモリ
>という感じなはずです。

例えば上記のメモリマップで000000にアクセスがあった場合フラッシュメモリにアクセスするまでにどのような道筋を通るのでしょうか?

お時間あればお願いします。

お礼日時:2006/03/02 16:13

普通、物理アドレス・論理アドレスというと、仮想記憶とかもっと上位の概念を指すことが多いような気がするけど。



(1)普通は、ハードでアドレスデコーダーを作る場合が多いとは思います。デコーダーにI/O命令を送ると変更できたりする場合も多いと思います。
対応表自体をRAMにいれるという設計も可能でしょうが。

(2)これは、言わんとしていることは多分あってるんでしょうが、使われてる用語(メモリマップ・物理アドレス・論理アドレス等)に違和感がありますね。
    • good
    • 0
この回答へのお礼

どうもありがとうございます。
仮想記憶と勘違いをしていたみたいです。

>普通は、ハードでアドレスデコーダーを作る場合が多いとは思います。

ということは対応表のようなものがアドレスデコーダーに保存されているということになるんでしょうか?

お時間ありましたらお願いします。

お礼日時:2006/03/02 16:05

>ひょっとするとかなり見当違いをしている質問かもしれません。



(~ヘ~;)ウーン
そんな気がします、だって、何を仰りたいのか、何の事を書いているのかさっぱり解りませんので。

物理アドレスとか論理アドレスとかってなんの事でしょう?ひょっとしてバンク切替えの事言ってるのかなぁ?とか。
それとも連続しているメモリチップをアドレスデコーダであっちゃこっちゃに振り撒く事言っているのかなぁとか想像はつきません。
ちなみにこの2例はいずれも物理的な仕組みです。
    • good
    • 0
この回答へのお礼

どうもありがとうございます。
やはりどこかで勘違いをしているみたいです。
もう少し調べてみます。

お礼日時:2006/03/02 15:51

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!