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

現在、CPUについて勉強しています。

32bitのアドレス空間は4GBで、よく0x00000000~0xFFFFFFFFと記載されたアドレスマップを見かけます。

しかし、この見方が良く分かりません。

例えば、0xC0000000~0xC8000000:DRAMとなっていれば、DRAMにその区間が割り当てられている、と認識できるのですが、

・予約
・リマッパブル
・ストロングオーダ
・共有デバイス
・キャッシュ不可
・etc..

などと記載されている場合があり、これがよく分かりません。

詳しい方、また詳しく勉強できるサイトなど知っている方がいらっしゃいましたら、ご回答の程、宜しくお願い致します。

A 回答 (2件)

これはかなりまじめに取り組まないと達成できないゴールである、と先に言っておきます。



・予約
・リマッパブル
・ストロングオーダ
・共有デバイス
・キャッシュ不可
これらは全部違う話をしていることを理解しましょう。

少し例をいれます。
0xC0000000~0xC8000000:DRAM
この書き方は、指定されたアドレス空間は、DRAMという部品で構成されていることを示しています。
0xC0000000~0xC8000000:キャッシュ不可
とあった場合は、デバイスが何かを示しているのではなくて、そのアドレス空間の属性を示しています。デバイスはDRAMかも知れませんし、そうではないかもしれません。

予約とだけかかれてもちと判断に苦しみます。CPUのアドレスマップにそういう記述がある場合は、何のための予約であるかの情報が必要です。リマッパブルは多分CPU側の話ではないと感じます。むしろOSかな。ストロングオーダーは、アクセスの順序の話です。メモリ空間の属性の1つですね。共有デバイスは、CPUではなくてシステム側の属性と思われます。

このように、挙げられた例はあまり適切ではないのですが、それは勉強中なればこそでしょう。

CPUの勉強をしているとのことですので、決定版の参考書をあげておきます。(参考URLを参照ください)
この中のVolume3A,3Bと、Optimization Manualがよろしいでしょう。これははっきりいって茨の道ですが、到達点は最上です。
また、日本語でかかれたものは、まともなものはほとんどないのですが、唯一これは使えます。惜しむらくは絶版となっているので、入手はとても難しいです。
80386プログラミング 工学社
http://www.fukkan.com/fk/VoteDetail?no=9013

参考URL:http://www.intel.com/products/processor/manuals/ …
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。

土日で探してみましたが、扱っている本屋がありませんでした‥

お礼日時:2009/02/23 08:40

可能ならどこに書いてあるか出してもらえますか?


「予約」は「CPU が何らかの事情て使うので他人が手を出してはならない領域」なんだろうけど.

この回答への補足

たびたびすみません‥

まずはARMのリファレンスマニュアルです。

https://www.jp.arm.com/document/manual/files/051 …

761ページの「デフォルトメモリマップ」ですが、
・命令メモリタイプ、データメモリタイプ
・キャッシュ不可、ライトスルーキャッシュ可能
・非共有デバイス
・ストロングオーダ
などがあります。

単語単語の意味は分かるのですが、メモリマップに記載されて
いると意味が良く分からなくなってしまいます‥

補足日時:2009/02/21 13:47
    • good
    • 0

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