私はあなたの混乱を見ていると思います。TLBとデータキャッシュは2つの別個のメカニズムです。どちらも一種のキャッシュですが、異なるものをキャッシュします。
TLBは、仮想アドレスから物理アドレスへのルックアップ用のキャッシュです。ページテーブルは、仮想アドレスをマップする方法を提供します↦物理アドレス。ページテーブルで仮想アドレスを検索します。ただし、ページテーブルでのルックアップは低速です(2〜3のメモリロードが必要です)。命令がメモリにアクセスするたびにプロセッサがこのルックアップを実行する必要がある場合、これにより大幅な速度低下が発生します。
したがって、TLBはこのルックアップの専用キャッシュとして機能します。TLBにはいくつかのTLBエントリがあり、各TLBエントリには仮想アドレスとそれに対応する物理アドレスの両方が含まれています。
TLBにより、プロセッサは仮想アドレスを物理アドレスに非常に迅速に変換できます。命令が(仮想)アドレスでメモリ操作を行うようにプロセッサに要求すると、プロセッサは最初にTLBにその仮想アドレスのエントリが含まれているかどうかを確認します。存在する場合、それはTLBルックアップの「キャッシュヒット」と呼ばれ、TLBエントリには変換された物理アドレスも含まれているため、プロセッサは使用する物理アドレスをすぐに認識します。そうでない場合は、TLBルックアップのキャッシュミスであり、プロセッサはページテーブルをたどって仮想から物理への変換を手間をかけなければなりません。(その変換が完了すると、TLBにエントリが追加され、その仮想アドレスの将来の変換がより迅速に行われるようになります。)
データキャッシュは、メモリの内容のキャッシュです。メインメモリでは、物理アドレスを指定し、その物理アドレスの値を読み取ることができます。ただし、メインメモリは低速です。メモリ操作を行うたびにメインメモリに移動する必要がある場合、プロセッサは非常に遅くなります。
したがって、データキャッシュはメモリ読み取り専用のキャッシュとして機能します。データキャッシュにはいくつかのキャッシュエントリがあり、各キャッシュエントリには物理アドレスとそのアドレスのメモリの値が含まれます。
データキャッシュにより、プロセッサはメモリから非常に迅速に読み取ることができます。プロセッサが(物理)アドレスのメモリを読み取りたい場合、最初にデータキャッシュをチェックして、そのアドレスのキャッシュエントリが含まれているかどうかを確認します。存在する場合、これは「キャッシュヒット」(データキャッシュ内)と呼ばれ、プロセッサはメインキャッシュにアクセスすることなく、そのキャッシュエントリに格納されているデータ値をすぐに使用できます。そうでない場合、これは(データキャッシュの)「キャッシュミス」であり、プロセッサはメインメモリにアクセスする必要があります。(プロセッサがメインメモリからそのアドレスの値を受け取った後、データキャッシュにキャッシュエントリを追加して、同じアドレスを読み取ろうとするとデータキャッシュにヒットするようにします。)
どちらもキャッシュですが、目的は異なります。プロセッサは、各メモリ操作に両方を使用します。最初にTLBを使用して仮想アドレスから物理アドレスに変換し、次にデータキャッシュをチェックして、そのアドレスのメモリに格納されている値の読み取りプロセスを高速化します。
詳細については、TLBに関するWikipediaの記事をご覧ください。検索を行うと、TLBおよびデータキャッシュで利用可能な他の多くの情報があります。「TLB」と「L1キャッシュ」または「L2キャッシュ」を検索することをお勧めします(後者2はデータキャッシュの一種です)。
(今後の参考のために、ここで質問する前に質問を調査し、標準のインターネットソースを確認することを期待しています。答えがウィキペディアで見つかる場合は、自分で十分な調査を行っていない可能性があります。ここで質問する前にTLBの方法についてインターネットソースを確認した方が幸運です。また、Stack Overflowユーザーにどの程度の研究努力が期待されますか?を参照してください。研究スキル-あなたのキャリアを通じてあなたにとって価値のあるもの。)