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 ヒットのメモリ レイテンシを大幅に短縮できます。

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



Leave a Comment

Powerbeats Proがケースで充電できない場合の対処法

Powerbeats Proがケースで充電できない場合の対処法

Powerbeats Proが充電できない場合、別の電源を使用し、イヤフォンを清掃してください。充電中はケースを開いたままにしてください。

3Dプリントの基本:必見のメンテナンスチェックリスト

3Dプリントの基本:必見のメンテナンスチェックリスト

設備を良好な状態に保つことは必須です。ここでは、3Dプリンターを最良の状態に保つための役立つヒントをご紹介します。

キヤノン Pixma MG5220: インクなしでスキャンする方法

キヤノン Pixma MG5220: インクなしでスキャンする方法

インクが切れた場合にキヤノン Pixma MG5220でスキャンを有効にする方法。

ノートパソコンが過熱する5つの理由

ノートパソコンが過熱する5つの理由

ノートパソコンが過熱する可能性のある理由と、この問題を回避してデバイスを冷却するためのヒントやコツを見つけましょう。

GeForce Now エラーコード 0xC272008F 修正方法

GeForce Now エラーコード 0xC272008F 修正方法

ゲームを楽しむ準備が整い、『Star Wars Outlaws』をGeForce Nowでプレイしようとすると、エラーコード0xC272008Fが発生。Ubisoftゲームを再び遊ぶための唯一の解決策を見つけましょう。

3Dプリンティングの基本:3Dプリンターのメンテナンステクニック

3Dプリンティングの基本:3Dプリンターのメンテナンステクニック

3Dプリンターを維持することは、最高の結果を得るために非常に重要です。念頭に置くべき重要なヒントをご紹介します。

プリンターのIPアドレスを見つける方法

プリンターのIPアドレスを見つける方法

プリンターの使用しているIPアドレスがわからなくて困っていますか?その情報を見つける方法をお教えします。

Samsungの電話でAirPodsを使用する方法

Samsungの電話でAirPodsを使用する方法

Samsungの電話用にAirPodsを購入するかどうか迷っているなら、このガイドが役立ちます。もっとも明白な質問は、両者が互換性があるかどうかです。

修正:ChromebookがBluetoothデバイスに接続しない

修正:ChromebookがBluetoothデバイスに接続しない

BluetoothデバイスをChromebookとペアリングできない場合は、Bluetoothオプションを無効にして、ラップトップを再起動します。

ダブルVPNとは何ですか?シングルVPNよりどれだけ優れていますか?

ダブルVPNとは何ですか?シングルVPNよりどれだけ優れていますか?

ダブルVPNは、ネットワークの使用状況を監視している人からユーザーを保護するための優れた解決策です。