プロセッサ キャッシュ L1、L2、L3 はすべて SRAM で構成されていますか?

プロセッサ キャッシュ L1、L2、L3 はすべて SRAM で構成されていますか?

プロセッサ キャッシュ L1、L2、L3 はすべて SRAM で作られていますか? 本当なら、なぜ L1 は L2 より速く、L2 は L3 より速いのですか? これについて読んだとき、この部分は理解できませんでした。

答え1

一般的にこれらはすべて SRAM を使用して実装されています。

(IBM の POWER および zArchitecture チップは、L3 に DRAM メモリを使用します。これは、ロジックと同じタイプのプロセス技術で実装され、高速ロジックを DRAM と同じチップに統合できるため、組み込み DRAM と呼ばれます。POWER4 では、オフチップ L3 に eDRAM が使用されていましたが、POWER7 では、L3 が処理コアと同じチップ上に存在します。)

SRAMを使用していますが、すべてが同じSRAM設計。L2とL3のSRAMは、サイズ(製造可能なチップ サイズが限られている場合に容量を増やすか、特定の容量のコストを削減するため) 一方、L1 用の SRAM は速度に最適化される可能性が高くなります。

さらに重要なのは、アクセス時間はストレージの物理的なサイズに関係しているということです。2次元レイアウトでは、物理的なアクセス待ち時間はだいたい容量の平方根に比例します。(非均一キャッシュ アーキテクチャはこれを利用して、低レイテンシでキャッシュのサブセットを提供します。最近の Intel プロセッサの L3 スライスにも同様の効果があり、ローカル スライスでのヒットはレイテンシが大幅に低くなります。) この効果により、DRAM は物理的に小さいため、高容量では DRAM キャッシュが SRAM キャッシュよりも高速になる可能性があります。

もう 1 つの要因は、ほとんどの L2 および L3 キャッシュがタグとデータのシリアル アクセスを使用するのに対し、ほとんどの L1 キャッシュはタグとデータに並列でアクセスすることです。これは電力最適化です (L2 ミス率は L1 ミス率よりも高いため、データ アクセスは無駄な作業になる可能性が高くなります。L2 データ アクセスは一般に、容量に関連してより多くのエネルギーを必要とします。また、L2 キャッシュは通常、より高い連想性を持っているため、より多くのデータ エントリを投機的に読み取る必要があります)。明らかに、データにアクセスする前にタグの一致を待つ必要があるため、データの取得に必要な時間が増加します (L2 アクセスは通常、L1 ミスが確認された後にのみ開始されるため、L1 ミス検出のレイテンシが、合計L2 のアクセス遅延。

さらに、L2 キャッシュは実行エンジンから物理的に離れています。L1 データ キャッシュを実行エンジンの近くに配置することは (一般的な L1 ヒットのケースが高速になるように)、通常、L2 をより遠くに配置する必要があることを意味します。

関連情報