質問: 一部のcpuでl4キャッシュは何を保持しますか? 最近のすべてのマルチコアcpuには、少なくとも3レベルのキャッシュがあります( なぜ複数レベルのキャッシュメモリが必要なのですか? を参照してください)。l1は最速かつ最小、l2はわずかにレイテンシが大きくなりますが、l3はプロセッサのすべてのコア間で共有されるデータを保持します(さらに大きく、さらに遅くなります)。すべてが順調です。「l4キャッシュ」というフレーズをググリングしても、空の結果は得られません。 l4キャッシュを含むいくつかのcpuがあるようです(明らかにintel broadwell i7-5775cにはl4キャッシュとして実装された128mb edramがあります)。l4キャッシュの用途を知っている人はいますか?その目的と機能に関するドキュメントはどこにもありません。
回答: レベル4キャッシュ(l4キャッシュ)は、cpuがアクセスできるレベル3キャッシュと、cpuとgpuの両方がアクセスできるl4キャッシュをリンクする方法です。 レベル4のオンパッケージキャッシュは、インテルのhaswellマイクロアーキテクチャーから導入されました。レベル4キャッシュは、intelの統合gpuと同じパッケージに組み込まれたdram(edram)を使用します。このキャッシュは、メモリをオンダイgpuとcpuの間で動的に共有できるようにし、cpuのl3キャッシュの犠牲キャッシュとして機能します。 出典: wikipedia-cpu cache これは、haswellおよびbroadwellプロセッサの現在のedram表現です。ここで、edramは各コアのllc内に含まれるl4タグのストアによってアクセスされ、その結果、ダイナミックランダムアクセスメモリ実装としてではなく、l3への犠牲キャッシュとして機能します。 edramからのデータを必要とするすべての命令またはハードウェアは、llcを経由してl4タグ変換を実行する必要があり、その可能性を制限します(ただし、リンクあたり50 gb/sの双方向インターフェースにより、特定の特定のワークロードを高速化します)。 このl4キャッシュは、haswellとbroadwellの寿命を通じてintelのマイクロアーキテクチャに残りました。 skylakeでは、edramの配置が変更されます。 疑似l4キャッシュとして機能するのではなく、edramはdramバッファーになり、dramアクセスを必要とするソフトウェア(cpuまたはigp)に対して自動的に透過的です。その結果、システムエージェント(pcieデバイスやチップセットからのデータなど)を介して通信し、dram内の情報を必要とする他のハードウェアは、プロセッサのl3キャッシュをナビゲートする必要がありません。 追加の記事では、次のことが示されています。 edramの目的は可能な限りシームレスにすることですが、intelは、ドライバーレベルである程度の制御を許可し、l3に含まれるデータの上書きを防止し、他のワークロード用に再キャッシュします。 anandtech-intel skylakeモバイルデスクトップ起動アーキテクチャ