Kecepatan Ganda dan Kain Fleksibel

Meskipun secara teknis masih merupakan anak baru di blok tersebut, standar Compute Express Link (CXL) untuk konektivitas host-to-device dengan cepat menguasai pasar server. Dirancang untuk menawarkan rangkaian fitur I/O yang kaya yang dibangun di atas standar PCI-Express yang ada – terutama koherensi cache antar perangkat – CXL sedang dipersiapkan untuk digunakan dalam segala hal mulai dari menghubungkan CPU yang lebih baik hingga akselerator di server, hingga mampu lampirkan DRAM dan penyimpanan non-volatil pada apa yang secara fisik masih berupa antarmuka PCIe. Ini adalah peta jalan yang ambisius namun didukung secara luas bahwa dalam tiga tahun yang singkat telah menjadikan CXL sebagai standar interkoneksi perangkat canggih de facto, yang mengarah ke standar saingan Gen-Z, CCIX, dan mulai kemarin, OpenCAPI, semuanya keluar dari perlombaan.

Dan sementara Konsorsium CXL mengambil putaran kemenangan cepat minggu ini setelah memenangkan perang interkoneksi, ada banyak pekerjaan yang harus dilakukan oleh konsorsium dan anggotanya. Di bagian depan produk, CPU x86 pertama dengan CXL baru saja dikirim – sebagian besar tergantung pada apa yang Anda ingin sebut status limbo bahwa chip Intel Sapphire Ridge berada – dan di bagian depan fungsionalitas, vendor perangkat meminta lebih banyak bandwidth dan lebih banyak fitur daripada di rilis 1.x asli CXL. Memenangkan perang interkoneksi menjadikan CXL raja interkoneksi, tetapi dalam prosesnya, itu berarti bahwa CXL harus mampu mengatasi beberapa kasus penggunaan yang lebih kompleks yang dirancang untuk standar saingan.

Untuk itu, pada Flash Memory Summit 2022 minggu ini, Konsorsium CXL hadir untuk mengumumkan versi lengkap berikutnya dari standar CXL, CXL 3.0. Menindaklanjuti standar 2.0, yang dirilis pada akhir tahun 2020 dan memperkenalkan fitur-fitur seperti pengumpulan memori dan sakelar CXL, CXL 3.0 berfokus pada peningkatan besar dalam beberapa area penting untuk interkoneksi. Yang pertama adalah sisi fisik, dimana CXL menggandakan throughput per lajurnya menjadi 64 GT/detik. Sementara itu, di sisi logis, CXL 3.0 sangat memperluas kemampuan logis standar, memungkinkan topologi dan struktur koneksi yang kompleks, serta mode berbagi memori dan akses memori yang lebih fleksibel dalam sekelompok perangkat CXL.

CXL 3.0: Dibangun Di Atas PCI-Express 6.0

Dimulai dengan aspek fisik CXL, versi standar yang baru menghadirkan pembaruan yang telah lama ditunggu-tunggu untuk menggabungkan PCIe 6.0. Kedua versi CXL sebelumnya, yaitu 1.x dan 2.0, dibangun di atas PCIe 5.0, jadi ini adalah pertama kalinya sejak CXL diperkenalkan pada tahun 2019, lapisan fisiknya telah diperbarui.

Itu sendiri merupakan pembaruan besar untuk cara kerja standar PCI-Express, PCIe 6.0 sekali lagi menggandakan jumlah bandwidth yang tersedia melalui bus menjadi 64 GT/detik, yang untuk kartu x16 bekerja hingga 128GB/detik. Hal ini dicapai dengan mentransisikan PCIe dari menggunakan pensinyalan biner (NRZ) ke pensinyalan quad-state (PAM4) dan menggabungkan antarmuka paket tetap (FLIT), memungkinkannya menggandakan kecepatan tanpa kekurangan pengoperasian pada frekuensi yang lebih tinggi. Karena CXL pada gilirannya dibangun di atas PCIe, ini berarti bahwa standar perlu diperbarui untuk memperhitungkan perubahan operasional pada PCIe.

Hasil akhir untuk CXL 3.0 adalah ia mewarisi peningkatan bandwidth penuh dari PCIe 6.0 – bersama dengan semua hal menyenangkan seperti koreksi kesalahan maju (FEC) – menggandakan total bandwidth CXL dibandingkan dengan CXL 2.0.

Khususnya, menurut Konsorsium CXL, mereka dapat mencapai semua ini tanpa peningkatan latensi. Ini adalah salah satu tantangan yang dihadapi PCI-SIG dalam merancang PCIe 6.0, karena koreksi kesalahan yang diperlukan akan menambah latensi pada proses, sehingga PCI-SIG menggunakan bentuk FEC latensi rendah. Namun, CXL 3.0 mengambil langkah lebih jauh dalam upaya mengurangi latensi, sehingga 3.0 memiliki latensi yang sama dengan CXL 1.x/2.0.

