2012-03-10 6 views
1

誰もが今日のプロセッサのほとんどにキャッシュのいくつかの層がある理由を知っていますか? L1 L2およびL3と同様。プロセッサが1つの大きなL1キャッシュを使用できないのはなぜですか?なぜ複数のキャッシュ層があるのですか

複数のキャッシュ層を持たないことは、キャッシュプロトコルの複雑さを増やしますか?

+2

OT。しかし簡単な答えは、 'L3'キャッシュの* size *を使って' L1'キャッシュとして* fast *を構築することができないということです。つまり、サイズ/速度のトレードオフをすべて達成できれば、キャッシュはまったく必要なくなります。メインメモリはL1キャッシュと同じくらい速いでしょう。 –

答えて

4

ダイサイズ。 L1は通常オンダイです。大型キャッシュをオンダイで使用する余地はありません。 L2/3は自分自身の死を迎え、より大きくて別々に処理することができます。

スピードも同じです。 L1は最大速度のトレードオフで構築され、L2/3は積極的にスピードアップする必要はありません。

また、マルチコア。最新のマルチコアプロセッサは、各コアに速度のために独自のL1を与えますが、コヒーレンシのために他のキャッシュの一部またはすべてを共有します。 PA-RISCプロセッサーには、があります。「大きなL1キャッシュを作ろう」アプローチで構築されています。彼らは高価でした。

3

なぜプロセッサは1つの大きなL1キャッシュを使用できませんか?

プロセッサキャッシュが大きいほどレイテンシが長くなります。より大きなキャッシュはチップ上でより多くの物理的空間を占めるので、実用的かつコスト的にも考慮すべき点がある。一定のサイズの後、キャッシングのスピードアップをあまりにも失って、キャッシュサイズをさらに増やす価値があります。従って、最終的には、大きなキャッシュが望ましくない。

大きなキャッシュを必要とするプロセッサ設計では、複数のキャッシュレベルを持つことでトレードオフが生じる可能性があります。小さくて速いキャッシュから始め、連続してミスしたときに徐々に大きくて遅いキャッシュに戻ります。

関連する問題