ゲームにはレベル 3 キャッシュが必要ですか? プロセッサ。 プロセッサのキャッシュ メモリを増やす方法はありますか?

キャッシュは、要求される可能性が最も高い情報を含む高速アクセスの中間バッファです。 キャッシュ内のデータへのアクセスは、動作メモリ (RAM) から元のデータを取得するよりも高速であり、外部メモリ (ハード ドライブまたはソリッド ステート ドライブ) よりも高速であるため、平均アクセス時間が短縮され、コンピュータ システムの全体的なパフォーマンスが向上します。

多くの中央処理装置 (CPU) モデルには、レジスタよりも遅いランダム アクセス メモリ (RAM) へのアクセスを最小限に抑えるために独自のキャッシュがあります。 RAM クロック速度が CPU クロック速度よりも大幅に低い場合、キャッシュ メモリはパフォーマンスに大きな利点をもたらします。 キャッシュ メモリのクロック速度は、通常、CPU 速度とそれほど遅くありません。

キャッシュレベル

CPU キャッシュはいくつかのレベルに分割されています。 現在の汎用プロセッサでは、レベルの数は最大 3 まであります。レベル N+1 キャッシュは通常、レベル N キャッシュよりもサイズが大きく、アクセス速度とデータ転送が遅くなります。

最も高速なメモリは、第 1 レベルのキャッシュ、つまり L1 キャッシュです。 実際、それは同じチップ上に配置され、機能ブロックの一部であるため、プロセッサの不可欠な部分です。 最新のプロセッサでは、L1 キャッシュは通常、命令キャッシュとデータ キャッシュ (ハーバード アーキテクチャ) の 2 つのキャッシュに分割されています。 L1 キャッシュのないほとんどのプロセッサは機能しません。 L1 キャッシュはプロセッサ周波数で動作し、一般にクロック サイクルごとにアクセスできます。 多くの場合、複数の読み取り/書き込み操作を同時に実行できます。 アクセス遅延は通常 2 ~ 4 コア クロック サイクルです。 通常、ボリュームは小さく、384 KB 以下です。

2 番目に速いのは L2 キャッシュです。これは通常、L1 と同様にチップ上に配置される 2 番目のレベルのキャッシュです。 古いプロセッサでは、マザーボード上のチップのセット。 L2 キャッシュ ボリュームは 128 KB から 1?12 MB まで。 最新のマルチコア プロセッサでは、同じチップ上にある 2 次キャッシュは別のメモリです。合計キャッシュ サイズは nM MB、各コアには nM/nC MB があり、nC はプロセッサ コアの数です。 通常、コア チップ上にある L2 キャッシュのレイテンシは 8 ~ 20 コア クロック サイクルです。

第 3 レベルのキャッシュは最も高速ではありませんが、サイズは非常に大きくなり、24 MB を超える場合があります。 L3 キャッシュは以前のキャッシュよりも遅くなりますが、それでも RAM よりは大幅に高速です。 マルチプロセッサ システムでは一般的に使用されており、異なる L2 からのデータを同期することを目的としています。

場合によっては 4 次キャッシュも存在しますが、通常は別のチップにあります。 レベル 4 キャッシュの使用は、高性能サーバーとメインフレームに対してのみ正当化されます。

異なるキャッシュ (1 つのプロセッサと複数のプロセッサの両方) 間の同期の問題は、キャッシュ コヒーレンスによって解決されます。 異なるレベルのキャッシュ間、つまりキャッシュ アーキテクチャ間で情報を交換するには、包括的、排他的、非排他的という 3 つのオプションがあります。

AMD プロセッサにとって L3 キャッシュはどのくらい重要ですか?

実際、マルチコア プロセッサに、利用可能なすべてのコアで共有される専用メモリを装備することは理にかなっています。 この役割では、高速の第 3 レベル (L3) キャッシュにより、最も頻繁に要求されるデータへのアクセスが大幅に高速化されます。 そうすれば、可能であれば、コアは低速のメイン メモリ (RAM) にアクセスする必要がなくなります。

少なくとも理論上は。 最近AMD Athlon II X4プロセッサを発表、これは L3 キャッシュのない Phenom II X4 モデルであり、それほど必要ではないことを示唆しています。 2 つのプロセッサ (L3 キャッシュありとなし) を直接比較して、キャッシュがパフォーマンスにどのような影響を与えるかをテストすることにしました。

写真をクリックすると拡大します。

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

テストに入る前に、いくつかの基本を理解することが重要です。 キャッシュの原理は非常に単純です。 キャッシュは、プロセッサの処理コアのできるだけ近くでデータをバッファリングし、より遠くの低速メモリへの CPU リクエストを減らします。 最新のデスクトップ プラットフォームでは、キャッシュ階層には RAM へのアクセスの前に 3 つのレベルが含まれています。 さらに、第 2 レベル、特に第 3 レベルのキャッシュは、データをバッファリングするだけではありません。 その目的は、コアが情報を交換する必要があるときにプロセッサ バスが過負荷になるのを防ぐことです。

