2

ページサイズがISAの一部として指定されている理由を理解しようとしています。ページサイズが命令セットアーキテクチャの一部として指定されているのはなぜですか?

具体的には、ハードウェアモジュール(MMU、TLB)(オペレーティングシステムを除く)がページサイズ情報を使用して特定の機能を提供する詳細を探しています。

ページサイズがOSによって決定されるのではなく、ISAの一部でなければならない理由を教えてください。

ありがとうございました。

+2

プログラミングに関する質問ではないので、この質問をトピックとしてクローズすることにしました。 –

答えて

0

翻訳にアドレスが適用されるかどうかを判断するには、TLBハードウェアがページサイズを知っている必要があります。例えば翻訳があれば、2500バイト上のアドレスでその翻訳が使用されているのでしょうか?

または、別の言い方をすれば、TLBはどのアドレスビットが(ページ内の)ページオフセットの一部であり、どのビットが仮想から物理に変換する必要があるかを知る必要があります。

また、HWページウォークを持つアーキテクチャでは、ページテーブル形式全体がISAの一部です。

+0

仮説的なシナリオでは、ハードウェアTLBがなくhwページウォークはないが、翻訳を支援するMMUがあると仮定すると、Page SizeがISAの一部である必要はありません。正しい? OSがページテーブルとページウォークを管理し、MMUがオフセットを除いたVPN部分を変換するだけなので。あるいは、アーキテクチャのどこかでPage Size情報が必要なのでしょうか? –

+0

@UchiaItachi:それ以外は何も思い付きません。物理への変換は早期に起こり、その後、キャッシュ/メモリシステムの残りの部分は物理アドレスを使用する。ページベースのTLBを使用しない設計では、ソフトウェア管理のベース/リミット変換エントリを使用できます。すべての翻訳で固定サイズで使用できますが、HWはいくつかの翻訳スロットしか提供しないため、エクステントのように使用する方がはるかに優れています。つまり、マッピングしている全範囲の翻訳です。 –

+0

HW変換なしでは、すべてのMMUが行うことができるすべての*メモリアクセスでソフトウェア変換を呼び出すことができます。通常のCPU上のほとんどのワークロードでは、仮想メモリは2%のパフォーマンスを要します。すべてのメモリアクセスでソフトウェアミスハンドラを呼び出すと、おそらく少なくとも100%、おそらく1000%のペナルティが課せられます。ああ、それはコードフェッチを含める必要があります。したがって、おそらく10の要素は過小評価です。 (CPU全体に例外が発生するのではなく)ミスハンドラユニット用のファームウェアを提供できる場合、またはページサイズが単純に設定可能であった場合は、より妥当性があります。 –

関連する問題