【てぃーえるびー】

TLB(アドレス変換バッファ) とは?

公開:
💡 アドレス変換の答えを覚えておく

仮想アドレスから物理アドレスへの変換情報を一時保存するキャッシュ。ページテーブルを毎回調べる費用を減らす。TLBミスとページフォルトは同じではない。

📌 このページのポイント
TLB(アドレス変換バッファ) 変換キャッシュのヒットとミスを区別する 仮想アドレス TLBを参照 変換を利用 物理アドレスへ ミス:ページテーブルを調べる 有効な変換を得たらTLBへ補充 ヒット ミスだけではディスク読み込みやページフォルトとは限らない
アドレス変換の答えを覚えておく
ひよこ ひよこ
プログラムのアドレスは、そのままメモリの場所なの?
ペンギン先生 ペンギン先生
仮想メモリを使う仕組みでは、プログラムの仮想アドレスを物理アドレスへ変換するよ。毎回ページテーブルを詳しくたどる負担を減らすため、最近の変換情報をTLBに覚えておくんだ。
ひよこ ひよこ
普通のキャッシュメモリと何が違うの?
ペンギン先生 ペンギン先生
ここで覚えるのは主にページの対応やアクセス権などの変換情報だよ。プログラムが読みたい値そのものを保存するデータキャッシュとは役割が違う。変換が分かっても、その値を読み出す仕事は残るね。
ひよこ ひよこ
TLBミスだと、ディスクから読み直すの?
ペンギン先生 ペンギン先生
必ずしもそうではないよ。ページテーブルから有効な変換が見つかれば、それをTLBに補充して進められる。Intel文書の例ではハードウェアのページウォークが出てくるけれど、補充方法はアーキテクチャでも異なるんだ。
ひよこ ひよこ
ページフォルトとは別なんだね?
ペンギン先生 ペンギン先生
そうだよ。変換先が存在しない、アクセスが許されないなどの場合にページフォルトが起こり得る。TLBに変換がないだけのミスとは区別しよう。ページフォルトでも、すべてがディスクの読み込みになるわけではないよ。
ひよこ ひよこ
大きいページにすれば、いつも速くなるの?
ペンギン先生 ペンギン先生
1つの変換で広い範囲を扱えるため、TLBミスを減らせる場合はある。でもメモリの確保や無駄、ワークロードとの相性もあるよ。TLBミスとページフォルトを別々に測り、どちらが負担かを確認するのが大切だね。
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「TLB(アドレス変換バッファ)」は「アドレス変換の答えを覚えておく」と押さえておこう!
📖 おまけ:英語の意味
「Translation Lookaside Buffer」 = アドレス変換の補助バッファ
💬 Translation Lookaside Bufferは「アドレス変換の補助バッファ」という意味の表現だよ。

参考資料

← 用語集にもどる