ヒットとミス

キャッシュ アーキテクチャの有効性は、ヒット率によって測定されます。 キャッシュによって満たされるデータ要求はヒットとみなされます。 このキャッシュに必要なデータが含まれていない場合、リクエストはメモリ パイプラインに沿ってさらに渡され、ミスがカウントされます。 もちろん、ミスがあれば情報を入手するのに時間がかかります。 その結果、コンピューティング パイプラインに「バブル」(アイドル状態)と遅延が発生します。 逆に、ヒットすると、最大のパフォーマンスを維持できます。

キャッシュエントリ、排他性、一貫性

置換ポリシーは、新しいエントリのためにキャッシュ内の領域をどのように解放するかを決定します。 キャッシュに書き込まれたデータは最終的にメイン メモリに表示される必要があるため、システムはキャッシュへの書き込みと同時にこれを行う場合 (ライトスルー)、またはデータ領域を「ダーティ」としてマークし (ライトバック) 、データ領域に書き込む場合があります。メモリがキャッシュから削除されるとき。

複数のキャッシュ レベルのデータを排他的に、つまり冗長性を持たずに保存できます。 そうすれば、2 つの異なるキャッシュ階層で同じデータ行は見つかりません。 または、キャッシュは包括的に機能します。つまり、下位のキャッシュ レベルには、上位のキャッシュ レベル (プロセッサ コアに近い) に存在するデータが含まれることが保証されます。 AMD Phenom は排他的な L3 キャッシュを使用しますが、Intel は包括的なキャッシュ戦略に従います。 コヒーレンシ プロトコルは、さまざまなコア、キャッシュ レベル、さらにはプロセッサ間でのデータの整合性と鮮度を保証します。

キャッシュサイズ

キャッシュが大きいほど、より多くのデータを保持できますが、待ち時間が長くなる傾向があります。 さらに、大規模なキャッシュはかなりの数のプロセッサ トランジスタを消費するため、トランジスタの予算、ダイ サイズ、消費電力、パフォーマンス/レイテンシの間のバランスを見つけることが重要です。

結合性

RAM 内のエントリは、キャッシュに直接マッピングできます。つまり、RAM からのデータのコピーにはキャッシュ位置が 1 つだけ存在します。または、n ウェイ アソシアティブにすることもできます。つまり、キャッシュ内に n 個の可能な場所があります。データが保存される場合があります。 連想性の度合いが高くなると (完全連想キャッシュまで)、キャッシュ内の既存のデータを書き換える必要がないため、キャッシュの柔軟性が向上します。 言い換えれば、n 次の結合性が高いと、より高いヒット率が保証されますが、すべての関連付けをチェックしてヒットを確認するのに時間がかかるため、レイテンシーも増加します。 通常、最後のレベルのキャッシュでは最大の容量が利用可能であり、このキャッシュの外でデータを検索するとプロセッサが低速の RAM にアクセスすることになるため、関連付けの度合いが最も高いのが妥当です。

例をいくつか示します。 Core i5 および i7 は、データに対して 8 ウェイ アソシエイティビティを持つ 32 KB の L1 キャッシュを使用し、命令に対して 4 ウェイ アソシエイティビティを持つ 32 KB の L1 キャッシュを使用します。 Intel が命令をより速く利用できるようにし、L1 データ キャッシュのヒット率を最大にすることを望んでいることは理解できます。 Intel プロセッサの L2 キャッシュには 8 方向の結合性があり、Intel L3 キャッシュはヒットを最大化するために 16 方向の結合性を実装しているため、さらにスマートです。

ただし、AMD は、Phenom II X4 プロセッサでは、2 ウェイ アソシエイティブ L1 キャッシュを使用してレイテンシを短縮する異なる戦略に従っています。 起こり得るミスを補うために、キャッシュ容量が 2 倍になり、データ用に 64 KB、命令用に 64 KB になりました。 L2 キャッシュは Intel の設計と同様に 8 ウェイの連想性を備えていますが、AMD の L3 キャッシュは 48 ウェイの連想性で動作します。 しかし、あるキャッシュ アーキテクチャを別のキャッシュ アーキテクチャより選択するという決定は、CPU アーキテクチャ全体を考慮せずに評価することはできません。 テスト結果が実用的な意味を持つのは当然のことであり、私たちの目標はまさにこの複雑なマルチレベル キャッシュ構造全体の実用的なテストでした。

最新のプロセッサにはすべて、プロセッサの命令とデータを保存する専用のキャッシュがあり、ほぼ瞬時に使用できるようになります。 このレベルは一般にレベル 1 または L1 キャッシュと呼ばれ、486DX プロセッサで初めて導入されました。 最近、AMD プロセッサはコアあたり 64 KB L1 キャッシュ (データと命令用) を標準装備しており、Intel プロセッサはコアあたり 32 KB L1 キャッシュ (データと命令用も) を使用します。

