【てぃーえるびー】
TLB(アドレス変換バッファ) とは?
公開:
💡 アドレス変換の答えを覚えておく
仮想アドレスから物理アドレスへの変換情報を一時保存するキャッシュ。ページテーブルを毎回調べる費用を減らす。TLBミスとページフォルトは同じではない。
📌 このページのポイント
- 仮想ページと物理ページの対応やアクセス権など、アドレス変換に必要な情報を保持する
- ヒット時はキャッシュした変換を使い、ミス時はページテーブルなどで変換を求める
- TLBにないだけなら、データがメモリにあってもミスになる。必ずディスクを読むわけではない
- ページサイズ、アクセスの局所性、TLBの構成などでミスや処理費用が変わる
プログラムのアドレスは、そのままメモリの場所なの?
普通のキャッシュメモリと何が違うの?
ここで覚えるのは主にページの対応やアクセス権などの変換情報だよ。プログラムが読みたい値そのものを保存するデータキャッシュとは役割が違う。変換が分かっても、その値を読み出す仕事は残るね。
TLBミスだと、ディスクから読み直すの?
ページフォルトとは別なんだね?
そうだよ。変換先が存在しない、アクセスが許されないなどの場合にページフォルトが起こり得る。TLBに変換がないだけのミスとは区別しよう。ページフォルトでも、すべてがディスクの読み込みになるわけではないよ。
大きいページにすれば、いつも速くなるの?
1つの変換で広い範囲を扱えるため、TLBミスを減らせる場合はある。でもメモリの確保や無駄、ワークロードとの相性もあるよ。TLBミスとページフォルトを別々に測り、どちらが負担かを確認するのが大切だね。
まとめ:ざっくりこれだけ覚えればOK!
「TLB(アドレス変換バッファ)」は「アドレス変換の答えを覚えておく」と押さえておこう!
📖 おまけ:英語の意味
「Translation Lookaside Buffer」 = アドレス変換の補助バッファ
💬 Translation Lookaside Bufferは「アドレス変換の補助バッファ」という意味の表現だよ。