IntelのHaswell(または少なくともIris Pro 5200 GPUを組み込んだ製品)およびIBMのPOWER7およびPOWER8にはすべて、組み込みDRAM「eDRAM」が含まれています。
最近までeDRAMが一般的ではなかった重要な問題の1つは、DRAM製造プロセスが本質的にロジックプロセスと互換性がないため、eDRAMが必要な場合は追加のステップを含める必要がある(コストが増加し、歩留まりが低下する)ことです。したがって、この経済的不利益を相殺するために、それを組み込みたいと思わざるを得ない理由がなければなりません。また、DRAMは、CPUとは独立して製造されているが、CPUと同じパッケージに統合されている別のダイに配置することもできます。これにより、2つの製品を真に統合された方法で製造することなく、地域の利点のほとんどが提供されます。
もう1つの問題は、DRAMはSRAMのようなものではなく、電力が供給されている間はその内容を無期限に保存せず、読み取りも保存されたデータを破壊するためです。したがって、定期的に、および読み取りのたびに更新する必要があります。また、DRAMセルはコンデンサに基づいているため、次のリフレッシュにある程度の時間がかかる前にリークが値を破壊しないように十分に充電または放電します。この充電時間は、単なるラッチであるSRAMでは必要ありません。そのため、CPUと同じレートでクロックすることができますが、DRAMは適切な電力消費を維持しながら約1 GHzに制限されています。これにより、DRAMはSRAMよりも固有のレイテンシが高くなり、ミス率の減少が報われる非常に大きなキャッシュ以外には使用する価値がなくなります。
また、待ち時間に関する限り、困難の大部分は信号が移動しなければならない物理的な距離です。光は3 GHz CPUのクロック周期で10 cmしか移動できません。もちろん、信号はダイを直線的に移動せず、伝搬遅延を招くバッファリングとファンアウトが必要なため、光の速度に近い場所で伝搬しません。したがって、1クロックサイクルのレイテンシを維持するためにメモリがCPUから離れることができる最大距離は最大で数センチメートルであり、利用可能な領域に収容できるメモリの量が制限されます。IntelのNehalemプロセッサは、実際にはレイテンシーを改善するために、Penrynと比較してL2キャッシュの容量を削減し、それによりパフォーマンスが向上しました。
キャッシュヒット率は、ほとんどのワークロードで非常に高いことに注意してください。ほとんどすべての実際のケースで90%を大きく上回り、99%を超えることも珍しくありません。したがって、より大きなメモリをダイに含める利点は、本質的に、この数パーセントのミスの影響を軽減することに限定されます。エンタープライズサーバー市場向け(POWERなど)のプロセッサには通常、膨大なキャッシュがあり、多くのエンタープライズワークロードの大規模なワーキングセットに対応するのに役立つため、eDRAMを有益に搭載できます。テクスチャは大きく、キャッシュに収容できないため、HaswellはGPUをサポートしています。これらは、今日のeDRAMの使用例であり、一般的なデスクトップまたはHPCワークロードではなく、一般的なキャッシュ階層によって十分に機能します。
コメントで提起されたいくつかの問題に対処するには:
これらのeDRAMキャッシュは、L4犠牲キャッシュとして設計されているため、メインメモリの代わりに使用できません。これは、それらが揮発性で効果的にコンテンツアドレス指定可能であることを意味します。そのため、それらに格納されたデータは特定の場所に存在するものとして扱われず、いつでも破棄されます。これらのプロパティは、RAMが直接マップされて永続的であるという要件と一致させることは困難ですが、変更すると、キャッシュが意図した目的に役に立たなくなります。マイクロコントローラーで行われているように、より一般的な設計のメモリを埋め込むことはもちろん可能ですが、大きなメモリを備えたシステムでは、メインメモリでは低レイテンシがキャッシュほど有益ではないため、これを正当化することはできません。または、キャッシュを追加する方が価値があります。
ギガバイト程度の容量を持つ非常に大きなキャッシュの可能性については、キャッシュはせいぜいアプリケーションのワーキングセットのサイズである必要があります。HPCアプリケーションはテラバイトのデータセットを処理できますが、時間的および空間的な局所性が優れているため、通常、ワーキングセットはそれほど大きくありません。ワーキングセットが大きいアプリケーションは、たとえばデータベースやERPソフトウェアですが、この種のワークロード向けに最適化されたプロセッサの市場は限られています。ソフトウェアが本当にそれを必要としない限り、キャッシュを追加すると、非常に急速に収益が減少します。最近、プロセッサがプリフェッチ命令を取得するのを見てきたので、キャッシュをより効率的に使用することができます。これらの命令を使用して、ワーキングセットの絶対サイズではなく、メモリアクセスパターンの予測不可能性によるミスを回避できます。
*レイテンシの改善は、キャッシュの物理サイズが小さいためだけでなく、結合性が低下したためでもありました。いくつかの異なる理由でNehalemのキャッシュ階層全体に大きな変更がありましたが、そのすべてがパフォーマンスの改善に焦点を当てていたわけではありません。したがって、これは例としては十分ですが、完全なアカウントではありません。