仮想TLBの意味を知っている人はいますか?このVTLBと通常のTLBの違いは何ですか.. Googleで明確な答えが見つかりませんか?
3 に答える
vTLB は VMM (Virtual Machine Manager) によって管理されます。
ゲスト OS が CR3 への書き込みを試みる場合があります。CR3 への書き込みは、TLB フラッシュとページ テーブル変更の可能性を意味します。次の手順が実行されます。
- VMM は、新しい CR3 値 (後でゲスト ページ テーブルを移動するために使用される) を記録し、書き込みをエミュレートします。
- VMM は、すべての無効なエントリを含む新しい PD ページを割り当てます。
- VMM は、実際のプロセッサ CR3 レジスタが新しい PD ページを指すように設定します。VMM は、この時点で、パフォーマンス上の理由から、投機的に VTLB マッピングを埋めることができます。
MMU を備えた CPU をエミュレートする場合、論理アドレスから物理アドレスへの変換が高速であることが重要です。これを行うには、ハードウェアの例に従い、ソフトウェアで TLB をエミュレートします。1 つのオプションは、特定の CPU アーキテクチャの TLB の動作を明示的に模倣することです。残念ながら、TLB 操作の詳細は完全には開示されていないことが多く、たとえ開示されていたとしても、ソフトウェアでエミュレートするのはそれほど効率的ではありません。 これはあなたを助けるかもしれません
kvmコードを見ていますか?
Translation Lookaside Buffer (TLB) は、仮想アドレスから物理アドレスへのマッピングをキャッシュします。仮想 TLB はこれをソフトウェアで行います。たとえば、物理アドレスの計算が非常に複雑な場合に役立ちます。
ホスト上で実行されているゲスト VM を考えてみましょう。guestVM が仮想メモリ アドレス A にアクセスする場合、これをゲストの物理アドレス B に変換する必要があります。次に、この B をホストの仮想アドレス C に変換する必要があります (guestVM はホスト上の一種のプロセスです)。次に、これが実/ホスト物理アドレス D に変換されます。