次のパラメータは、40 ビットの仮想アドレスと 1G バイトの物理 (メイン) メモリを使用するシステムに適用されます。ワードサイズは 64 ビット (8 バイト) です。アドレスはバイトを指し、バイト境界で整列されます。i ビット アドレスには次の表記を使用します。Ai-1...A2、A1、A0 ここで、Ai-1 はアドレスの最上位ビットで、A0 はアドレスの最下位ビットです。仮想アドレスは V39-V0 で示され、物理アドレスは P29-P0 で示されます。
Page size: 64 K bytes
Page table: three-level page table
The virtual page number is split in 3 fields of 8 bits each.
Entries in all tables are 32 bits (4 bytes).
これは私がこれまでに見つけたものです。
これは 40 ビットの仮想アドレスであり、ページ サイズは 64kB (2^16) であるため、16 ビットはオフセット用であり、40 から 16 を引きます。残りの 24 ビットは仮想ページ番号 (VPN) 用です。VPN は、それぞれ 8 ビットの 3 つのフィールドに分割されます。これで、3 レベルのページ テーブルができました。各テーブルには 2^8 エントリがあり、各テーブルのサイズは です2^8 * 4 bytes = 1024 bytes
。
ここからどのように進めて、各レベルのページ テーブルの 1 つのエントリによってカバーされる仮想メモリの総量を見つけますか?