Compute Express Link

Compute Express Link (CXL)とは



Compute Express Link(CXL)は、高性能データセンターのコンピューティング環境向けに設計された、CPUとデバイス間、およびCPUとメモリ間の高速インターコネクト規格です。このオープンスタンダードは、PCI Express(PCIe)の物理・電気的インターフェースを基盤とし、PCIeのブロック入出力プロトコル(CXL.io)に加え、システムメモリ(CXL.cache)とデバイスメモリ(CXL.mem)へのアクセスを可能にする新しいキャッシュコヒーレントプロトコルを採用しています。

CXLの歴史



CXLは、主にIntelによって開発が進められました。2019年3月、Alibaba Group、Cisco、Dell EMC、Facebook、Google、HewlettPackard Enterprise(HPE)、Huawei、Intel、Microsoftといった創設メンバーによりCXLコンソーシアムが発足し、同年9月に正式に設立されました。その後、2022年1月にはAMD、NVidia、Samsung、Xilinxが取締役会に加わり、ARM、Broadcom、Ericsson、IBM、Keysight、Kioxia、Marvell、Mellanox、Microchip、Micron、Oracle、Qualcomm、Rambus、Renesas、Seagate、SK Hynix、Synopsys、WesternDigitalなどがcontributing memberとして参加しました。また、PCI-SIG、Gen-Z、SNIA、DMTFなどの業界パートナーも参画しています。

CXLコンソーシアムは、2020年4月2日にGen-Zコンソーシアムと相互運用性を実現する計画を発表し、2021年1月にはその最初の成果が公開されました。さらに、2021年11月10日には、単一の業界標準の開発に注力するため、Gen-Zの仕様と資産がCXLに移管されました。この時点までに、Gen-Zメンバーの70%がすでにCXLコンソーシアムに参加していました。CXLコンソーシアムには、OpenCAPI(IBM)、CCIX(Xilinx)、Gen-Z(HPE)などのメモリコヒーレント相互接続技術や、InfiniBand/RoCE(Mellanox)、Infinity Fabric(AMD)、Omni-PathおよびQuickPath/Ultra Path(Intel)、NVLink/NVSwitch(Nvidia)といった独自プロトコルの開発企業も参加しています。

CXLの仕様



2019年3月11日には、PCIe 5.0をベースとしたCXL Specification 1.0が公開され、ホストCPUがキャッシュコヒーレントプロトコルを用いてアクセラレータデバイス上の共有メモリにアクセスできるようになりました。同年6月にはCXL Specification 1.1がリリースされています。2020年11月10日には、CXL Specification 2.0が公開され、CXLスイッチングのサポートが追加されました。これにより、分散共有メモリやdisaggregated storage構成において、複数のCXL1.xおよび2.0デバイスをCXL2.0ホストプロセッサに接続したり、各デバイスを複数のホストプロセッサで共有することが可能になりました。また、デバイス整合性とデータ暗号化も実装されています。CXL 2.0はPCIe 5.0 PHYを使用するため、帯域幅の向上はCXL 1.xから変化ありません。

次バージョンのCXL仕様は、2022年上半期にPCIe 6.0 PHYをベースとして公開される予定です。

CXLの実装



2019年4月2日、IntelはCXLを搭載したAgilex FPGAファミリを発表しました。Samsungは2021年5月11日に、128GB DDR5ベースのメモリ拡張モジュールを発表し、データセンターや次世代PCにおいてテラバイトレベルのメモリ拡張を可能にしました。その後、2022年5月10日には、独自のメモリコントローラーを利用した512GBバージョンがリリースされました。2021年には、IntelのSapphire Rapidsプロセッサ、AMDのZen 4 EPYC「Genoa」および「Bergamo」プロセッサでのCXL1.1のサポートが発表されました。

CXLデバイスは、Intel、Astera、Rambus、Synopsys、Samsung、Teledyne LeCroyなどにより、SC21 Conferenceで展示されました。2023年8月7日には、マイクロンがCXL対応のメモリ製品のサンプル出荷を開始しました。

CXLのプロトコル



CXL標準では、以下の3種類の独立したプロトコルが定義されています。

CXL.io: PCIe 5.0を基盤とし、構成、リンクの初期化と管理、デバイスの検出と列挙、割り込み、DMA、非コヒーレントなロード/ストアを使用したレジスタI/Oアクセスを提供します。
CXL.cache: 周辺機器が低遅延のリクエスト/レスポンスインターフェイスを通じてホストCPUメモリにコヒーレントにアクセス・キャッシュできるようにします。
CXL.mem: ホストCPUが、揮発性(RAM)ストレージと不揮発性(フラッシュメモリ)ストレージの両方に対し、ロード/ストアコマンドを使用してキャッシュされたデバイスメモリにコヒーレントにアクセスできるようにします。

CXL.cacheとCXL.memプロトコルは、CXL.ioプロトコルリンクとは異なる共通のリンク/トランザクションレイヤーで動作します。これらのプロトコル/レイヤーは、Arbitration and Multiplexing(ARB/MUX)ブロックによって多重化された後、528ビット(66バイト)の固定幅FLITブロックを使用し、標準のPCIe 5.0 PHYで転送されます。CXL FLITは、PCIe標準のトランザクション層パケット(TLP)とデータリンク層パケット(DLLP)データを可変フレームサイズ形式でカプセル化します。

CXLのデバイスタイプ



CXLは、以下の3つの主要なデバイスタイプをサポートするように設計されています。

Type 1: ローカルメモリを持たない特殊なアクセラレータ(スマートNICなど)。ホストCPUメモリへのコヒーレントアクセスに依存します。
Type 2: 高性能GDDRやHBMローカルメモリを備えた汎用アクセラレータ(GPU、ASICFPGA)。ホストCPUメモリにコヒーレントにアクセスしたり、ホストCPUからデバイスのローカルメモリへのコヒーレント/非コヒーレントアクセスを提供します。
Type 3: メモリ拡張ボードやストレージクラスメモリ。ホストCPUにローカルDRAMや不揮発性ストレージへの低遅延アクセスを提供します。

Type 2デバイスは、デバイスドライバーが管理する2つのメモリコヒーレンスモードを実装します。デバイスバイアスモードでは、デバイスはローカルメモリに直接アクセスし、CPUによるキャッシュは実行されません。ホストバイアスモードでは、ホストCPUのキャッシュコントローラーがデバイスメモリへの全てのアクセスを処理します。コヒーレンスモードは、4KBページごとに個別に設定でき、Type 2デバイスのローカルメモリの変換テーブルに格納されます。他のCPU間メモリコヒーレンシプロトコルとは異なり、この構成ではホストCPUメモリコントローラがキャッシュエージェントを実装するだけで済み、実装の複雑さを低減し、遅延を短縮できます。

関連技術



Cache coherent interconnect for accelerators (CCIX)
Coherent Accelerator Processor Interface (CAPI)
Gen-Z
Omni-Path
UCIe

出典



公式ウェブサイト

もう一度検索

【記事の利用について】

タイトルと記事文章は、記事のあるページにリンクを張っていただければ、無料で利用できます。
※画像は、利用できませんのでご注意ください。

【リンクついて】

リンクフリーです。