CPUキャッシュはどのように機能しますか? L1、L2、およびL3キャッシュとは何ですか?

コンピュータプロセッサは、近年かなり進歩しています。トランジスタは年々小さくなり、ムーアの法則が冗長になりつつあるところまで進歩が見られます。

プロセッサに関して言えば、重要なのはトランジスタと周波数だけでなく、キャッシュでもあります。

CPU(中央処理装置)について話し合っているときに、キャッシュメモリについて聞いたことがあるかもしれません。ただし、これらのCPUキャッシュメモリ数には十分な注意を払っていません。また、これらはCPUアドバタイズメントの主要なハイライトでもありません。

では、CPUキャッシュは正確にどれほど重要であり、どのように機能するのでしょうか。

CPUキャッシュメモリとは何ですか?

簡単に言えば、CPUメモリキャッシュは非常に高速なタイプのメモリです。コンピューティングの初期には、プロセッサ速度とメモリ速度は低かった。ただし、1980年代には、プロセッサの速度が急速に向上し始めました。当時のシステムメモリ(RAM)は、CPU速度の上昇に対応または対応できなかったため、新しいタイプの超高速メモリであるCPUキャッシュメモリが誕生しました。

これで、コンピュータには複数の種類のメモリが搭載されています。

ハードディスクやSSDなど、データの大部分(オペレーティングシステムとプログラム)を格納するプライマリストレージがあります。

次は、一般にRAMとして知られているランダムアクセスメモリです。これはプライマリストレージよりもはるかに高速ですが、短期間のストレージメディアにすぎません。コンピューターとその上のプログラムは、RAMを使用して頻繁にアクセスされるデータを保存し、コンピューターでのアクションを高速に維持するのに役立ちます。

最後に、CPUには、CPUメモリキャッシュと呼ばれるさらに高速なメモリユニットがあります。

コンピュータメモリには、動作速度に基づいた階層があります。 CPUキャッシュはこの階層の最上位にあり、最速です。また、CPU自体の一部であるため、中央処理が発生する場所に最も近くなります。

コンピュータメモリにもさまざまな種類があります。

キャッシュメモリはスタティックRAM(SRAM)の一種ですが、通常のシステムRAMはダイナミックRAM(DRAM)と呼ばれます。スタティックRAMは、DRAMとは異なり、常に更新する必要なしにデータを保持できるため、SRAMはキャッシュメモリに最適です。

CPUキャッシュはどのように機能しますか?

コンピューター上のプログラムとアプリは、CPUが解釈して実行する一連の命令として設計されています。プログラムを実行すると、命令はプライマリストレージ(ハードドライブ)からCPUに送られます。ここで、メモリ階層が機能します。

データは最初にRAMにロードされ、次にCPUに送信されます。最近のCPUは、1秒あたり膨大な数の命令を実行することができます。その能力を最大限に活用するには、CPUは超高速メモリにアクセスする必要があります。これがCPUキャッシュの出番です。

メモリコントローラはRAMからデータを取得し、CPUキャッシュに送信します。 CPUに応じて、コントローラーはCPUにあり、ノースブリッジチップセットはマザーボードにあります。

次に、メモリキャッシュは、CPU内でデータのやり取りを実行します。 CPUキャッシュ内にもメモリ階層が存在します。

関連: CPUとは何ですか?それは何をしますか?

CPUキャッシュメモリのレベル:L1、L2、およびL3

CPUキャッシュメモリは、L1、L2、L3の3つの「レベル」に分けられます。メモリ階層は、速度、つまりキャッシュのサイズに応じて異なります。

では、CPUキャッシュサイズはパフォーマンスに違いをもたらしますか?

L1キャッシュ

L1(レベル1)キャッシュは、コンピューターシステムに存在する最速のメモリです。アクセスの優先度に関して、L1キャッシュには、特定のタスクの完了中にCPUが必要とする可能性が最も高いデータが含まれています。

L1キャッシュのサイズは、CPUによって異なります。一部のトップエンドのコンシューマーCPUは、Inteli9-9980XEのように1MBのL1キャッシュを備えていますが、これらは莫大な費用がかかり、まだ数が少なく、その中間です。 IntelのXeonシリーズなどの一部のサーバーチップセットも、1〜2MBのL1メモリキャッシュを備えています。

「標準」のL1キャッシュサイズはないため、購入する前にCPU仕様を確認して正確なL1メモリキャッシュサイズを決定する必要があります。

