0

次のように仮定します。ワンレバーページングの仮想メモリを備えたシステムがあり、MMU があり、TLB はソフトウェアによって制御されています。

わかりました..では、私がプロセスであり、仮想アドレス vaddr の RAM で単語を読み取りたいとします。

そのため、CPU は MMU vaddr を提供し、MMU は vaddr の最上位 5 ビット (と仮定) を持つエントリがあるかどうかを TLB でチェックします。そこにある場合...すべて問題ありません。物理アドレスを計算し、すべてうまくいきます。

今..それがTLBになかったとします。この場合、MMU は割り込み (ページ フォールト) を発生させます。わかりました..今、私はページ違反のハンドラーにいます。

PBR (ページ ベース レジスタ) には、ページ テーブルの開始アドレスがあります。ここで私の質問です。この住所は物理的な住所ですか? 1) プロセスの仮想アドレス空間で何らかの形で予約する必要があります (そのようなことは聞いたことがありません) 2) このアドレスが TLB にない場合は、次のようになります。再びページフォールトが発生し、無限ループが発生します。

テーブル内のアドレスに関する同じ質問。2 レベルのページングがあるとします。第 1 レベルのテーブル (第 2 レベルのテーブルを指す) のエントリのアドレスは、何らかの形で仮想か物理か?

ありがとう。

4

2 に答える 2

3

宿題?

いずれにせよ、そのようなことは CPU のアーキテクチャ マニュアルに詳しく説明されています (どの CPU について話しているのかさえ書いていません - x86 は TLB ミスでページ フォールトを生成しません)。

于 2010-07-15T20:22:12.613 に答える