L1 キャッシュは 486DX プロセッサで初めて登場し、その後、最新のすべての CPU に不可欠な機能になりました。

2 次キャッシュ (L2) は、Pentium III のリリース後、すべてのプロセッサに搭載されましたが、パッケージ上で最初に実装されたのは Pentium Pro プロセッサでした (ただしオンチップではありません)。 最新のプロセッサには、最大 6 MB のオンチップ L2 キャッシュが搭載されています。 通常、このボリュームは、たとえば Intel Core 2 Duo プロセッサ上の 2 つのコアに分割されます。 一般的な L2 構成では、コアごとに 512 KB または 1 MB のキャッシュが提供されます。 小規模な L2 キャッシュを搭載したプロセッサーは、価格レベルが低くなる傾向があります。 以下は、初期の L2 キャッシュ実装の図です。

Pentium Pro には、プロセッサのパッケージ内に L2 キャッシュが含まれていました。 その後の世代の Pentium III および Athlon では、L2 キャッシュは別個の SRAM チップを通じて実装されましたが、これは当時 (1998、1999 年) 非常に一般的でした。

その後、最大 180 nm のプロセス テクノロジが発表されたことで、メーカーは最終的にプロセッサ ダイに L2 キャッシュを統合できるようになりました。


最初のデュアルコア プロセッサは、パッケージごとに 2 つのダイを含む既存の設計を単純に使用していました。 AMDはモノリシックチップ上にデュアルコアプロセッサを導入し、メモリコントローラとスイッチを追加し、Intelは単純に2つのシングルコアチップを1つのパッケージに組み立てて同社初のデュアルコアプロセッサを実現した。


初めて、L2 キャッシュが Core 2 Duo プロセッサ上の 2 つのコンピューティング コア間で共有され始めました。 AMDはさらに進んで、最初のクアッドコアPhenomをゼロから作成し、Intelは再びコストを削減するために最初のクアッドコアプロセッサに1対のダイ、今回は2つのデュアルコアCore 2ダイを使用しました。

第 3 レベルのキャッシュは、Alpha 21165 プロセッサー (96 KB、1995 年に導入されたプロセッサー) または IBM Power 4 (256 KB、2001 年) の初期の頃から存在していました。 ただし、x86 ベースのアーキテクチャでは、L3 キャッシュは Intel Itanium 2、Pentium 4 Extreme (Gallatin、どちらも 2003 年のプロセッサ)、および Xeon MP (2006) モデルで初めて登場しました。

初期の実装では、単純にキャッシュ階層に別のレベルが提供されていましたが、最新のアーキテクチャでは、マルチコア プロセッサのコア間データ転送用の大規模な共有バッファとして L3 キャッシュが使用されています。 これは、高い n 次の結合性によって強調されます。 いくつかのコアがメイン RAM へのアクセスが非常に遅いという状況に陥るよりは、キャッシュ内でデータを少し長く探す方が良いでしょう。 AMDは、すでに述べたPhenomラインでデスクトッププロセッサにL3キャッシュを初めて導入しました。 65 nm Phenom X4 には 2 MB の共有 L3 キャッシュが含まれており、最新の 45 nm Phenom II X4 にはすでに 6 MB の共有 L3 キャッシュが搭載されています。 Intel Core i7 および i5 プロセッサは 8 MB の L3 キャッシュを使用します。

最新のクアッドコア プロセッサには、各コアに専用の L1 キャッシュと L2 キャッシュがあり、すべてのコアで共有される大規模な L3 キャッシュもあります。 共有 L3 キャッシュにより、コアが並行して作業できるデータの交換も可能になります。


全てにおいて良い日。 今日はキャッシュの概念について説明していきます。 プロセッサ キャッシュ メモリは超高速データ処理アレイであり、DDR4 について言えば、その速度は標準 RAM の 16 ~ 17 倍を超えます。

この記事では次のことを学びます:

キャッシュ メモリの容量により、RAM がデータを処理し、完了した計算結果をさらなる処理のためにチップに送信するのを待たずに、CPU が最大速度で動作できるようになります。 HDD にも同様の原理が見られますが、8 ~ 128 MB のバッファを使用する点が異なります。 もう 1 つは、速度ははるかに遅いですが、作業プロセスは似ているということです。

プロセッサキャッシュとは何ですか?

計算プロセスは一般的にどのように行われますか? すべてのデータは RAM に保存され、重要なユーザー情報とシステム情報を一時的に保存するように設計されています。 プロセッサは、一定数のタスクを自ら選択し、キャッシュ メモリと呼ばれる超高速ブロックにプッシュし、その直接の責任を処理し始めます。

計算結果は再び RAM に送信されますが、その量ははるかに少なく (出力値は 1,000 個ではなく、はるかに少なくなります)、処理のために新しい配列が取得されます。 作業が完了するまで続きます。