L1キャッシュは通常、命令キャッシュとデータキャッシュの2つのセクションに分割されます。命令キャッシュはCPUが実行する必要のある操作に関する情報を処理し、データキャッシュは操作が実行されるデータを保持します。

L2キャッシュ

L2(レベル2)キャッシュは、L1キャッシュよりも低速ですが、サイズが大きくなります。 L1キャッシュがキロバイト単位で測定される場合、最新のL2メモリキャッシュはメガバイト単位で測定されます。たとえば、AMDの高評価のRyzen 5 5600Xには、384KBのL1キャッシュと3MBのL2キャッシュ(および32MBのL3キャッシュ)があります。

L2キャッシュサイズはCPUによって異なりますが、通常、そのサイズは256KBから8MBの間です。最近のほとんどのCPUは256KB以上のL2キャッシュをパックし、このサイズは現在小さいと見なされています。さらに、最新のCPUの中で最も強力なものの中には、8MBを超えるより大きなL2メモリキャッシュを備えているものがあります。

速度に関しては、L2キャッシュはL1キャッシュよりも遅れていますが、それでもシステムRAMよりもはるかに高速です。 L1メモリキャッシュは通常RAMより100倍高速ですが、L2キャッシュは約25倍高速です。

L3キャッシュ

L3(レベル3)キャッシュに。初期の頃、L3メモリキャッシュは実際にはマザーボード上にありました。これは非常に昔のことで、ほとんどのCPUが単なるシングルコアプロセッサでした。これで、CPUのL3キャッシュは大規模になる可能性があり、トップエンドのコンシューマーCPUは最大32MBのL3キャッシュを備えています。一部のサーバーCPUL3キャッシュはこれを超える可能性があり、最大64MBを備えています。

L3キャッシュは最大ですが、最も遅いキャッシュメモリユニットでもあります。最新のCPUには、CPU自体にL3キャッシュが含まれています。ただし、L1およびL2キャッシュはチップ自体のコアごとに存在しますが、L3キャッシュは、チップ全体で使用できる一般的なメモリプールに似ています。

次の画像は、Intel Core i5-3570KCPUのCPUメモリキャッシュレベルを示しています。

L1キャッシュが2つに分割され、L2とL3がそれぞれ大きいことに注意してください。

どのくらいのCP​​Uキャッシュメモリが必要ですか?

いい質問ですね。ご想像のとおり、多ければ多いほど良いです。最新のCPUには、当然、旧世代よりも多くのCPUキャッシュメモリが含まれ、キャッシュメモリも高速になる可能性があります。あなたができることの1つは、 CPUを効果的に比較する方法を学ぶことです。そこにはたくさんの情報があり、異なるCPUを比較対照する方法を学ぶことは、正しい購入決定を下すのに役立ちます。

データはCPUメモリキャッシュ間をどのように移動しますか?

大きな質問:CPUキャッシュメモリはどのように機能しますか?

最も基本的な用語では、データはRAMからL3キャッシュ、次にL2、最後にL1に流れます。プロセッサが操作を実行するためのデータを探しているとき、最初にL1キャッシュでそのデータを見つけようとします。 CPUがそれを検出した場合、その状態はキャッシュヒットと呼ばれます。次に、L2、L3の順に検索します。

CPUがどのメモリキャッシュにもデータを見つけられない場合、CPUはシステムメモリ(RAM)からデータにアクセスしようとします。これが発生すると、キャッシュミスと呼ばれます。

ご存知のように、キャッシュはメインメモリとCPUの間で情報をやり取りする速度を上げるように設計されています。メモリからデータにアクセスするために必要な時間は「レイテンシ」と呼ばれます。

L1キャッシュメモリのレイテンシは最も低く、コアに最も近く、最も速く、L3が最も高くなっています。 CPUがシステムメモリからデータを取得する必要があるため、キャッシュミスが発生すると、メモリキャッシュの待ち時間が長くなります。

コンピュータがより高速で効率的になるにつれて、遅延は減少し続けます。低レイテンシのDDR4RAMと超高速SSDによりレイテンシが削減され、システム全体がこれまでになく高速になります。その中で、システムメモリの速度も重要です。

CPUキャッシュメモリの未来

キャッシュメモリの設計は、特にメモリがより安く、より速く、より高密度になるにつれて、常に進化しています。たとえば、AMDの最新のイノベーションの1つは、スマートアクセスメモリとインフィニティキャッシュであり、どちらもコンピュータのパフォーマンスを向上させます。