Selain pembaruan PCIe .60 dasar, Konsorsium CXL juga telah mengubah ukuran FLIT mereka. Sedangkan CXL 1.x/2.0 menggunakan paket 68 byte yang relatif kecil, CXL 3.0 meningkatkannya hingga 256 byte. Ukuran FLIT yang jauh lebih besar adalah salah satu perubahan komunikasi utama dengan CXL 3.0, karena memberikan standar lebih banyak bit di header FLIT, yang pada gilirannya diperlukan untuk mengaktifkan topologi kompleks dan fabrikasi standar 3.0 yang diperkenalkan. Meskipun sebagai fitur tambahan, CXL 3.0 juga menawarkan mode FLIT “varian” latensi rendah yang memecah CRC menjadi 128 byte “transfer granular sub-FLIT”, yang dirancang untuk mengurangi overhead store-and-forward di lapisan fisik .

Khususnya, ukuran FLIT 256 byte membuat CXL 3.0 konsisten dengan PCIe 6.0, yang dengan sendirinya menggunakan FLIT 256 byte. Dan seperti lapisan fisik yang mendasarinya, CXL mendukung penggunaan FLIT besar tidak hanya pada kecepatan transfer 64 GT/detik yang baru, tetapi juga 32, 16, dan 8 GT/detik, yang pada dasarnya memungkinkan fitur protokol baru digunakan dengan kecepatan transfer yang lebih lambat .

Terakhir, CXL 3.0 sepenuhnya kompatibel dengan versi CXL sebelumnya. Jadi perangkat dan host dapat menurunkan versi sesuai kebutuhan agar sesuai dengan rantai perangkat keras lainnya, meskipun kehilangan fitur dan kecepatan yang lebih baru dalam prosesnya.

Fitur CXL 3.0: Peningkatan Koherensi, Berbagi Memori, Topologi Multi-Level, dan Fabric

Selain lebih meningkatkan bandwidth I/O secara keseluruhan, perubahan protokol yang disebutkan di atas untuk CXL juga telah diterapkan dalam layanan yang memungkinkan fitur baru dalam standar. CXL 1.x lahir sebagai standar host-to-device (relatif) sederhana, tetapi sekarang CXL adalah protokol interkoneksi perangkat yang dominan untuk server, ia perlu memperluas kemampuannya baik untuk mengakomodasi perangkat yang lebih canggih, dan pada akhirnya untuk mengakomodasi lebih banyak perangkat. kasus penggunaan.

Memulai hal-hal di tingkat fitur, berita terbesar di sini adalah bahwa standar telah memperbarui protokol koherensi cache untuk perangkat dengan memori (Tipe-2 dan Tipe-3, dalam bahasa CXL). Koherensi yang ditingkatkan, seperti yang disebut CXL, memungkinkan perangkat untuk mendukung data yang tidak valid yang sedang di-cache oleh host. Ini menggantikan pendekatan koherensi berbasis bias yang digunakan dalam versi CXL sebelumnya, yang menjaga agar semuanya tetap singkat, mempertahankan koherensi tidak begitu banyak oleh membagikan kontrol ruang memori, melainkan dengan menempatkan host atau perangkat yang bertanggung jawab untuk mengontrol akses. Pembatalan kembali, sebaliknya, jauh lebih dekat dengan pendekatan bersama/simetris yang sebenarnya, memungkinkan perangkat CXL untuk menginformasikan host ketika perangkat telah membuat perubahan.

Dimasukkannya pembatalan kembali juga membuka pintu ke konektivitas peer-to-peer baru antar perangkat. Di CXL 3.0, perangkat sekarang dapat langsung mengakses memori satu sama lain tanpa harus melalui host, menggunakan semantik koherensi yang ditingkatkan untuk saling menginformasikan status mereka. Melewati host tidak hanya lebih cepat dari perspektif latensi, tetapi dalam pengaturan yang melibatkan sakelar, itu berarti perangkat tidak menghabiskan bandwidth host-to-switch yang berharga dengan permintaan mereka. Dan sementara kita akan masuk ke topologi nanti, perubahan ini berjalan seiring dengan topologi yang lebih besar, memungkinkan perangkat diatur ke dalam hierarki virtual, di mana semua perangkat dalam hierarki berbagi domain koherensi.

Seiring dengan fungsi tweaking cache, CXL 3.0 juga memperkenalkan beberapa pembaruan penting untuk berbagi memori antara host dan perangkat. Sedangkan CXL 2.0 menawarkan memori penyatuan, di mana beberapa host dapat mengakses memori perangkat tetapi masing-masing harus diberi segmen memori khusus mereka sendiri, CXL 3.0 memperkenalkan berbagi memori yang sebenarnya. Memanfaatkan semantik koherensi baru yang disempurnakan, beberapa host dapat memiliki salinan segmen bersama yang koheren, dengan pembatalan kembali digunakan untuk menjaga semua host tetap sinkron jika ada perubahan pada tingkat perangkat.

