CXL Attach Memory/Storage(Photo09)

  • Photo09: お食事風景。中央がお母さん。子猫は全員ささみを「飲み干した」後で、お母さんのおっぱいにもぶら下がるという。ちなみに全員別々の里親さんのところに行きました。

さて、2021年までは全く存在しなかった製品であるし、2022年もコンシューマまで降りてくるか? と言われると結構怪しい(サーバーのみの公算が非常に大きい)ものの、新しい分野なだけでに簡単に説明しておきたい。

CXLとは何ぞや、という話はちょっと古いがこちらで説明している。実は2021年にこの分野も色々動きがあり、今ではCCIXは完全にマルチプロセッサ間接続用という感じに後退。CXLはAccelerator以外にMemory Attach Storageの主役の片方(もう片方はOpenCAPIのMemory接続用I/FであるOMI:Open Memory Interface)に成り上がってしまっている。この話、というか先のこの連載のUpdate書きましょう、と編集氏とお話しつつ、まだ書いてないのは筆者の責任である。今年こそ何とか...という感じなのでご容赦いただきたい。

まぁそれはともかく。ちょっと古いニュースだが、2021年3月にMicronが3D XPoint事業から完全に撤退、ユタ州Lehiの工場を売却するという話があった。このニュースの中でMicronのコメントとして「今後同社は、コンピューティング、メモリ、ストレージ間の柔軟な接続を可能にする新たな業界標準のインタフェースであるCompute Express Link(CXL)を活用するメモリ製品への投資を増やし、CXL対応メモリ製品の市場導入の加速に注力するという。」という一節をご記憶の方はそう多くないかもしれない。ただ業界では、CXLを利用したMemory/Storage Attachのマーケットへの期待が急速に盛り上がっている。少なくともMicronは3D XPointの方向性には市場性が十分ではなく、CXL Attach Memory/Storageの方が未来がある、と見ているわけだ。別の例はまたしてもSamsungである。Photo10の中央のピラミッドは古典的なMemory Hierarchyの例である。強いて言えばStorageとMain Memoryの間にSCM(Storage Class Memory)が挟まっているのが昨今らしいという格好だが、このSCMのマーケットに対して同社はCXL-DRAMを提供する事を明確に表明していることが判る。

  • Photo10: AXDIMMはDDR4 DIMM上にAIアクセラレータを搭載したもの。DRAM-PIMは、HBMメモリにAIアクセラレータを積んだスペシャルHBM。どちらも2021年からSamsungが積極的にプロモーションしているのだが、普及するかはちょっと「?」

もともとServerを含めてPCのアーキテクチャでは、基本的にメモリはLocalのMemory Controllerに接続されており、そのMemory ControllerはCPUのかなり近くに搭載されていた。これを分離したい、という話は以前からあり、例えばIntelが2013年に開催した"Reimagine the Datacenter"の中で、将来のデータセンターはCompute/Memory/Storageをそれぞれ独立して搭載し、必要に応じて必要なリソースを組み合わせて使う様になるという、当時としては夢物語に近い構想を語っていた。実はこのうちStorageに関しては既に実現している。2021年8月のIntel Architecture Day 2021の中で、IPUを使う事でリモートのストレージをVirtual SSDとしてあたかもLocal SSDの様に利用できるという事例が示されたが、これはIPUを使うとXeonをこのために使う必要が無くなるという意味であって、別にIPUを使わなくても既に実現できている。ところがMemoryに関しては、今のところリモートでの接続は不可能であり、あくまでもMemory Controllerの先にぶら下がったDIMMを割り当てる必要があった。ところがCXLを使うと、Memory Controllerに繋がっていない場所にMain Memoryが湧くことになる。帯域はPCIe Gen5 x16だから、64GB/secとなり、DDR4-3200 DIMMの2.5倍の帯域である。さすがにLatencyはLocal Memoryよりは多いので、ランダムアクセスを激しく行うのには向いていないが、IntelがOptane Persistent Memoryを強力に推し進めている領域を、標準技術を使いながら、しかも大容量かつ高速アクセスが出来る(おまけに必要ならHot Plug/Unplugもできる)メモリで代替できるわけで、これは本気でサーバーのアーキテクチャが変わる可能性がある。モジュール形状や電源供給にもゆとりがあるので、現状のメインメモリでは実現できない容量を搭載する事もできる。それこそIn-Memory Computingなどでは大喜びされそうなソリューションが比較的簡単に実現できる事になる。ちなみにOMIも同種のソリューションを、ちょっと異なる形で提供しようとしており、今のところ両者が水面下で主導権争いをしている格好である。

ただメンバー企業が多いのはCXLの方であり、(またしてもで恐縮だが)Samsungは2021年5月に業界初となるMemory Expanderを発表している(Photo11)。勿論ダイナミックにメインメモリが増えたり減ったり、というのは通常のOSではサポートできないし、メインメモリと同じアクセス速度/Latencyと勘違いしてアクセスされるとシステム全体が遅くなる(うっかりKernel Page TableがCXL Attach Memoryに載ったりしたら恐ろしい事になるのが目に見えている)といった問題は当然あり得る訳で、OSとかアプリケーションの側の対応が必要になる。5月に発表されたこのメモリは、まさにこうしたOSやミドルウェア、アプリケーションの開発作業用テストベッドという位置付けである。2021年10月には、これを利用するためのOpen SourceベースのSMDK(Scalable Memory Development Kit)も追加で提供されており、現在水面下で色々なベンダーが対応作業を行っている。

  • Photo11: これは2Uくらいのサーバのフロントに装着する事を想定したフォームファクタとなっている。

こうしたものの第一弾の製品が、恐らく2022年後半にかけて出てくるであろうと予測される。どんな形でどんなものが、というのは現状はっきりしないが、従来と異なるカテゴリーの製品だけに、製品化が楽しみである。

なおこれをDRAM編で説明しなかったのは、CXL Attach StorageはSRAM/DRAM/Flashなんでもござれ、だからだ。今はDRAMが先行しているが、将来はFlashベースのものとか、DRAM/Flash混載とか、その他のメモリ(それこそ3D XPointというかOptane Memoryもあり得る)も利用可能なためである。というか、案外コンシューマ向けにOptaneベースの製品とか出てきそうな気もするのだが、さてどうだろう?