動作速度は RAM の効率によって決まります。 しかし、4000 MHz 未満の周波数のオーバークロック ソリューションを含め、最新の DDR4 モジュールは 1 つも、「遅い」キャッシュを備えた最も性能が低下しているプロセッサの能力に匹敵するものはありません。

これは、CPU の速度が RAM のパフォーマンスを平均して 15 倍以上上回るためです。 周波数パラメータだけを見てはいけません。それ以外にも多くの違いがあります。
理論的には、超強力な Intel Xeon や AMD Epyc でさえアイドル状態になることが判明していますが、実際には両方のサーバー チップがその能力の限界で動作します。 それはすべて、キャッシュ サイズ (最大 60 MB 以上) に応じて必要な量のデータを収集し、データを瞬時に処理するためです。 RAM は、計算用の配列が抽出される一種の倉庫として機能します。 コンピュータの計算効率が向上し、誰もが幸せになります。

歴史への短い小旅行

キャッシュ メモリについて最初に言及されたのは 80 年代後半に遡ります。 この時点まで、プロセッサとメモリの速度はほぼ同じでした。 チップの急速な開発には、RAM のパフォーマンス レベルを向上させるための何らかの「クラッチ」を考案する必要がありましたが、超高速チップの使用は非常に高価であったため、より経済的なオプション、つまり高速チップの導入でしのぐことにしました。メモリアレイを CPU に高速接続します。

キャッシュ メモリ モジュールは、Intel 80386 で初めて登場しました。当時、DRAM の動作レイテンシは 120 ナノ秒前後で変動していましたが、より最新の SRAM モジュールではレイテンシが当時としては驚異的な 10 ナノ秒に短縮されました。 HDD と SSD の対立では、おおよその全体像がより明確に示されます。

当時の技術プロセスのレベルにより、当初、キャッシュ メモリはマザーボードに直接はんだ付けされていました。 Intel 80486 以降、8 KB のメモリがプロセッサ ダイに直接組み込まれ、パフォーマンスがさらに向上し、ダイ面積が削減されました。

この配置テクノロジは、Pentium MMX のリリースまでのみ有効であり、その後、SRAM メモリはより高度な SDRAM に置き換えられました。
また、プロセッサは大幅に小型化されているため、外部回路は必要ありません。

キャッシュレベル

最新の CPU のラベルには、 と に加えて、レベル 1、2、および 3 のキャッシュ サイズの概念があります。 それはどのように決定され、何に影響しますか? 簡単な言葉で理解しましょう。

  • レベル 1 キャッシュ (L1) は、CPU アーキテクチャの中で最も重要かつ最速のチップです。 1 つのプロセッサーには、コアの数と同じ数のモジュールを収容できます。 チップがそのコアからのみ最も一般的で重要なデータをメモリに保存できることは注目に値します。 多くの場合、配列サイズは 32 ~ 64 KB に制限されます。
  • 2 次キャッシュ (L2) - 速度の低下は、256 KB または 512 KB に達するバッファー量の増加によって補われます。 動作原理は L1 と同じですが、優先度の低いデータが格納されるため、メモリ要求の頻度が低くなります。
  • 3 次キャッシュ (L3) は、すべてのキャッシュの中で最も遅く、最も容量の大きいセクションです。 それでも、このアレイは RAM よりもはるかに高速です。 サーバーチップの場合、そのサイズは 20 MB、さらには 60 MB に達することもあります。 アレイの利点は非常に大きく、システムのすべてのコア間のデータ交換における重要なリンクとなります。 L3 がなければ、チップのすべての要素が分散されてしまいます。

販売では、2 レベルと 3 レベルのメモリ構造の両方を見つけることができます。 どちらがいいですか? プロセッサをオフィス プログラムやカジュアル ゲームにのみ使用する場合は、違いは感じられません。 複雑な 3D ゲーム、アーカイブ、レンダリング、およびグラフィックスの操作を目的としてシステムが組み立てられている場合、場合によっては増加率は 5 ~ 10% の範囲になります。
3 番目のレベルのキャッシュは、定期的に複雑な計算を必要とするマルチスレッド アプリケーションを定期的に操作する場合にのみ正当化されます。 このため、サーバー モデルでは大規模な L3 キャッシュが使用されることがよくあります。 ただし、これでは不十分な場合があるため、マザーボードに接続された別個のチップのように見える、いわゆる L4 モジュールを追加でインストールする必要があります。

プロセッサーのレベル数とキャッシュ サイズを確認するにはどうすればよいですか?

これは 3 つの方法で実行できるという事実から始めましょう。

  • コマンドライン経由 (L2 および L3 キャッシュのみ)。
  • インターネットで仕様を検索することによって。
  • サードパーティのユーティリティを使用する。

ほとんどのプロセッサでは L1 が 32 KB であり、L2 と L3 は大きく変動する可能性があるという事実を基礎にすると、最後の 2 つの値が必要になります。 これらを検索するには、「スタート」からコマンド ラインを開きます (検索バーに「cmd」という値を入力します)。

