CXLはメモリーではなく、PCIe上に記憶アクセスと整合性を重ねた接続規格だ。load/store意味論、局所DRAMとSSDの間を埋める遅延の谷、拡張・プール・共有の三段階を技術レポート形式で詳説する。
生成AIの学習・推論を支えるデータセンターで、いま設計者が最も頭を悩ませているのは演算器の数ではない。演算コアに供給しきれないメモリーの容量と帯域、いわゆる「メモリーの壁」である。CXL(Compute Express Link)は、この壁に対する回路レベルの回答として2019年に登場した。ところが言葉が先走り、「新しいメモリー」「HBMの代替」といった誤解が広がっている。CXLは記憶素子そのものを一切作り替えない。プロセッサーが記憶装置へ「どうつながり、どう使うか」という接続の規約を書き換えるだけだ。この一点を押さえないと、いま語られるエコシステム全体の意味がほどけない。
四つの言葉を分けることから始まる
混同されがちな四語を、まず役割で切り分ける。DRAM(DDR5)はサーバーの主記憶で、CPUに直結する作業机の上の書類にあたる。HBM(High Bandwidth Memory)は、シリコン貫通電極(TSV)でDRAMダイを8〜12段積層し、インターポーザー上でGPUや専用アクセラレーターの至近に置いた超広帯域メモリーで、HBM3Eなら1スタックあたり毎秒1.2テラバイト級、8スタック搭載の加速器では合計8テラバイト毎秒に達する。PCIeはCPU・GPU・SSDをつなぐ汎用の高速配線そのもの。そしてCXLは、そのPCIeの物理層を土台に「メモリーアクセスと整合性(コヒーレンシ)の作法」を上乗せした接続規格である。
つまり前二者は記憶の「素材技術」、後二者は「配線技術」だ。CXLが速度の魔法でDRAMを速くするわけではない。変えるのは記憶の物理ではなく、記憶への到達経路と管理単位である。
PCIeの上に重なる三つのプロトコル
CXLの中身は三つのサブプロトコルに分かれる。CXL.io はPCIeそのままで機器の認識・設定・初期化を担い、CXL.cache はデバイス側がホストのメモリーをキャッシュ整合性を保ったまま参照することを許し、CXL.mem はホスト側がデバイスに付いたメモリーへ直接読み書きすることを可能にする。三つは同じPCIeの物理層を共有し、その上で役割だけを分けている。
デバイスは果たす役割で三種に整理される。キャッシュのみ持つType 1(スマートNIC等)、キャッシュと自前メモリーを併せ持つType 2(GPU等)、そしてメモリー拡張に特化したType 3(メモリーエキスパンダー)だ。データセンターで「CXLメモリー」と呼ばれて増設されるのは、ほとんどがこのType 3にあたる。物理層をPCIeに相乗りさせたことが、後述する標準化競争の勝敗を分けた伏線になっている。
I/Oの依頼から、記憶への直接アクセスへ
CXLが通常のPCIe機器と決定的に違うのは、通信の意味論にある。従来のPCIe機器(NVMe SSDなど)は、デバイスドライバーを介したI/Oトランザクション、すなわち「読み書きを依頼する」やり取りでアクセスされる。アプリケーションがシステムコールを呼び、OSがDMA転送を仕掛け、ブロック単位でデータをメモリーへ複写する——数層のソフトウェアを必ず経由する。
CXL.memはこの構図を畳む。デバイス上のDRAMは「ホスト管理デバイスメモリー(HDM)」としてホストの物理アドレス空間(HPA)に地続きで写し込まれる。OSから見れば、それはドライバー越しの外部装置ではなく、もう一つのNUMAノードとして現れる普通のシステムメモリーになる。CPUはキャッシュ可能な load/store 命令を、CXLの先の記憶へそのまま発行できる。I/Oの作法から記憶の作法へ——この一段の昇格が、CXLを「ただのPCIe拡張カード」から隔てている。
DIMMスロットとCPUピンが決める容量の限界
なぜこの作法が要るのか。従来サーバーのDRAMはCPUのメモリーコントローラーに直結し、これは速いが容量に天井がある。天井を決めるのはメモリーチャネル数、CPUパッケージのピン本数、基板上の配線面積、消費電力、そして高速化に伴う信号品質の劣化だ。DDR5-6400は1チャネルあたり毎秒51.2ギガバイト、第5世代Xeonの8チャネルで約410ギガバイト、12チャネル世代でも約600ギガバイト止まりで、チャネルを増やすほどピンと基板配線が破綻に近づく。
局所DRAMは机の脇の引き出しに似て、手は届くが入る量が限られる。CXLが提案するのは、少し離れた場所に置く共用の書庫だ。アクセスは一拍遅れるが、容量と融通は段違いに広がる。
局所DRAMとHBMのあいだに空いた遅延の谷
CXLの居場所は、メモリー階層を遅延(レイテンシ)で並べると見えてくる。L1キャッシュが約1ナノ秒、局所DRAMがロード確定まで約80〜140ナノ秒、CXL直結メモリーはそこへ概ね150〜250ナノ秒を上乗せして約200〜400ナノ秒、スイッチを一段挟むごとにさらに約100ナノ秒が積み増される。一方でNVMe SSDは1万ナノ秒(10マイクロ秒)以上と桁が変わる。
ここに従来は深い谷があった。DRAMの数百ナノ秒とSSDの数万ナノ秒のあいだ、二桁分の遅延が空白だったのだ。CXLメモリーはまさにその谷を埋める「温かいが机の上ではないデータ」の置き場として機能する。だからこそ運用の鉄則は単純で、頻繁に触る熱いデータはHBMか局所DRAMに留め、参照頻度の落ちた冷たいデータを遠い段へ送る。容量を足すこと自体に意味はなく、データを正しい段に置けて初めて効く。
帯域は遅延とは別の物差しで見る必要がある。PCIe 5.0 x16のCXLリンクは片方向で約64ギガバイト毎秒——これはDDR5-6400およそ1.25チャネル分に過ぎない。CXLは「リンク1本あたりの帯域」では局所DRAMの集約帯域に及ばず、その代わりに容量とプール化の自由度を稼ぐ技術だと理解する必要がある。
拡張・プール・共有 — 三段階で広がる効能
CXLの効能は規格世代とともに三段に積み上がる。第一が容量拡張で、CPUのチャネル上限を越えてメモリーを足す。CXL 1.1(PCIe 5.0基盤)が実装したのはここまでだ。第二がプール化で、CXL 2.0が導入したスイッチングにより、複数サーバーが一つの共有メモリー資源プールから必要量だけ割り当てを受ける。第三が共有で、CXL 3.0(PCIe 6.0基盤)がハードウェアによるコヒーレンシを伴うメモリー共有とマルチレベルのファブリックを実現し、最大数千ノード規模で同一メモリー領域を複数プロセッサーが整合性を保ったまま触れるようになる。
このプール化が解く現実の損失は、日本ではほとんど報じられない。マイクロソフトがASPLOS 2023で公開した研究「Pond」は、クラウドのサーバー群で割り当て済みなのに使われず固定化したメモリー——いわゆる取り残されたメモリー(stranded memory)——が最大で全体の約25%に達することを実測で示した。CXLプールはこの遊休を回収し、同論文の試算ではデータセンター全体のDRAM需要を数%押し下げうるとした。同じ会議でメタが発表した「TPP(Transparent Page Placement)」は、ページの温度を判定して局所DRAMとCXL段を自動で振り分けるLinux向け機構で、ソフトウェア側の段管理がいかに性能を左右するかを定量で裏づけた。CXLの価値は半分がソフトウェアにあるという、この一次資料の含意は重い。
非対称コヒーレンシという設計上の割り切り
複数の演算器が同じデータを触るとき、誰かが書き換えた値を他が古いまま読む事故を防ぐのがキャッシュ整合性だ。CXLはここで非対称コヒーレンシという割り切りを採った。整合性の管理主体(ホームエージェント)をホスト側に一本化し、デバイスはCXL.cacheで参照を要求するだけに留める。Type 2デバイスの自前メモリーには「ホストバイアス」「デバイスバイアス」という状態切り替えが用意され、ホストが頻繁に触る局面と、デバイスが自分のメモリーをホストの整合性処理を介さず高速に使う局面を切り分ける。
この非対称設計は、整合性を双方が対等に管理する競合規格CCIXと対照的で、デバイス側の論理回路を大幅に簡素化できる。整合性の重い処理をホストに寄せた分だけ、メモリーエキスパンダーやアクセラレーターの実装障壁が下がった。標準を普及させるうえで、この「作りやすさ」の差は決定的に働いた。
規格戦争を吸収して標準を握る
CXLが本命になった経緯は、技術史として記録に値する。2016年前後、演算器とメモリーをコヒーレントにつなぐ規格は乱立していた。アクセラレーター向けのCCIX、HPEが主導しメモリーファブリックを志向したGen-Z、IBMが率いたOpenCAPI——いずれも一時は有力候補だった。そこへインテルが2019年にエコシステムの重量を背に投入したのがCXLである。
決着は早かった。Gen-Z Consortiumは2021〜2022年にかけて資産をCXL Consortiumへ移管し、OpenCAPI Consortiumも2022年にCXLへ統合された。CCIXは事実上退場した。つまりCXLは競合規格を「打ち負かした」というより吸収合併し、標準化団体ごと取り込んで唯一の選択肢になった。物理層をPCIeに相乗りさせて新規配線を不要にした実装容易性と、CPU供給側を握るインテルの引力が、この標準統一を駆動した。複数規格が併存した数年を経て、いま設計者がコヒーレント接続を語るときCXL以外の選択肢を持たない状況は、自然発生ではなく統合の帰結である。
PAM4とFLITが運ぶ次世代の帯域
世代を分ける物理は信号変調にある。CXL 1.1/2.0が基盤とするPCIe 5.0は1レーン32ギガトランスファー毎秒、二値のNRZ変調で、68バイトのFLIT(フロー制御単位)でデータを区切る。
CXL 3.0が乗るPCIe 6.0は64ギガトランスファー毎秒へ倍増するが、これは単純なクロック向上では届かない。一度の信号で4値を表現するPAM4変調を導入し、増えた誤りを前方誤り訂正(FEC)で補い、その訂正を成立させるために256バイトの大型FLITへ枠組みを刷新した。
x16リンクで片方向約128ギガバイト毎秒——PCIe 5.0比で倍の帯域を、遅延をほぼ増やさずに得るという難題を、変調方式と誤り訂正と枠組みの三点同時改修で解いている。
この帯域の二倍化が効くのは、プールから複数ホストへ同時供給する構成や、ファブリックを多段に渡らせる構成だ。CXL 3.1(2023年)はファブリック管理とセキュリティを、続く3.2は信頼性と運用機能を足し、規格の地固めが続いている。物理層をPCIeと共有し続ける戦略上、PCIe 7.0の128ギガトランスファー世代がそのまま次のCXLの天井を引き上げる。
設計図と稼働実績を隔てるもの
ここまで設計思想は整っている。にもかかわらずCXLは長く「来年の技術」と言われ続けてきた。容量拡張のCXL 2.0メモリーモジュールは製品として存在する——マイクロンのCZ120(PCIe 5.0 x8、128/256ギガバイト)、サムスンのCMM-D、SKハイニックスのCMMがそれだ。コントローラー側ではアステラ・ラボのLeo、マーベルが2024年に投入したStructera系が量産段階に入った。CPU側も第4世代Xeon(Sapphire Rapids、2023年)がCXL 1.1を初めて主流に載せ、AMDのEPYC GenoaもCXL 1.1+に対応した。部品は揃いつつある。
それでも設計図と大規模稼働のあいだには距離が残る。プール化に不可欠なCXLスイッチの配備は限定的で、追加の遅延、コントローラーのコスト、帯域の制約、そしてアプリケーション側の対応が前提条件として重くのしかかる。ソフトウェアが段を正しく振り分けられなければ、容量を足しても性能は出ない。
日本ではほとんど語られない構造的事実を一つ補えば、CXLメモリーモジュールの心臓部であるメモリーインターフェースチップの分野で、中国の澜起科技(Montage Technology)が世界的な存在感を持つ。同社はDDR5世代のレジスタークロックドライバー(RCD/MRCD)で高い市場占有を握り、CXLメモリーエキスパンダーコントローラー「MXC」を早期に製品化した数少ない事業者の一つだ。米中の技術摩擦が先端ロジックや製造装置に集中して報じられる一方で、AIサーバーの記憶を組み替えるこの配線層に、中国企業が深く根を張っている事実は見落とされやすい。CXLが架構(アーキテクチャ)から実装と稼働へ移るとき、その配備規模と実績こそが、次に観察すべき指標になる。