0

明日の試験のために勉強しているこの問題に行き詰まっています。(仮想アドレスと物理アドレス、ページ フレーム、アドレス バスなどの概念を理解しています)

128K の RAM と 32 ビットのアドレス バスを備えた 4K ページを使用している場合、仮想アドレスはどれくらいの大きさになるでしょうか? 通常のページ フレームをいくつ持つことができますか?

編集: 答えは 2^32 と 2^20 だと思います。これを計算する方法がわかりません。

4

1 に答える 1

6

あなたの答えはまさに正しいです。

32 ビット アドレス バスを使用すると、2^32 の一意のアドレスの仮想空間にアクセスできます。

各 4K ページは 2^12 (物理) アドレスを使用するため、(2^32) / (2^12) = 2^20 ページをスペースに収めることができます。

試験頑張ってください!


コメントの質問に対処するために編集します。

2^32 を超えるアドレスにアクセスできないことをどのように知っていますか?

32 ビット アドレス バスは、RAM のアドレス ピンに接続された 32 本のワイヤがあることを意味します。各ワイヤは、ビットの 1 つで表されます。各ワイヤは、対応するビットが 1 か 0 かに応じて高電圧または低電圧に保持され、0xFFFF0000 などの 32 ビット値で表される 1 と 0 の特定の組み合わせによって、対応するメモリ位置が選択されます。32 本のワイヤを使用すると、アドレス ピンに 2^32 の一意の電圧の組み合わせがあり、2^32 の場所にアクセスできることを意味します。

では、4K のページ サイズはどうでしょうか。

システムのページ サイズが 4K の場合、各ページの RAM チップには 12 個のアドレス ビットがあることを意味します (2^12 = 4K であるため)。仮想システムに 128K の RAM がある場合、128K/4K = 32 ページ、つまり RAM チップのセットが必要になります。したがって、同じ 12 本のワイヤをすべての RAM チップの 12 個のアドレス ピンにルーティングすることにより、12 ビットを使用して各チップの物理アドレスを選択できます。次に、さらに 5 本のワイヤを使用して、32 ページのどのページに目的のアドレスが含まれているかを選択します。2^17 = 128K の RAM にアクセスするために、12 + 5 = 17 アドレス ビットを使用しました。

最後のステップとして、128K の RAM がメモリ カードにあるとします。しかし、32 ビット アドレス バスでは、まだ 32-17 = 15 アドレス ビットが残っています。これらのビットを使用して2^15 = 32768 個のメモリ カードの 1 つを選択すると、2^32 = 4G の RAM の合計仮想アドレス空間が得られます。

これは RAM やメモリ カード以外にも役立ちますか?

アドレスなどの大きなビット セットをより小さなサブグループに分割して、管理しやすくするのが一般的な方法です。アドレスピンやメモリカードなど、物理的な理由で分割される場合があります。また、IP アドレスやサブネットなどの論理的な理由による場合もあります。美しさは、実装の詳細がエンド ユーザーに関係がないことです。アドレス 0x48C7D3AB のメモリにアクセスする場合、メモリ セルが存在する限り、それがどの RAM チップにあるか、またはメモリがどのように配置されているかは気にしません。また、67.199.15.132 を参照する場合、賛成票を受け入れる限り、コンピュータがクラス C サブネット上にあるかどうかは気にしません。:-)

于 2008-12-12T04:09:50.167 に答える