システムは、L2 に関して疑わしいほど高い値を示します。 それをプロセッサ コアの数で割って、最終的な結果を求める必要があります。

ネットワーク上のデータを検索する予定がある場合は、まず CPU の正確な名前を調べます。 「マイコンピュータ」アイコンを右クリックし、「プロパティ」を選択します。 「システム」列には、実際に必要な「プロセッサ」項目があります。 その名前を Google または Yandex に書き換えて、サイトで意味を調べます。 信頼できる情報を得るには、メーカー (Intel または AMD) の公式ポータルを選択することをお勧めします。
3 番目の方法でも問題は発生しませんが、石の仕様を調べるために GPU-Z、AIDA64、その他のユーティリティなどの追加ソフトウェアをインストールする必要があります。 オーバークロックや細部をいじりたい人向けのオプションです。

結果

これで、キャッシュ メモリとは何か、そのサイズは何に依存するのか、そして超高速データ アレイがどのような目的で使用されるのかが理解できました。 現時点で、大容量のキャッシュ メモリという点で市場で最も興味深いソリューションは、16 MB L3 を搭載した AMD Ryzen 5 および 7 デバイスです。

次の記事では、プロセッサー、チップの利点などのトピックについて説明します。 乞うご期待。 次回まで、さようなら。

今日の記事は独立した資料ではなく、同じ条件下での 3 世代のコア アーキテクチャのパフォーマンスの研究を継続しているだけです (昨年末に開始され、最近も継続されています)。 確かに、今日は横に小さな一歩を踏み出します。コアとキャッシュメモリの周波数は以前と同じままですが、後者の容量は減少します。 なぜこれが必要なのでしょうか? 私たちは実験の純度を高めるために過去 2 世代の「フル」 Core i7 を使用し、ハイパー スレッディング テクノロジのサポートを有効または無効にしてテストしました。これは、1 年半前から Core i5 には 8 ではないコアが搭載されていたためです。ただし、L3 は 6 MiB です。 キャッシュ メモリ容量がパフォーマンスに及ぼす影響は、考えられているほど大きくないことは明らかですが、影響は確実に存在しており、そこから逃れることはできません。 さらに、Core i5 は Core i7 よりも量産製品であり、第 1 世代ではこの点で「気分を害する」人はいませんでした。 しかし、以前は少し異なる制限が設けられていました。第一世代 i5 の UnCore クロック速度はわずか 2.13 GHz でした。そのため、当社の「Nehalem」は 2.4 GHz の 700 ラインを正確に代表するものではありませんが、わずかに高速なプロセッサです。 ただし、参加者のリストを大幅に拡大してテスト条件をやり直す必要はないと考えました。何度も警告したように、このラインのテストでは新しい実用的な情報は得られません。実際のプロセッサはまったく異なるモードで動作します。 しかし、細かい点を徹底的に理解したい人にとっては、このようなテストは興味深いものになると思います。

テストベンチ構成

私たちはプロセッサーを 4 つだけに制限することにしました。また、主要な参加者は 2 つになります。どちらもクアッドコアの Ivy Bridge ですが、第 3 レベルのキャッシュ容量が異なります。 3つ目は「Nehalem HT」です。前回は最終スコア的には「Ivy Bridge Simply」とほぼ同じであることが判明しました。 そして、「単に Nehalem」は、すでに述べたように、2.4 GHz で動作する本物の第 1 世代 Core i5 よりもわずかに高速ですが (700 ラインでは UnCore 周波数がわずかに低かったため)、それほど高速ではありません。ラジカル。 しかし、この比較は興味深いものです。一方では、マイクロアーキテクチャを改善するための 2 つのステップがあり、もう一方では、キャッシュ メモリが制限されています。 演繹的に、ほとんどの場合、最初の i5 が上回ると想定できますが、一般的に、「最初」の i5 と「3 番目」の i5 はどのくらい同等になるでしょうか (もちろん、UnCore の周波数に合わせて調整されていますが、人数が多い場合は除きます)完全に正確な比較が必要な場合は、後で実行します) は、すでに研究に適したトピックです。

テスト

従来、すべてのテストをいくつかのグループに分割し、テスト/アプリケーションのグループの平均結果を図に示します (テスト方法の詳細については、別の記事を参照してください)。 図の結果はポイントで示されており、2011 年のサンプル サイトの参照テスト システムのパフォーマンスは 100 ポイントとして計算されています。 AMD Athlon II X4 620プロセッサをベースとしていますが、メモリ(8 GB)とビデオカード()の量は「メインライン」のすべてのテストの標準であり、特別な研究の枠組み内でのみ変更できます。 より詳細な情報に興味がある場合は、従来どおり Microsoft Excel 形式の表をダウンロードするよう勧められます。この表には、すべての結果がポイントに変換されたものと「自然な」形式の両方で表示されます。

