0

この質問を見つけましたが、解決方法がわかりません。

新しいプロセッサのメモリ管理ユニット (MMU) を設計しています。プロセッサのワード サイズは 64 ビットで、ポインタのサイズも 64 ビットです。設計の次の部分はすでに決定されています
。 • MMU は 32kB のページ サイズをサポートします。
• 3 レベルの階層ページ テーブルを使用してアドレス変換を実行します。
• x86 マシンと同様に、ページ テーブルの任意のレベルにある個々のテーブルは、物理メモリの 1 ページを占有します。レベル 3 はルート テーブルで、レベル 2 テーブルの物理アドレスを保持するエントリが含まれます。同様に、レベル 2 テーブル エントリはレベル 1 テーブルを指し、レベル 1 テーブル エントリは物理ページまたはフレームを指します。
• すべてのページ テーブル エントリのサイズは 64 ビットになります。
• 物理アドレス空間のサイズは 52 ビット (4096 テラバイト) に制限されていますが、当面はこれで十分です。
この質問の残りの部分は、これらの設計上の決定の結果についてです。
質問:個々のページ テーブル ページにはいくつのエントリがありますか? あなたの働きを見せてください。

少し読んだ後、ページサイズP=2^pと仮想アドレスサイズが与えられると、ビットnの仮想ページオフセット(VPO)とpビットの仮想ページ数があることがわかりました(n-p)。これにより、1 レベルのページ テーブル内の PTE の数は次のようになります。

2^n / 2^p = 2^(n-p)

レベルのページ テーブルでは、VPN を異なる VPNkに分割する必要があります。私の理解では、それらはすべて同じ長さです。これは、個々のページ テーブルの PTE の量が であることを意味します。k(n-p)/k2^((n-p)/k)

さて、私の場合、私は持っていP = 32kB = 2^15ます。これにより、15 ビットの VPO が得られます。私が見逃しているのは、仮想アドレスのサイズnです。
ワードとポインタのサイズが 64 ビットであることはわかっています。
仮想アドレスが 64 ビット幅であると想定するのは正しいですか? その場合、49/3ビット VPN を取得しますが、49で割り切れません3

4

0 に答える 0