2016-10-27 34 views
1

iが値床を含む仮想アドレス仮想アドレスを物理アドレスに変換

(0x10002400)   

(N/2^10)の物理アドレスへ

変換の情報を処理する方法を知りたいと思いました

詳細は、32ビットアドレスバス 物理メモリ512 KBおよび ページサイズ32 KB

答えて

1

メモリ位置の内容は、物理アドレスから仮想アドレスに影響を与えません。 anslation。

仮想アドレスには8つの16進値があり、これは32ビットの仮想アドレスであることを示します。 物理メモリのサイズは512KBです。つまり、2^19バイト(512 * 1024バイト)です。 この場合、仮想から物理へのマッピングでは、32ビットのアドレスを19ビットのアドレスにマッピングします。 例では、ページサイズは32KBです。つまり、16物理ページ(512/32)です。 16物理ページを索引付けするには4ビットが必要です。 32ビットの仮想アドレスから、最後の4ビットを使用して物理ページにインデックスを付けます。残りの28ビットを使用して比較を行うことができます。 この情報を保持する「ページテーブル」という構造があります。 これは、基本的に、仮想アドレスの先頭の28ビット(32-4)と先頭の15ビット(19-4)の物理アドレスとのマッピングです。

この例では、仮想アドレスは0x10002400です。 最後の4ビットは16進数で表されます。したがって、インデックスは0です。したがって、ページテーブルから0番目のエントリを取得します。次に、ページテーブルの仮想タグが1000240である仮想タグと一致するかどうかを確認します(注:最後の16進値は削除されます)。エントリ内の仮想タグが1000240と一致する場合は、0番目のエントリの物理タグを使用し、同じインデックス(ゼロ)を追加して物理アドレスを構成します。

関連する問題