3D パッケージでのインタラクティブな作業

キャッシュ容量の影響は多少ありますが、1%未満です。 したがって、両方の Ivy Bridge は互いに同一であると考えることができ、アーキテクチャの改善により、新しい Core i5 は新しい Core i7 と同じように古い Core i7 よりも簡単に性能を上回ることができます。

3D シーンの最終レンダリング

もちろん、この場合、処理されるスレッド数の増加を補う改善はありませんが、今日私たちにとって最も重要なことは、これではなく、キャッシュ メモリ容量がパフォーマンスに与える影響が完全になくなることです。 すでに説明したように、Celeron と Pentium は異なるプロセッサであるため、レンダリング プログラムは L3 容量の影響を受けますが、それは後者が不十分な場合に限られます。 ご覧のとおり、4 つのコアに対して 6 MiB あれば十分です。

梱包と開梱

当然のことながら、これらのタスクはキャッシュ メモリ容量の影響を受けますが、ここでも、6 MiB から 8 MiB に増加した場合の効果は非常に控えめで、約 3.6% です。 実際、より興味深いのは、第 1 世代との比較です。アーキテクチャの改善により、新しい i5 は同じ周波数で古い i7 をも破ることができますが、これは総合的な順位でのことです。4 つのテストのうち 2 つが単一であるという事実により、 - スレッド化されており、もう 1 つはデュアルスレッド化されています。 7-Zip を使用したデータ圧縮は、Nehalem HT 上で当然最速です。同等のパフォーマンスでは、8 スレッドの方が 4 スレッドよりも常に高速です。 しかし、4 つに限定すると、私たちの「Ivy Bridge 6M」はその祖先だけでなく、古い Nehalem にも負けてしまいます。マイクロアーキテクチャの改善により、キャッシュ メモリ容量の削減が完全に負けてしまいます。

オーディオエンコーディング

いささか予想外だったのは、2 つのアイビー ブリッジ間の違いの大きさではなく、少しでも違いがあったという事実でした。 真実は非常に安価であるため、四捨五入や測定誤差が原因である可能性があります。

編集

スレッドも重要ですが、キャッシュ容量も重要です。 ただし、いつものように、多すぎることはありません - 約1.5%。 より興味深い比較は、ハイパースレッディングが無効になっている第 1 世代の Core との比較です。同じ周波数でも「点では」新しい Core i5 が勝っていますが、3 つのコンパイラ (正確には Microsoft 製) のうち 1 つが両方のプロセッサで動作しました。同じ時間内に。 たとえ古いものに 5 秒のアドバンテージがあるとしても、このプログラムでは「フル キャッシュ」の Ivy Bridge の結果が Nehalem よりも 4 秒優れているという事実にもかかわらずです。 一般に、ここでは、L3 容量の削減が何らかの形で第 2 世代と第 3 世代の Core i5 に大きな影響を与えたと想定することはできませんが、いくつかのニュアンスがあります。

数学的および工学的計算

繰り返しになりますが、「古い」クリスタルとの差は 1% 未満であり、すべての形式において第一世代に対する説得力のある勝利です。 このような低スレッドのテストでは、例外よりも原則の方が適切ですが、もう一度確認してみてはいかがでしょうか。 特に、このような洗練された形式では、(通常モードでのテストとは異なり) 周波数の差 (「標準」またはターボ ブーストによって現れる) が干渉しません。

ラスターグラフィックス

しかし、マルチスレッドをより完全に利用しても、状況が常に変わるわけではありません。 そして、キャッシュメモリの容量はまったく役に立ちません。

ベクターグラフィックス

そしてそれはここでも同じです。 確かに、必要な計算スレッドは数個だけです。

ビデオエンコーディング

ただし、このグループとは異なり、ハイパー スレッディングでも Nehalem が新しい世代の信奉者と対等に戦うことはできません。 ただし、キャッシュ メモリ容量の減少によってそれほど妨げられることはありません。 より正確に言えば、その差はやはり 1% 未満であるため、実際にはまったく干渉しません。

オフィスソフト

ご想像のとおり、キャッシュ メモリの容量を増やしてもパフォーマンスは向上しません (より正確には、キャッシュ メモリの容量を減らしてもパフォーマンスは低下しません)。 ただし、詳細な結果を見ると、このグループの唯一のマルチスレッド テスト (つまり、FineReader のテキスト認識) は、8 MiB L3 の方が 6 MiB よりも約 1.5% 高速に実行されていることがわかります。 1.5%とは何ですか? 実用的な観点からは、何もありません。 しかし、研究の観点から見ると、これはすでに興味深いことです。ご覧のとおり、キャッシュ メモリが不足していることが最も多いのはマルチスレッド テストです。 その結果、本来は存在しないはずの場所でも、(小さいとはいえ)違いが見つかることがあります。 これについてはそれほど不可解なことはありませんが、大まかに言えば、低スレッド テストではスレッドあたり 3 ~ 6 MiB ですが、マルチスレッド テストでは 1.5 MiB であることがわかります。 前者はたくさんありますが、後者は十分ではないかもしれません。

