トランスレーション・ルックアサイド・バッファ TLBの多層化

トランスレーション・ルックアサイド・バッファ

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2017/08/09 14:54 UTC 版)

TLBの多層化

キャッシュと同様、TLBを多層化することもでき、近年では一般化している。一次TLBは小さいが非常に高速で(フル・アソシアティブの場合もある)、二次TLBは大きいがやや低速である。命令とデータで一次TLBを別々に持つ場合(ITLBとDTLB)、二次TLBも命令とデータで別々に持つ場合などがある。

例えば、インテルNehalemマイクロアーキテクチャでは、4ウェイ・セットアソシアティブの L1 DTLB(4KiBページでは64エントリ、2/4MiBページでは32エントリ)、2スレッドでスタティックに分割して使用する4KiBページで128エントリの L1 ITLB(4ウェイ・セットアソシアティブ)と2/4MiBページで14エントリの L1 ITLB(フルアソシアティブ)[1]、そして統合型の4KiBページ/512エントリの L2 TLB[2](4ウェイ・セットアソシアティブ[3])がある。

実装によっては、小さいページ用と大きなページ用にTLBを分けている場合がある。

TLBミス処理

TLBミスが発生したときの方式として、最近のアーキテクチャでは2種類の手法がある。

MMUによるTLB管理の場合
CPU自身が自動的にページテーブルを参照して、指定された仮想アドレスに対応するエントリがないか調べる(x86の場合は、CR3レジスタを使用)。エントリがあれば、必要な情報がTLBに読み込まれ、TLB参照を再実行し、TLBヒットとなってプログラムの実行は正常に続行される。CPU がページテーブルから対応するエントリを見つけられなかった場合ページフォールトが発生してオペレーティングシステム例外処理を行う。その場合、必要なデータを物理メモリにロードし、ページテーブルを書き換えて例外を発生した仮想アドレスにデータをロードした物理アドレスを対応させ、プログラムの実行を再開する(詳しくはページフォールト参照)。この場合、TLBエントリの詳細なフォーマットはソフトウェアからは見えず、同じアーキテクチャであっても互換性を失わずにCPUの機種ごとに変更(最適化)することができる。
ソフトウェアによるTLB管理の場合
TLBミスにより "TLB miss" 例外が発生し、オペレーティングシステムがページテーブルを参照してソフトウェアによるアドレス変換が行われる。オペレーティングシステムは見つかった情報をTLBに格納し TLB miss 例外を発生した命令を再実行する。MMU による TLB 管理と同様、オペレーティングシステムがページテーブルから対応する変換情報を得られなかった場合、ページフォールトが発生し、同様に処理しなければならない。このようなアーキテクチャの命令セットにはTLBを操作する命令がある。そのため、TLBエントリのフォーマットが命令セットアーキテクチャ (ISA) の一部として明示されている[4]MIPSアーキテクチャではソフトウェア管理のTLBになっている[5]SPARC V9 アーキテクチャではMMUのない実装、ソフトウェア管理のTLBを持つMMU実装、ハードウェア管理のTLBを持つMMU実装の3種類を選択可能で[6]、UltraSPARCアーキテクチャではソフトウェア管理のTLBを指定している[7]Itaniumアーキテクチャではハードウェア管理TLBとソフトウェア管理TLBを選択可能になっている[8]

Alphaアーキテクチャでは、OSではなくPALcode英語版でTLBを管理する。PALcodeはプロセッサ固有で同時にOS固有であり、OSによってPALcodeが異なり、ページテーブルのフォーマットも異なる。ハードウェアに実装されたTLBのフォーマットやTLB操作命令は同一だが、PALcodeによってソフトウェアへの見せ方が異なる[9]

TLB特性の例

  • サイズ: 8 - 4,096 エントリ
  • ヒット時にかかる時間: 0.5 - 1 クロックサイクル
  • ミス時にかかる時間: 10 - 100 クロックサイクル
  • ミス率: 0.01% - 1%
    [10]

もし、ヒット時に 1クロックサイクルかかり、ミス時に 30クロックサイクルかかって、ミス率が1%だとすると、実際のメモリアクセスにかかる平均時間はクロックサイクルとなる。




  1. ^ Inside Nehalem: Intel's Future Processor and System”. Real World Technologies. 2012年3月17日閲覧。
  2. ^ Intel Core i7 (Nehalem): Architecture By AMD?”. Tom's Hardware. 2010年11月24日閲覧。
  3. ^ Inside Nehalem: Intel's Future Processor and System”. Real World Technologies. 2010年11月24日閲覧。
  4. ^ J. Smith and R. Nair. Virtual Machines: Versatile Platforms for Systems and Processes (The Morgan Kaufmann Series in Computer Architecture and Design). Morgan Kaufmann Publishers Inc., 2005.
  5. ^ Welsh, Matt. “MIPS r2000/r3000 Architecture”. 2008年11月16日閲覧。 “If no matching TLB entry is found, a TLB miss exception occurs”
  6. ^ SPARC International, Inc.. The SPARC Architecture Manual, Version 9. PTR Prentice Hall.. http://www.sparc.org/standards/SPARCV9.pdf 
  7. ^ Sun Microsystems. UltraSPARC Architecture 2005. Draft D0.9.2, 19 Jun 2008. Sun Microsystems.. http://docs.huihoo.com/opensparc/UA2005-current-draft-P-EXT.pdf 
  8. ^ Virtual Memory in the IA-64 Kernel > Translation Lookaside Buffer
  9. ^ Compaq Computer Corporation. Alpha Architecture Handbook. Version 4. Compaq Computer Corporation.. http://h18000.www1.hp.com/alphaserver/technology/literature/alphaahb.pdf 
  10. ^ David A. Patterson; John L. Hennessy (2009). Computer Organization And Design. Hardware/Software interface. 4th edition. Burlington, MA 01803, USA: Morgan Kaufmann Publishers. p. 503. ISBN 978-0-12-374493-7. 
  11. ^ D. Abramson, J. Jackson, S. Muthrasanallur, G. Neiger, G. Regnier, R. Sankaran, I. Schoinas, R. Uhlig, B. Vembu, and J. Wiegert. Intel Virtualization Technology for Directed I/O. Intel Technology Journal, 10(03):179–192.
  12. ^ Advanced Micro Devices. AMD Secure Virtual Machine Architecture Reference Manual. Advanced Micro Devices, 2008.
  13. ^ G. Neiger, A. Santoni, F. Leung, D. Rodgers, and R. Uhlig. Intel Virtualization Technology: Hardware Support for Efficient Processor Virtualization. Intel Technology Journal, 10(3).
  14. ^ Advanced Micro Devices. AMD Secure Virtual Machine Architecture Reference Manual. Advanced Micro Devices, 2008.





英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「トランスレーション・ルックアサイド・バッファ」の関連用語

トランスレーション・ルックアサイド・バッファのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



トランスレーション・ルックアサイド・バッファのページの著作権
Weblio 辞書情報提供元は参加元一覧にて確認できます。

  
ウィキペディアウィキペディア
All text is available under the terms of the GNU Free Documentation License.
この記事は、ウィキペディアのトランスレーション・ルックアサイド・バッファ (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。 Weblio辞書に掲載されているウィキペディアの記事も、全てGNU Free Documentation Licenseの元に提供されております。

©2021 GRAS Group, Inc.RSS