web-dev-qa-db-ja.com

L2対L3CPUキャッシュの速度とパフォーマンス

過去数年間、Intel CPUを見ると、ラージサイズのL2キャッシュからラージサイズのL3キャッシュへの移行がありました。これの多くは、CPUに多くのコアがあり、それらの間でキャッシュを共有したいためです(L3の利点)。

しかし、単一のスレッドアプリケーションがあり、同じクロック速度を共有する2つの異なるCPUで実行する速度を比較したいとします。

  1. 6MBのCPU L2キャッシュ@ 3.1Ghz(例:Core 2 Duo E8500)

  2. 6MBのCPU Lキャッシュ@ 3.1Ghz(例:Core i5 2400)

ターボブースト効果とより高速なDDR係数を無視すると、最初の(古い)CPUは(コアレベルに近いため)はるかに高速に動作するはずですが、?

私が興味を持っているもう1つの質問は、昔、CPUのL2キャッシュの最初の数日間、L2キャッシュはCPUクロック速度の半分でアクセスされていることを思い出しているようですが、それは今日でも当てはまりますか?そしてL3速度はどうですか?

6
thedrs

場合によります。プログラムの 内部ループ が両方のCPUのL1キャッシュに収まり、メモリ速度が同じである場合、大きな違いは見られません。

内側のループが6MBのL2キャッシュに収まるが、6MBのL3キャッシュを備えたCPUのL2キャッシュに収まらない場合、プログラムは、より大きなL2キャッシュを備えた古いCPUで高速になります。

しかし、一般的に、プログラムの内部ループ部分は非常に小さいです。

4
shapr

Intelは「スマートキャッシュ」と呼ばれる新しいキャッシュテクノロジーを使用しているため、現在のモデルと数年前のCPUとの比較が公平な競争の場にあるとは思えません。 「スマートキャッシュ」はインテルのテクノロジーにすぎないと思います。 AMDは「バランススマートキャッシュ」と呼ばれるものを使用しています。

ウィキペディア 情報:

Smart Cacheは、Intelによって発明された複数の実行コア用のレベル2またはレベル3のキャッシュ方式です。コア(CPUコアまたはGPU)間でキャッシュを共有します。コアごとの専用キャッシュと比較すると、すべてのコアが同じくらい多くのキャッシュスペースを必要としない場合、全体的なキャッシュミス率が低下します。したがって、他のコアが非アクティブである場合、単一のコアはフルレベル2キャッシュまたはレベル3キャッシュを使用できます。さらに、共有キャッシュにより、異なる実行コア間でメモリを共有する速度が速くなります。

2
osij2is

質問の2番目の部分に関しては、はい、それはまだある程度真実です。 L1はL2よりも高速で、L3はL2よりも低速です。しかし、CPUの設計は大きく異なるため、「半周波数」とは言いません。

また、キャッシュサイズが重要であるため、Core i5はほとんどの場合高速になると思いますが、キャッシュ速度とミス率、および全体的なCPU設計も重要です。

0
Petr Abdulin