ジャワ

ただし、Java マシンはこの評価に同意しませんが、これも理解できます。何度も書いたように、Java マシンは x86 プロセッサ向けではなく、電話やコーヒー メーカー向けに非常によく最適化されています。コアはたくさんありますが、キャッシュのメモリはごくわずかです。 また、コアやキャッシュ メモリがほとんどない場合もあります。これは、チップ面積と消費電力の両方の点で高価なリソースです。 そして、コアとメガヘルツで何かを実行できる場合、キャッシュではすべてがより複雑になります。たとえば、クアッドコア Tegra 3 では 1 MiB しかありません。 JVM が (すべてのバイトコード システムと同様に) より多くの「圧縮」ができることは明らかであり、これは Celeron と Pentium を比較したときにすでに見られましたが、スレッドあたり 1.5 MiB を超えるのは、たとえそれが役立つとしても、これらのタスクには当てはまりません。 SPECjvm 2008 に含まれていました。

ゲーム

ゲームはアーカイバーよりもキャッシュ メモリ容量を要求することが多いため、私たちはゲームに大きな期待を寄せていました。 しかし、これはデータ量が非常に少ない場合に発生し、ご覧のとおり 6 MiB で十分です。 そして、繰り返しになりますが、クアッドコア Core プロセッサは、どの世代であっても、周波数が 2.4 GHz であっても、使用されるゲーム アプリケーションにとっては強力すぎるソリューションであるため、ボトルネックとなるのはそれらではなく、システムの他のコンポーネントであることは明らかです。 したがって、グラフィック品質の低いモードを削除することにしました。そのようなシステムでは合成的すぎることは明らかですが、すべてのテストも合成的に行います:)

あらゆる種類のビデオ カードなどが干渉しない場合、2 つの Ivy Bridge の差は「非常識な」 3% に達します。この場合、実際には無視できますが、理論的にはかなりの差です。 アーカイバだけでももっと出てきました。

マルチタスク環境

これはどこかで見たことがあります。 そうです、LGA2011 で 6 コア プロセッサをテストしたときのことです。 そして今、この状況が繰り返されます。負荷はマルチスレッドであり、使用されるプログラムの一部はキャッシュ メモリを「貪欲」に消費しますが、キャッシュ メモリを増やしても平均パフォーマンスが低下するだけです。 これはどのように説明できますか? 仲裁がより複雑になり、間違いが増えることを除けば。 さらに、これは、L3 容量が比較的大きく、同時に動作する計算スレッドが少なくとも 4 つある場合にのみ発生することに注意してください。予算セグメントでは、状況は完全に異なります。 いずれにせよ、Pentium と Celeron の最近のテストで示されたように、デュアルコア プロセッサの場合、L3 を 2 MiB から 3 MiB に増やすとパフォーマンスが 6% 向上します。 しかし、控えめに言っても、4 コアや 6 コアのものには何の役にも立ちません。 何もないよりはさらに少ない。

合計

論理的な全体的な結果: L3 サイズが異なるプロセッサ間で有意な差はどこにも見つからなかったので、「一般的に」というものはありません。 したがって、第 2 世代と第 3 世代の Core i5 におけるキャッシュ メモリ容量の減少について動揺する理由はありません。いずれにしても、第 1 世代の前世代はそれらの競合相手ではありません。 また、古い Core i7 も、平均して、同様のレベルのパフォーマンスしか示しません (もちろん、主に低スレッド アプリケーションでの遅れが原因です。同じ条件下では、より高速に処理できるシナリオもあります)。 しかし、すでに述べたように、実際のプロセッサは周波数の点で同等とは程遠いため、世代間の実際的な違いは、そのような研究で得られるものよりも大きくなります。

未解決の疑問が 1 つだけ残っています。それは、第 1 世代コアと同等の条件を確保するためにクロック周波数を大幅に下げる必要がありましたが、観察されたパターンは現実に近い条件でも持続するのでしょうか? 結局のところ、4 つの低速計算スレッドが 6 MiB と 8 MiB のキャッシュ メモリの違いを認識しないからといって、4 つの高速計算スレッドの場合には検出されないということにはなりません。 確かに、その逆は続かないので、理論研究のトピックを最終的に終了するには、もう 1 つ実験室での作業が必要になります。これは次回に行います。

プロセッサのパフォーマンスを向上させる重要な要素の 1 つは、キャッシュ メモリの存在、つまりその容量、アクセス速度、レベル間の分散です。

かなり長い間、ほぼすべてのプロセッサにこのタイプのメモリが搭載されており、その存在の有用性が改めて証明されました。 この記事では、非常に重要なキャッシュ メモリの構造、レベル、実際の目的について説明します。 プロセッサの特性.

キャッシュメモリとは何か、その構造

