【シーエックスエル】

CXL(Compute Express Link) とは?

最終更新:
💡 CPUと対応デバイスを、メモリのルールでつなぐ

ホストのCPUと対応するアクセラレータやメモリデバイスをつなぐ、オープンな接続規格。PCIeの物理層を基に、キャッシュの一貫性やメモリアクセスを扱う。利用できる機能は規格の世代や機器の対応による。

📌 このページのポイント
CXL:対応機器の接続 CPU / ホスト アクセラレータ メモリ CXL対応の接続・構成 CXL.io:入出力・検出・設定 CXL.cache:デバイス→ホスト側 一貫性のあるアクセス CXL.mem:ホスト→デバイス側 メモリアクセス 利用機能は世代・機器・実装による
ホスト、アクセラレータ、メモリデバイスの概念的な接続例。全機器がすべてのプロトコルを使うわけではなく、世代や構成によって対応が異なる。
ひよこ ひよこ
CXLは普通のPCIe接続と同じ?
ペンギン先生 ペンギン先生
PCIeの物理層を基にしているけれど、メモリやキャッシュの一貫性を扱う仕組みも加えているよ。PCIeのスロットに挿せる形なら、どのCPUや機器でもCXL機能を使える、という意味ではない。ホストとデバイスの対応を確認する必要があるんだ。
ひよこ ひよこ
三つのプロトコルは何をするの?
ペンギン先生 ペンギン先生
CXL.ioはデバイスの検出や設定などの入出力、CXL.cacheはデバイスからホスト側メモリを一貫性を保って扱うための仕組み、CXL.memはホストからデバイス側メモリへアクセスする仕組みだよ。デバイスの種類によって、使う組み合わせは異なるんだ。
ひよこ ひよこ
メモリ拡張にはどう使うの?
ペンギン先生 ペンギン先生
例えば対応するホストにCXLメモリデバイスを接続して、利用できるメモリを増やす構成があるよ。ただし何でも自動的に速くなるわけではない。アクセスの遅延や帯域、ソフトウェアの使い方、機器の実装も関係するんだ。
ひよこ ひよこ
プーリングと共有は同じこと?
ペンギン先生 ペンギン先生
プーリングは、メモリ資源を必要に応じて複数のホストへ割り当てたり戻したりする考え方だよ。同じ領域を複数ホストが同時に、一貫性を保って使う共有とは区別する。CXL 2.0ではスイッチやプーリング、3.0では共有やファブリック機能が拡張されたんだ。
ひよこ ひよこ
GPUのメモリ不足も全部解決する?
ペンギン先生 ペンギン先生
どのGPUからも外付けメモリを自由に使える、という保証ではないよ。対応するデバイスの種類、規格の世代、ホストや構成によって機能が違う。メモリ容量を増やすことと、実際の処理が速くなることも区別して確認するんだ。
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「CXL」って出てきたら「CPUと対応デバイスの間で、メモリや一貫性を扱う接続規格」と思えばだいたいOK!
📖 おまけ:英語の意味
「Compute Express Link」 = コンピュート・エクスプレス・リンク
💬 計算を表すCompute、Express、接続を表すLinkを組み合わせた規格名だよ。対応するホストとデバイスの接続で使うんだ。

参考資料

← 用語集にもどる