- プロセッサ、メモリ、拡張デバイス、アクセラレーターなどをキャッシュコヒーレンスを維持しながら相互接続する業界標準インターコネクト規格
- PCIeの仕様を流用。Gen5以降
- 最新仕様 v4.0
- PCIe 7.0へ依存
- Linuxでどのバージョンを使えるかは別
- [Compute Express Link Subsystem Maturity Map — The Linux Kernel documentation](https://docs.kernel.org/driver-api/cxl/maturity-map.html)
- CXLをどう開発するのか?デバイスがないのでは?
- QEMUを拡張してCXLデバイスをエミュレーション
- プロトコル
- Gen 5.0以降のPCIeを利用し、論理レイヤでCXLプロトコルを動作する。
- CXL デバイス 3種類
- キャッシュをもつかメモリをもつか
- Type 1
- キャッシュをもちメモリ内蔵なし
- SmartNICなど
- Type2
- キャッシュもメモリも内蔵
- GPUなど
- Type3
- メモリ内蔵のみ
- 一番需要がある
- SSDや拡張メモリをPCIeデバイスに刺せる
- 揮発・不揮発サポート
- ![[Pasted image 20260121162906.png|600]]
- CXLはLinuxからはキャラクタデバイスからみえる
- メモリシステムかファイル・システムから使うか
- Famfs:ストレージではなくメモリを操作するファイルシステム
- ユースケース:Memory Pooling / ラックレベル接続
- [CXL-2.0-Memory-Pooling.pdf](https://computeexpresslink.org/wp-content/uploads/2023/12/CXL-2.0-Memory-Pooling.pdf)