キャッシュ メモリは、最も頻繁にアクセスされるデータを一時的に保存するためにプロセッサによって使用される超高速メモリです。 このタイプの記憶を簡単に説明すると、次のようになります。

キャッシュ メモリはフリップフロップ上に構築されており、フリップフロップはトランジスタで構成されています。 トランジスタのグループは、同じコンデンサを構成するよりもはるかに多くのスペースを占有します。 ラム。 これには、量の制限だけでなく、生産において多くの困難が伴います。 このため、キャッシュ メモリは非常に高価なメモリですが、容量はごくわずかです。 しかし、この構造から、そのようなメモリの主な利点、つまり速度がもたらされます。 フリップフロップは再生成の必要がなく、フリップフロップが組み立てられるゲートの遅延時間が短いため、フリップフロップをある状態から別の状態に切り替える時間は非常に早くなります。 これにより、キャッシュ メモリが最新のプロセッサと同じ周波数で動作できるようになります。

また、キャッシュ メモリの配置も重要な要素です。 プロセッサ チップ自体に配置されているため、アクセス時間が大幅に短縮されます。 以前は、一部のレベルのキャッシュ メモリは、プロセッサ チップの外側、マザーボード上の特別な SRAM チップ上に配置されていました。 現在、ほとんどすべてのプロセッサは、プロセッサ チップ上にキャッシュ メモリを備えています。


プロセッサキャッシュは何に使用されますか?

前述したように、キャッシュ メモリの主な目的は、プロセッサによって頻繁に使用されるデータを保存することです。 キャッシュは、小さいサイズ (約 4 ~ 16 MB) にもかかわらず、データがロードされるバッファです。 最新のプロセッサ、あらゆるアプリケーションのパフォーマンスが大幅に向上します。

キャッシュ メモリの必要性をよりよく理解するために、オフィスのようにコンピュータのメモリを整理することを想像してみましょう。 RAM は、会計士が定期的にアクセスして大きなデータ ブロック (つまりフォルダー) を取得するフォルダーを備えたキャビネットになります。 そしてテーブルはキャッシュメモリになります。

会計士の机の上に置かれた要素があり、会計士はそれを 1 時間にわたって何度も参照します。 たとえば、電話番号や文書の例などが考えられます。 これらの種類の情報はテーブル上に配置されるため、情報へのアクセス速度が向上します。

同様に、ドキュメントなどの大きなデータ ブロック (フォルダー) からテーブルにデータを追加して、すぐに使用することができます。 このドキュメントが不要になると、キャビネット (RAM) に戻され、それによってテーブル (キャッシュ メモリ) がクリアされ、次の期間に使用される新しいドキュメントのためにこのテーブルが解放されます。

キャッシュ メモリでも、再度アクセスされる可能性が高いデータがある場合、そのデータが RAM からキャッシュ メモリにロードされます。 多くの場合、これは、現在のデータの後に使用される可能性が最も高いデータを同時ロードすることによって発生します。 つまり、「後」に何が使用されるかについての仮定があります。 これらは複雑な動作原理です。

プロセッサーのキャッシュレベル

最新のプロセッサにはキャッシュが装備されており、多くの場合、2 つまたは 3 つのレベルで構成されます。 もちろん例外はありますが、多くの場合はこれに当てはまります。

一般に、L1 (第 1 レベル)、L2 (第 2 レベル)、L3 (第 3 レベル) のレベルが存在します。 それぞれについてもう少し詳しく説明します。

一次キャッシュ (L1)– プロセッサ コアと直接動作する最速のキャッシュ メモリ レベル。この緊密な相互作用のおかげで、このレベルはアクセス時間が最も短く、プロセッサに近い周波数で動作します。 これはプロセッサと 2 次キャッシュの間のバッファです。

高性能プロセッサー Intel Core i7-3770K 上のボリュームを検討します。 このプロセッサには、4x32 KB L1 キャッシュ (4 x 32 KB = 128 KB) が装備されています。 (コアあたり 32 KB)

2次キャッシュ(L2)– 2 番目のレベルは最初のレベルよりも規模が大きくなりますが、その結果、「速度特性」が低くなります。 したがって、L1 レベルと L3 レベルの間のバッファとして機能します。 例の Core i7-3770 K をもう一度見てみると、L2 キャッシュ メモリのサイズは 4x256 KB = 1 MB です。

レベル 3 キャッシュ (L3)– 3 番目のレベルも、前の 2 つよりも遅くなります。 ただし、それでも RAM よりもはるかに高速です。 i7-3770K の L3 キャッシュ サイズは 8 MB です。 前の 2 つのレベルが各コアで共有される場合、このレベルはプロセッサ全体で共通になります。 この数字はかなりしっかりしていますが、法外なものではありません。 たとえば、i7-3960X などの Extreme シリーズ プロセッサでは 15 MB ですが、一部の新しい Xeon プロセッサでは 20 MB を超えます。