トランスレーション・ルックアサイド・バッファ
TLBミスが発生したときの方式として、最近のアーキテクチャでは2種類の手法がある。
TLB には固定個のスロットがあり、仮想アドレスから物理アドレスへの変換のためのページテーブルエントリが入れられる。仮想アドレス空間(英語版)はプロセスから見えるメモリ空間である。この空間は固定サイズのページに分割されている。ページテーブル(通常、メモリ上にある)は、仮想ページが物理メモリ上のどの位置に対応しているかを把握している。TLBはそのページテーブルのキャッシュとして機能する。すなわち、ページテーブルの中身のサブセットだけを格納する。
TLB には物理メモリアドレスが格納される。TLBはCPUとキャッシュメモリの間に置かれている場合もあるし、キャッシュと主記憶装置の間に置かれることもあるし、複数次のキャッシュ間に置かれる場合もある。これは、キャッシュが仮想アドレスを使っているか、物理アドレスを使っているかで決定される。キャッシュが仮想アドレスを使っている場合、メモリアクセス要求はCPUからキャッシュに直接伝えられ、キャッシュにヒットしなかった場合にTLBが使われる。キャッシュが物理アドレスを使っている場合、TLBはメモリアクセスの度に必ずアクセスされ、得られた物理アドレスを使ってキャッシュにアクセスする。どちらの実装にも利点と欠点がある。仮想アドレスを使うキャッシュの場合、仮想アドレスのキーとなる部分に加え、「アドレス空間識別子」(ASID) と呼ばれるキーも持つことがある。
キャッシュとTLBのあるCPUが主記憶にアクセスするケースとして、以下の場合が考えられる。
最初のアクセス
命令キャッシュのミス時
データキャッシュのミス時
TLBミス時
必要な内容がキャッシュ上にあったとしても、TLB上にその仮想-物理変換情報がない場合、ページテーブルを辿る操作が生じるため、主記憶にアクセスすることになる。TLBミスが起きると性能が低下するため、仮想空間のあちこちにばらばらにアクセスするようなプログラムではTLBのスラッシングが起き、性能が低下する。そのためTLBをうまく機能させることが重要である。