Translation Lookaside Bufferとは何ですか?

CPU は信じられないほど複雑な獣です。私たちが見ているパフォーマンスのレベルを達成するために、すべてが完全に調和して動作しなければならない、膨大な数の相互接続部分があります。メモリ パフォーマンスは、特に制限要因として、最新の CPU のパフォーマンスにおける重要な要素です。

なぜメモリ速度がそれほど重要なのですか?

CPU は信じられないほど高速で、適切に冷却された場合、最新世代は 5.7 GHz で動作します。これにより、毎秒 57 億回の操作を完了することができます。これらの操作の多くは、メモリに格納する必要があるある種のデータに対してアクションを実行します。

RAM と呼ばれるメイン システム メモリも非常に高速です。残念ながら、CPU 以外のものと比較すると非常に高速です。最新のハイエンド RAM の絶対レイテンシは 60 ナノ秒程度です。残念ながら、これはおよそ 342 CPU サイクルに相当します。メモリ アクセスを高速化するために、データを動的にキャッシュする CPU キャッシュが使用されます。このキャッシュは CPU ダイ自体にあり、DRAM セルではなく SRAM セルを使用するため、はるかに高速になります。残念ながら、CPU キャッシュもシステム RAM よりもはるかに小さく、通常は合計で 100MB にもなりません。それでも、サイズが小さいにもかかわらず、階層化された CPU キャッシュ システムにより、システム パフォーマンスが大幅に向上します。

すべてを台無しにする仮想メモリが登場

現代のコンピュータは、仮想メモリと呼ばれるシステムを利用しています。物理メモリ アドレスをプロセスに割り当てるのではなく、仮想メモリ アドレスを使用します。各プロセスには、独自の仮想メモリ アドレス空間があります。これには 2 つの利点があります。まず、あるプロセスに属するメモリと別のプロセスに属するメモリを簡単に分離できます。これにより、悪意のあるソフトウェアが他のソフトウェアのメモリからデータを読み取り、機密情報にアクセスする可能性がある攻撃を防ぐことができます。また、プロセスから物理メモリ構造を隠します。これにより、CPU は、ほとんど使用されないメモリのビットを、必ずしも仮想 RAM からアンマウントすることなく、ストレージ上のページング ファイルに移動できます。これにより、コンピューターは、物理的に存在するよりも多くの RAM が必要なシナリオを穏やかに管理できます。仮想メモリがなければ、

残念ながら、仮想メモリ アドレスを使用する場合、コンピュータは実際にこれらの仮想メモリ アドレスを物理メモリ アドレスに変換してデータを読み取る必要があります。これには、仮想メモリ アドレスから物理メモリ アドレスへのすべての変換を格納するテーブルが必要です。このサイズは、使用中の RAM の量に直接依存します。少なくともシステム RAM の容量と比較すると、一般的にかなり小さいです。残念ながら、仮想アドレスと物理アドレス間の変換を RAM に格納する場合、RAM へのすべての要求に対して、RAM に対して 2 つの要求を行う必要があります。1 つはリクエストする物理アドレスを検索し、もう 1 つは実際にその場所にアクセスします。

変換ルックアサイド バッファに入る

この問題の解決策は、変換テーブルをより高速な場所に格納することです。CPU キャッシュは、少なくとも速度の観点からは、法案にうまく適合します。ただし、これに関する問題は、CPU キャッシュが小さく、すでに大量に使用されていることです。テーブルがキャッシュに収まらないだけでなく、そうすると、すでにパフォーマンスを定義している使用が中断されます。

もちろん、キャッシュの原理がすでにメモリ アクセスで機能しているのであれば、変換テーブルでも同じことを繰り返してみませんか? そして、まさにそれが Translation Lookaside Buffer (TLB) です。最近のアドレス変換用の高速キャッシュです。テーブル全体を格納するには十分な大きさではありませんが、サイズが小さいということは、1 クロック サイクル内で非常に迅速に応答できることを意味します。

すべてのメモリ要求は TLB 経由で送信されます。TLB ヒットがある場合、実際の要求に物理メモリ アドレスを提供できますが、通常は 1 サイクルのレイテンシが追加されます。TLB ミスがある場合、メイン メモリからルックアップを実行する必要があります。約 5 サイクルの TLB ミスに対するわずかなパフォーマンス ペナルティがあり、メモリ アクセス レイテンシによって失われる以上の損失です。アドレス変換がシステム RAM から取得されると、TLB にプッシュされ、すぐに TLB ヒットで要求が繰り返されます。

