Compute Express Link

Compute Express LinkCXL)は、高性能なデータセンターコンピューター向けに設計された、CPU-デバイス間およびCPU-メモリ間を高速に接続するためのオープンスタンダードである[1][2][3][4]

Compute Express Link
開発年2019年 (5年前) (2019)
速度Full duplex
1.x, 2.x (32 GT/s英語版):
  • 3.938 GB/s (×1)
  • 63.015 GB/s (×16)

3.0 (64 GT/s):7.563 GB/s (×1)

121.0 GB/s (×16)
外部リンクwww.computeexpresslink.org

CXLは、PCI Express(PCIe)の物理的・電気的インターフェイス上に構築されており、PCIeベースのブロック入出力プロトコル(CXL.io)、システムメモリ(CXL.cache)およびデバイスメモリ英語版(CXL.mem)にアクセスするための新しいキャッシュコヒーレントプロトコルから構成される。

歴史

この標準は、主にIntelによって開発された。CXL Consortiumは、2019年3月にAlibaba GroupCiscoDell EMCFacebookGoogleHewlettPackard Enterprise(HPE)、HuaweiIntelMicrosoftからなる創設メンバーによって立ち上げられ[5][6]、2019年9月に正式に設立された[7]。2022年1月の時点で、取締役会の創設者にAMDNVidiaSamsungXilinxが加わり、contributing memberとしてARMBroadcomEricssonIBMKeysightKioxiaMarvellMellanox英語版MicrochipMicronOracleQualcommRambusRenesasSeagateSK HynixSynopsysWesternDigitalなどが参加した[8][9]。業界パートナーには、PCI-SIG英語版[10]Gen-Z英語版[11]SNIA[12]DMTFが参加している[13]

2020年4月2日、Compute Express LinkとGen-Zコンソーシアムは、両者のテクノロジー間の相互運用性を実装する計画を発表し[14][15]、最初の成果が2021年1月に発表された[16]。2021年11月10日、単一の業界標準の開発に注力するため、Gen-Zの仕様と資産がCXLに移管された[17]。この発表の時点で、Gen-Zメンバーの70%はすでにCXLコンソーシアムに参加していた。このコンソーシアムに参加していた企業には、OpenCAPI英語版(IBM)、CCIX英語版(Xilinx)、Gen-Z(HPE)オープンスタンダードなどのメモリコヒーレント相互接続テクノロジー、プロプライエタリのInfiniBand/RoCE英語版(Mellanox)、Infinity Fabric(AMD)、Omni-Path英語版およびQuickPath/Ultra Path英語版(Intel)、NVLink/NVSwitch(Nvidia)プロトコルの背後にある企業がある[18][19]

仕様

2019年3月11日、PCIe 5.0をベースにしたCXL Specification 1.0が公開された[6]。この仕様により、ホストCPUは、キャッシュコヒーレントプロトコルを使用して、アクセラレータデバイス上の共有メモリにアクセスできるようになった。 CXL Specification 1.1は、2019年6月に公開された。

2020年11月10日、CXL Specification 2.0が公開された。新しいバージョンでは、CXLスイッチングのサポートが追加され、分散共有メモリおよびdisaggregated storage英語版構成で、複数のCXL1.xおよび2.0デバイスをCXL2.0ホストプロセッサに接続したり、各デバイスを複数のホストプロセッサにプールしたりできるようになった。また、デバイス整合性とデータ暗号化も実装している[20]。CXL 2.0は引き続きPCIe 5.0 PHYを使用するため、CXL 1.xからの帯域幅の増加はない。

次のバージョンのCXL仕様は2022年上半期に予定されており、PCIe 6.0 PHYをベースとしたものになる予定である[19][21]

実装

2019年4月2日、IntelはCXLを搭載したAgilex FPGAファミリを発表した[22]

2021年5月11日、Samsungは128 GByte DDR5ベースのメモリ拡張モジュールを発表した。これを利用すると、データセンターや潜在的な次世代のPCに適した、テラバイトレベルのメモリ拡張が可能になる[23]。2022年5月10日には、プロプライエタリなメモリコントローラーを利用した、更新版の512 GByteバージョンがリリースされた[24]

2021年には、IntelのSapphire Rapidsプロセッサ[25]、AMDのZen 4 EPYC「Genoa」および「Bergamo」プロセッサでのCXL1.1のサポートが発表された[26]

CXLデバイスは、Intel[27]、Astera、Rambus、Synopsys、Samsung、Teledyne LeCroyなどにより、SC21 Conferenceで展示された[28][29][30]

2023年8月7日(米国時間)、マイクロンがサンプル出荷を開始[31]

プロトコル

CXLの標準では、3種類の独立したプロトコルが定義されている[32][20]

  • 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)ブロックによって多重化されてから、4つの16バイトデータslotsと2バイトの巡回冗長検査(CRC)値からなる固定幅528ビット(66バイト)のフロー制御ユニット英語版(Flow Control Unit、FLIT)ブロックを使用して標準のPCIe 5.0 PHYで転送される[32]。CXL FLITは、PCIe標準のトランザクション層パケット(TLP)とデータリンク層パケット(DLLP)データを可変フレームサイズ形式でカプセル化する[33][34]

デバイスタイプ

CXLは、次の3種類の主要なデバイスタイプをサポートするように設計されている[20]

  • Type 1(CXL.io、CXL.cache)- ローカルメモリのない特殊なアクセラレータ(スマートNICなど)。このタイプのデバイスは、ホストCPUメモリへのコヒーレントアクセスに依存している。
  • Type 2(CXL.io、CXL.cache、CXL.mem)- 高性能GDDRHBMローカルメモリを備えた汎用アクセラレータ(GPUASICFPGA)。このタイプのデバイスは、ホストCPUのメモリにコヒーレントにアクセスしたり、ホストCPUからデバイスのローカルメモリへのコヒーレントまたは非コヒーレントアクセスを提供できる。
  • Type 3(CXL.io、CXL.mem)- メモリ拡張ボードやストレージクラスメモリ。このタイプのデバイスは、ホストCPUにローカルのDRAMや不揮発性ストレージへの低遅延アクセスを提供する。

Type 2のデバイスは、デバイスドライバーが管理する2つのメモリコヒーレンスモードを実装する。デバイスバイアスモードでは、デバイスはローカルメモリに直接アクセスし、CPUによるキャッシュは実行されない。ホストバイアスモードでは、ホストCPUのキャッシュコントローラーがデバイスメモリへのすべてのアクセスを処理する。コヒーレンスモードは、4 KBページごとに個別に設定でき、Type 2のデバイスのローカルメモリの変換テーブルに保存される。他のCPU間メモリコヒーレンシプロトコルとは異なり、この配置では、ホストCPUメモリコントローラがキャッシュエージェントを実装するだけで済む。このような非対称的なアプローチにより、実装の複雑さが軽減され、待ち時間が短縮される[32]

関連項目

出典

外部リンク