Perlu dicatat, bagaimanapun, bahwa ini tidak sepenuhnya menggantikan penyatuan. Masih ada kasus penggunaan di mana penyatuan gaya CXL 2.0 akan lebih disukai (mempertahankan koherensi disertai dengan trade-off), dan CXL 3.0 mendukung pencampuran dan pencocokan dua mode seperlunya.

Lebih lanjut menambah fungsionalitas perangkat host yang ditingkatkan ini, CXL 3.0 menghilangkan batasan sebelumnya pada jumlah perangkat Tipe-1/Tipe-2 yang dapat dipasang di hilir dari satu port root CXL. Sementara CXL 2.0 hanya mengizinkan satu dari perangkat pemrosesan ini untuk hadir di hilir port root, CXL 3.0 mengangkat batasan tersebut sepenuhnya. Sekarang port root CXL dapat mendukung pengaturan mix-and-match penuh perangkat Tipe-1/2/3, tergantung pada tujuan pembuat sistem. Khususnya, ini berarti dapat memasang beberapa akselerator ke satu sakelar, meningkatkan kepadatan (lebih banyak akselerator per host), dan membuat fitur transfer peer-to-peer baru jauh lebih berguna.

Perubahan fitur besar lainnya untuk CXL 3.0 adalah dukungan untuk multi-level switching. Ini dibangun di atas CXL 2.0, yang memperkenalkan dukungan untuk sakelar protokol CXL, tetapi hanya mengizinkan satu sakelar untuk berada di antara host dan perangkatnya. Peralihan multi-level, di sisi lain, memungkinkan beberapa lapisan sakelar – artinya, sakelar masuk ke sakelar lain – yang sangat meningkatkan jenis dan kompleksitas topologi jaringan yang didukung.

Bahkan dengan hanya dua lapisan sakelar, ini adalah fleksibilitas yang cukup untuk mengaktifkan topologi non-pohon, seperti cincin, jerat, dan pengaturan fabric lainnya. Dan node individu dapat menjadi host atau perangkat, tanpa batasan jenis.

Sementara itu, untuk pengaturan yang benar-benar eksotis, CXL 3.0 bahkan dapat mendukung arsitektur tulang belakang/daun, di mana lalu lintas diarahkan melalui node tulang belakang tingkat atas yang satu-satunya tugasnya adalah mengarahkan lalu lintas lebih lanjut kembali ke node tingkat bawah (daun) yang pada gilirannya berisi host sebenarnya. /perangkat.

Akhirnya, semua memori baru dan kemampuan topologi/kain ini dapat digunakan bersama dalam apa yang disebut oleh Konsorsium CXL sebagai Memori Terpasang Kain Global (GFAM). GFAM, singkatnya, membawa ide papan ekspansi memori (Tipe-3) CXL ke tingkat berikutnya dengan memisahkan memori lebih lanjut dari host yang diberikan. Perangkat GFAM, dalam hal itu, secara fungsional merupakan kumpulan memori bersama yang dapat dijangkau oleh host dan perangkat sesuai kebutuhan. Dan perangkat GFAM dapat berisi memori volatil dan non-volatil secara bersamaan, seperti DRAM dan memori flash.

GFAM, pada gilirannya, adalah yang memungkinkan CXL digunakan untuk mendukung pengaturan multi-node yang besar secara efisien. Seperti yang digunakan Konsorsium dalam salah satu contoh mereka, GFAM memungkinkan CXL 3.0 untuk menawarkan kinerja dan efisiensi yang diperlukan untuk mengimplementasikan MapReduce melalui sekelompok mesin yang terhubung dengan CXL. MapReduce, tentu saja, adalah algoritma yang sangat populer untuk digunakan dengan akselerator, jadi memperluas CXL untuk menangani beban kerja yang umum untuk akselerator berkerumun dengan lebih baik adalah langkah berikutnya yang jelas (dan bisa dibilang perlu) untuk standar. Meskipun itu sedikit mengaburkan garis antara tempat interkoneksi lokal seperti CXL berakhir, dan interkoneksi jaringan seperti InfiniBand dimulai.

Pada akhirnya, pembeda terbesar mungkin adalah jumlah node yang didukung. Mekanisme pengalamatan CXL, yang oleh Konsorsium disebut Port Based Routing (PBR), mendukung hingga 2^12 (4096) perangkat. Jadi pengaturan CXL hanya dapat menskalakan sejauh ini, terutama karena akselerator, memori yang terpasang, dan perangkat lain dengan cepat menghabiskan port.

Sebagai penutup, standar CXL 3.0 yang telah selesai dirilis ke publik hari ini, hari pertama FMS 2022. Secara resmi, Konsorsium tidak menawarkan panduan apa pun tentang kapan CXL 3.0 akan muncul di perangkat – terserah produsen peralatan – tetapi masuk akal untuk mengatakan itu tidak akan segera. Dengan host CXL 1.1 yang baru saja dikirimkan – apalagi host CXL 2.0 – produksi aktual CXL tertinggal dari standar selama beberapa tahun, yang merupakan tipikal untuk standar interkoneksi industri besar ini.

Perangkat Keras