Nishiki-Hub

国内外のPC/PCパーツ/スマホ/Appleなどの最新情報を取り上げています

【編集後記】IntelとAMD、それぞれ別のアプローチでCPUに近い記憶領域を増やす

IntelAMDはそれぞれ「Xeon Max」と「EPYC 9004」をリリースしましたが、今回はその話。厳密にはEPYC 9004ではなく今年の春に登場した「Milan-X」の話になります。

Xeon MaxもMilan-Xもともに主記憶装置以上にCPUに近い部分について変更が加えられました。それぞれ面白いアプローチだったので今回は記事にまとめようと思います。

記憶装置

まず、コンピュータにおいて記憶装置というのは様々なものがありますが、おおよそ3つに分けることができます。まずひとつ目がSSDやHDDのような「補助記憶装置」。これはよくストレージなんて言われることがあります。そして、RAMに当たるのが「主記憶装置」となります。そしてもう一つがキャッシュ部分。キャッシュについてはCPUの外ではなく中にあるものなのでコンピュータの記憶装置に含むかは別の話ですが、基本的に補助記憶装置は下位の記憶領域、キャッシュは上位の記憶領域と言われることがあります。この上位下位はCPUからの距離によるもので、キャッシュが最もCPUに近く、補助記憶装置は遠いと言うことになります。

これら3つの違いというか、層についてお話すると、CPUが処理を行うとき、頻繁に行うような処理はできる限り保存しておくと便利です。そして、その保存する場所は高速に取り出せるところがベストです。その高速に取り出せるところというのがキャッシュです。キャッシュには物によって1〜3次キャッシュまであります。1次キャッシュにほしいデータがなければ2次キャッシュへ、2次キャッシュになければ、3次キャッシュへ、3次キャッシュになければ主記憶装置へデータの問い合わせを行い、それでもなければ補助記憶装置から取り出します。

つまり、キャッシュと主記憶装置の容量が大きくそして高速であれば処理が効率化されるということになります。

具体的に中身を見ていくと、キャッシュはSRAMというもので構成されていて、このSRAMは通電される限りデータを維持するという特徴を持っているため消費電力は低いです。また、主記憶装置に採用されるDRAMよりも高速です。しかし、高密度にしにくいという欠点があるためコストは高く大容量には向かない、できたとしても小型化しにくいというデメリットがあります。

一方で補助記憶装置はDRAMで構成されていることが多く、これはSRAMと違い通電するだけではデータを維持できずデータを上書きする「リフレッシュ」をする必要があります。そのため消費電力はSRAMよりも多いです。一方で高密度にしやすかったり、CPUの外にある場合が多いので簡単に大容量にすることができます。スペースの問題も基にする必要はありません。

用途 コスト データ維持 速度
SRAM キャッシュ 超高 通電のみ 超高速
DRAM 主記憶 リフレッシュが必要 高速
フラッシュメモリ 補助記憶 電源必要なし 低速

で、IntelAMDはこのキャッシュとメモリの部分に変更を加えました。それを見ていきましょうって話です。

Point

以下、1次キャッシュ、2次キャッシュ、3次キャッシュをそれぞれ、L1キャッシュ、L2キャッシュ、L3キャッシュと表現します。

AMDのアプローチ

AMDのアプローチの仕方は、L3キャッシュを増やすというアプローチをとっています。そもそもAMDのCPUはL3キャッシュが多いのが特徴です。通常、マーケティング的な要因も含めてCPUのコア数に合わせてL3キャッシュが搭載されることが多いのですがAMDではチップレットの数でL3キャッシュが決まることが多いです。無論、AMDとしてもマーケティング上の理由からそれよりも少ないL3キャッシュしか有効になっていない場合もありますが、基本的にはそうなります。

先日発表された「EPYC 9004」シリーズでは、チップレット(8コア)あたり32MBのL3キャッシュが搭載され、そのチップレットが12基搭載されたため計384MBキャッシュが有効になっているSKUが存在します。

