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


10

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


関連質問:なぜ複数レベルのキャッシュメモリが必要なのですか?。また、多少関連しています:プロセッサの実際のマルチレベルキャッシュとは何ですか?。そこのコメントから、後者の質問をすでに見つけたと思います。
Paul A. Clayton

回答:


12

一般に、これらはすべて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をより遠くに配置する必要があります。


すばらしい答えです。しかし、L2ミス率がL1ミス率よりも高いというあなたの声明には同意しません。メモリ階層の下位に移動すると、大きな構造になり、ミスは少なくなりますが、レイテンシは増加します。
Harshavardhan Ramanna

@HarshavardhanRamannaはい容量と連想性の増加はミス率の改善に役立ちますが、低レベルはアクセスをフィルタリングします(L2からのブロック全体の従来の転送はブロック内の短期的な空間的局所性を除外します。ブロック自体は、追加のアクセスのためにL1でヒットを提供する可能性があります)。ミス率が下がる(例えば、95%のヒット率とまともな80%のヒット率とL1とL2は、合計99%のヒット率を取得します)。
ポールA.クレイトン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.