質問: プロセッサキャッシュl1、l2、l3はすべてsramでできていますか? プロセッサキャッシュl1、l2、l3はすべてsramでできていますか? trueの場合、l1がl2よりも速く、l2がl3よりも速いのはなぜですか?それらについて読んだとき、私はこの部分を理解していませんでした。
回答: 一般的にそれらはすべてsramで実装されます。(ibmのpowerおよびzarchitectureチップは、l3にdramメモリを使用します。これは、ロジックと同じタイプのプロセステクノロジーで実装され、高速ロジックをdramと同じチップに統合できるため、組み込みdramと呼ばれます。power4の場合、オフチップl3はedramを使用し、power7はプロセッシングコアと同じチップにl3を搭載しています。それらはsramを使用しますが、すべてsame sram設計を使用するわけではありません。 l2とl3のsramはサイズに最適化されており(製造可能なチップサイズに制限がある場合は容量を増やすか、特定の容量のコストを削減するため)、l1のsramは速度が最適化される可能性が高くなります。さらに重要なことは、アクセス時間はストレージの物理的なサイズに関連しています。 2次元レイアウトでは、物理アクセスのレイテンシはおおよそ容量の平方根に比例すると予想できます。 (非均一キャッシュアーキテクチャは、これを利用して低レイテンシでキャッシュのサブセットを提供します。最近のintelプロセッサのl3スライスは同様の効果があります。ローカルスライスでのヒットは大幅に低レイテンシです。)この効果により、dramキャッシュを高速化できます。 dramが物理的に小さいため、大容量のsramキャッシュよりも.もう1つの要因は、ほとんどのl2およびl3キャッシュがタグとデータのシリアルアクセスを使用し、ほとんどのl1キャッシュがタグとデータに並行してアクセスすることです。これは電力の最適化です(l2ミス率はl1ミス率よりも高いため、データアクセスは無駄な作業である可能性が高くなります。l2データアクセスは通常、容量に関連してより多くのエネルギーを必要とします。そして、l2キャッシュは通常より高い関連性を持っています。つまり、より多くのデータエントリを投機的に読み取る必要があります)。明らかに、データにアクセスする前にタグの一致を待つ必要があるため、データの取得に必要な時間が増加します。 (通常、l2アクセスはl1ミスが確認された後にのみ開始されるため、l1ミス検出のレイテンシがtotal l2のアクセスレイテンシに追加されます。)また、l2キャッシュは実行エンジンから物理的に離れています。 l1データキャッシュを実行エンジンの近くに配置すると(l1ヒットの一般的なケースが速くなるため)、通常、l2をより遠くに配置する必要があります。