注: TLB エビクションにはさまざまなスキームがあります。First In、First Out、または FIFO スキームを使用するものもあります。他のユーザーは、最も頻繁に使用されないスキームまたは LFU スキームを使用する場合があります。

まれに、アドレス変換テーブルにエントリがない場合、要求されたデータが RAM にないため、ページ フォールトが発生します。その後、OS は障害を処理し、ストレージから RAM にデータを転送してから要求を続行する必要があります。

結論

Translation Lookaside Buffer (TLB) は、システム RAM のページ ファイルから最近のアドレス変換をキャッシュする専用の高速 CPU キャッシュです。これは、最新のすべてのコンピューターに実装されている仮想メモリ システムが、RAM へのすべての要求に対して RAM への 2 つの要求を必要とするため、必要です。1 つは仮想メモリ アドレスを物理メモリ アドレスに変換するためのもので、もう 1 つは実際に物理アドレスにアクセスするためのものです。最近の翻訳をキャッシュすることで、TLB ヒットのメモリ レイテンシを大幅に短縮できます。

キャッシュされた翻訳が現在アクティブなプロセスに関連するように注意する必要があります。各プロセスには異なる仮想アドレス空間があるため、それらを再利用することはできません。これを厳密に制限しなかったことが、メルトダウン脆弱性の背後にある原因でした。



ハードドライブのクローンを作成する方法

ハードドライブのクローンを作成する方法

データが貴重な資産である現代のデジタル時代では、Windows 上でハード ドライブのクローンを作成することは、多くの人にとって重要なプロセスとなる可能性があります。この包括的なガイド

Windows 10でドライバーWUDFRdのロードに失敗した場合の修正方法

Windows 10でドライバーWUDFRdのロードに失敗した場合の修正方法

コンピュータの起動中に、ドライバ WUDFRd をコンピュータに読み込めなかったことを示すエラー メッセージが表示されましたか?

NVIDIA GeForce Experienceエラーコード0x0003を修正する方法

NVIDIA GeForce Experienceエラーコード0x0003を修正する方法

デスクトップで NVIDIA GeForce experience エラー コード 0x0003 が発生していますか? 「はい」の場合は、ブログを読んで、このエラーをすばやく簡単に修正する方法を見つけてください。

Chromebook の電源が入らないのはなぜですか

Chromebook の電源が入らないのはなぜですか

「Chromebook の電源がオンにならないのはなぜですか?」という質問に対する答えを見つけます。この役立つガイドは Chromebook ユーザー向けです。

Fitbit Versa 4 の文字盤を変更する方法

Fitbit Versa 4 の文字盤を変更する方法

Fitbit Versa 4 の文字盤を無料で変更して、時計の外観を毎日変えることができます。それがいかに早くて簡単かを見てください。

ルンバが止まったり、くっついたり、向きを変えたりする – 修正

ルンバが止まったり、くっついたり、向きを変えたりする – 修正

ルンバ ロボット掃除機が停止し、固着し、回転し続ける問題を修正します。

Steam Deckのグラフィック設定を変更する方法

Steam Deckのグラフィック設定を変更する方法

Steam デッキは、堅牢で多彩なゲーム体験をすぐに提供します。ただし、ゲームを最適化し、可能な限り最高のパフォーマンスを保証するには、

分離ベースのセキュリティとは何ですか?

分離ベースのセキュリティとは何ですか?

サイバーセキュリティの世界でますます重要になっているトピック、つまり分離ベースのセキュリティを詳しく掘り下げる予定でした。このアプローチは、

Chromebook でオート クリッカーを使用する方法

Chromebook でオート クリッカーを使用する方法

今日は、Chromebook で繰り返しクリックするタスクを自動化できるツール、オート クリッカーについて詳しく説明します。このツールは時間を節約し、

SMPSとは何ですか?

SMPSとは何ですか?

コンピューターに SMPS を選択する前に、SMPS とは何か、およびさまざまな効率評価の意味を理解してください。