そんなAMDのアプローチですが「3D V-Cache」がそれに当たります。3D V-Cacheは、L3キャッシュを3D方向に増設するパッケージング技術です。これによりSRAMの欠点である小型化の難しさを回避してキャッシュを増やすことができます。3D C-Cacheではチップレットあたり64MBもL3キャッシュを増やすことができました。実際これを採用した「Milan-X」は8つのチップレットそれぞれに32MB+64MBの96MBものキャッシュが搭載され、L3キャッシュが768MBと非常に大きくなりました。

まだ正式に発表されているわけではありませんが、12基のチップレットを搭載する「EPYC 9004」シリーズに3D V-Cahceモデルが存在するのであれば、L3キャッシュだけで1.152GBと超大容量なキャッシュが出来上がります。これは、10年くらい前のネットブックのメモリよりも大きなサイズです。恐ろしい。

キャッシュを増設するメリット・デメリット

キャッシュを増設するのにはメリットとデメリット両方が存在しています。

まずメリットとしては、高速ですのでキャッシュヒットする確率を上げることができ、これまでよりも多くの処理を高速化することができます。これは非常に嬉しいことで、わざわざメモリやストレージまで問い合わせる必要がなく、プロセッサ内で完結するのが大きな特徴となります。

ちなみにこの利点は、ゲーミングにも生かされています。ゲームなんかだとキャッシュヒットしやすいので、性能を向上させやすいのです。

一方でデメリットもあります。前項でお話したとおり、高密度にはならないので大容量にすることはできません。する方法があるとすれば3D方向に更に重ねていくという方法がありますが、ただこれも万能な方法ではなくコストもかかりますし優れた方法とは言えないでしょう。

Intelのアプローチ

一方でIntelのアプローチは高速なメモリを搭載するというものになります。

Xeon MaxではCPUにHBM2eメモリを同梱し、それをCPUに接続しています。

キャッシュを大容量にするわけではないため、メモリに問い合わせが発生する可能性がAMDの3D V-Cacheより高くなりますが、そもそもメモリが高速だったらキャッシュとメモリの速度のギャップ問題は軽減できるのです。HBM2eは広帯域メモリの規格となっており、Intelの公称では1TB/sの帯域を実現するとのこととで、十分な帯域であると言えます。特にこれはGPUではなくCPUのメインメモリとして扱うことができるので強力です。

HBM2eを採用するメリットデメリット

メモリにはDRAMが採用されますのでキャッシュのように容量が小さくなるという問題が起きません。これはすなわち、キャッシュほどCPUに近くはないけど、それなりに高速でデータを読み書きできる装置が大容量であるということです。

それに、IntelはこのHBM2eをメインメモリとしても使うことができる他、DDR5と強調して動作させる事ができるともしているので、キャッシュとしても、メインメモリとしても使うことができるので汎用性も高いです。また、Intelの説明ではDDR5のキャッシュとしても利用できると謳っており、やはり汎用的です。

一方でキャッシュよりは早くない、キャッシュより遠いというデメリットがあります。まだXeon Maxの製品が登場していないのでなんと言えませんが、3D V-Cacheと違ってキャッシュヒットの確率が上がるわけではないので、AMDと比べると広範な部分で処理の効率化を図れるものの、キャッシュが少ないのでキャッシュされるような処理が多くない場合はEPYCに軍配が上がるのではないでしょうか。

まとめ

それぞれの強化した部分をまとめます。

AMDはキャッシュを大容量化したことによって、キャッシュヒットの確率を高め、高速に読み書きできる状態でのデータの保持時間の延長や頻繁に使われる処理の高速化と効率化を測ることができました。

Intelは高速なメモリを新たに搭載したことによって、大容量なメモリをキャッシュほど高速ではないものの、それなりに高速な記憶装置に保持しておくことができました。

もちろん、AMDのアプローチもIntelのアプローチもともに利点欠点はあるものの、CPUの処理を効率化するという目的自体は共通しており、ともに面白い技術だなぁと思ったので今回は記事にしました。厳密には結構複雑で完全に理解しているわけではないので間違えているかもしれませんが温かい目で・・・。

関連記事