プロセッサキャッシュL1、L2、L3はすべてSRAMでできていますか?trueの場合、L1がL2よりも速く、L2がL3よりも速いのはなぜですか?それらについて読んだとき、私はこの部分を理解していませんでした。
プロセッサキャッシュL1、L2、L3はすべてSRAMでできていますか?trueの場合、L1がL2よりも速く、L2がL3よりも速いのはなぜですか?それらについて読んだとき、私はこの部分を理解していませんでした。
回答:
一般に、これらはすべて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をより遠くに配置する必要があります。