0

私は簡単な方法でTLBがどのように機能するかを読んでいますが、何かがわかりません。

TLBは、テーブル内の物理メモリアドレスを参照します。これは、CPUとCPUキャッシュの間、CPUキャッシュとプライマリストレージメモリの間、またはマルチレベルキャッシュのレベルの間に存在する場合があります。配置によって、キャッシュが物理アドレス指定と仮想アドレス指定のどちらを使用するかが決まります。キャッシュが仮想的にアドレス指定されている場合、要求はCPUからキャッシュに直接送信され、TLBはキャッシュミスの場合にのみアクセスされます。キャッシュが物理的にアドレス指定されている場合、CPUはすべてのメモリ操作でTLBルックアップを実行し、結果の物理アドレスがキャッシュに送信されます。

概要:TLBがCPUとCPUキャッシュの間にある場合、物理アドレスを使用し、CPUはすべてのメモリ操作でTLBルックアップを実行し、結果の物理アドレスがキャッシュに送信されます。

私の質問:CPUは仮想アドレスを処理するので、このクエリはどのように実行されますか?

わかりません:CPUが仮想アドレスに遭遇しました->CPUが物理アドレスでアドレス指定されたTLBに接続します->?? ->TLBは別の物理アドレスを吐き出します

TLB:

| Physical Address | Another Physical Address |

これは私にはまったく意味がありません

ウィキペディアから取得

4

3 に答える 3

1

TLB が物理的にアドレス指定されているとどこに記載されていますか?
もちろん、TLB は仮想から物理に変換されます。キャッシュが物理的にアドレス指定されると、次のフローが得られます。キャッシュ ルックアップは物理アドレスで行われます。

TLB:

| virt Address | Physical Address |

キャッシュ:

| Physical Address |        Data           |

上記のセクションでは、キャッシュがここのように物理的にアドレス指定されている場合、すべてのアクセスで (ヒット/ミスを知る前に) TLB ルックアップが必要であると述べていますが、キャッシュが仮想的にアドレス指定されている場合は、変換する前にキャッシュをルックアップできます。 、見逃してメモリ/下位(物理的にアドレス指定された)キャッシュに移動する必要がある場合にのみTLBに移動します

于 2013-07-20T07:19:21.237 に答える
0

私によると、キャッシュミスが発生した場合、CPUは常にTLBをルックアップします... CPUは、アドレスが仮想アドレスか物理アドレスかを独自に認識しません..したがって、CPU---> CPUキャッシュ--->(キャッシュの場合ミス) TLB--->(TLB ミスの場合)--->セカンダリ メモリ

ページのフェッチ中に..TLB エントリ、CPU キャッシュはこの最近のエントリで更新されます..

于 2013-03-14T11:23:35.417 に答える