Compute Express Link (CXL) เป็นมาตรฐานที่มีจุดประสงค์เพื่อเชื่อมต่อ CPU เข้ากับตัวเร่งการประมวลผลให้สามารถใช้หน่วยความจำร่วมกันได้ โดยพัฒนาต่อยอดอยู่บนมาตรฐานการเชื่อมต่อแบบ PCIe ซึ่งเวอร์ชัน 1.0, 1.1 และ 2.0 ในช่วงปี 2019 ถึง 2020 ล้วนอยู่บน PCIe 5.0 ทั้งสิ้น แต่สำหรับ CXL 3.0 จะเริ่มที่ PCIe 6.0 ที่นอกจากความสามารถด้าน Physical ก็มีการเพิ่มเติมความสามารถด้าน Logical อย่างมากเช่นกัน
รู้จักกับ Compute Express Link (CXL)
Compute Express Link (CXL) ถูกริเริ่มโดย Intel ก่อนจะส่งต่อให้ภาคอุตสาหกรรมในปี 2019 กลายเป็นการร่วมมือกันระหว่าง Vendor มากมายสู่ CXL Consortium เช่น Alibaba, Cisco, Dell EMX, Faceboo, Google, HPE, Huawei, Intel, AMD, Microsoft, NVdia, Samsung, Xlinx, ARM, Broadcom, Kioxia และยักษ์ใหญ่อีกหลายบริษัท ซึ่งส่วน Physical พึ่งพา PCIe ในขณะที่ตัวมาตรฐานจะพูดถึงโปรโตคอล 3 ตัวคือ
- CXL.io – ปรับปรุงจาก PCIe 5.0 ครอบคลุมเรื่อง คอนฟิค การจัดการลิงก์ การค้นหาอุปกรณ์ Interruption DMA และการเข้าถึง Register
- CXL.cache – การทำให้อุปกรณ์ Peripheral สามารถเข้าถึงและแคชหน่วยความจำของซีพียูโฮสต์ได้ด้วยการร้องขอและตอบสนองด้วยความหน่วงต่ำ
- CXL.mem – กลับกันกับ cxl.cache ส่วนนี้ครอบคลุมที่ซีพียูฝั่งโฮสต์สามารถเข้าถึงและแคชหน่วยความจำของอุปกรณ์ด้วยคำสั่ง Load/Store สำหรับหน่วยความจำไม่ถาวร (RAM) และหน่วยความจำถาวร (flash storage)
โปรโตคอลข้างต้นจะถูกจัดการด้วยสิ่งที่เรียกว่า Arbitration and Multiplexing (ARB/MUX) ก่อนจัดส่งผ่านช่องทาง PCIe5.0 ซึ่งกระบวนการคือ CXL Flow Control Unit (FLIT) จะทำการห่อหุ้ม (Encapsulate) แพ็กเกจของ PCIe เอาไว้ที่ประกอบด้วย Transaction layer Packet และ Data Link Layer Packet ในเฟรมขนาดต่างๆกัน
นอกจากนี้ในเนื้อหาของ CXL ยังการจำแนกชนิดของอุปกรณ์ไว้ 3 ประเภทซึ่งก็คือ
- Type 1 – Accelerator ที่ไม่มีหน่วยความจำภายในต้องอาศัยการเข้าถึงหน่วยความจำของซีพียู
- Type 2 – Accelerator ทั่วไปเช่น GPU, ASIC, FPGA ที่อุปกรณ์มีหน่วยความจำเอง ซึ่งอาจต้องการเข้าถึงหน่วยความจำของซีพียูหรือให้ซีพียูเข้ามาส่วนของตน
- Type 3 – บอร์ดสำหรับขยายหน่วยความจำหรือ Storage ซึ่งอุปกรณ์อยากเปิดให้ซีพียูเข้าถึงด้วยความหน่วงต่ำมายัง Local DRAM หรือ RAM
Compute Express Link 3.0
ภาพรวมในเชิง Physical ตัว CXL 3.0 พัฒนาต่อยอดจาก PCIe 6.0 จึงมีความเร็วเพิ่มขึ้นถึง 2 เท่าเนื่องจาก PCIe เวอร์ชันใหม่เปลี่ยนการส่งสัญญาณจาก Binary (NRZ) สู่ Quate-state (PAM4) ซึ่งทีมงาน CXL Consortium ได้ปรับปรุงให้ CXL Flow Control Unit (FLIT) มีขนาดมากขึ้นด้วยจาก 68 ไบต์เป็น 256 ไบต์ จึงเป็นที่มาว่าในเวอร์ชัน 3.0 จึงมีการรองรับการทำงานที่ซับซ้อนได้เพราะ Header มากขึ้น แถมยังรองรับการทำงานร่วมกับมาตรฐานเก่าๆได้ด้วย หมายถึงลดสเป็คไปใช้กับฮาร์ดแวร์เก่าได้นั่นเอง
ในเชิงของฟีเจอร์ที่ถูกอัปเกรตมีเรื่องหลักๆที่น่าสนใจหลายตัวคือ
1.) Enhance Coherency หรือกล่าวคือปรับปรุงเรื่องการอัปเดตข้อมูลระหว่างอุปกรณ์และโฮสต์ได้ตรงกันมากขึ้น เช่น หากมีการเปลี่ยนแปลงที่อุปกรณ์ๆก็จะบอกโฮสต์ได้
2.) P2P อนุญาตให้อุปกรณ์สามารถเข้าถึงหน่วยความจำกันเองได้ไม่ผ่านโฮสต์ ซึ่งช่วยลดแบนวิธด์และความหน่วง
3.) Memory Pooling เริ่มต้นใน CXL 2.0 ซึ่งช่วยให้โฮสต์หลายตัวสามารถเข้าถึงหน่วยความจำของอุปกณ์ได้แต่ต้องมีการจอง Segment ไว้ แต่ CXL 3.0 เปิดให้เกิดการแชร์หน่วยความจำที่เหนือกว่าด้วยทำสำเนาของ Segment ที่แชร์ (ตามภาพ) ถือเป็นอีกโหมดที่เพิ่มขึ้นแต่ไม่ได้ทดแทน Pooling เพราะมีจุดเด่นในการใช้คนละอย่างกัน
4.) เดิมที CXL รุ่นก่อนจะอนุญาตให้มีการเชื่อมต่อ Root port ได้แค่ 1 ตัวและจำกัดแค่ประเภท 1 หรือ 2 แต่ CXL 3.0 ได้ปลอดล็อกให้เกิดการเชื่อมต่อได้ทั้งประเภทที่ 1,2,3 สนับสนุนเรื่อง P2P อีกด้วย
5.) สามารถทำการเชื่อมต่อผ่าน Switch ได้ซับซ้อนกว่าเดิมทั้ง (Multi-level) หรือในลักษณะ Mesh หรือ Ring ได้ โดยแต่ละโหนดอาจะเป็นกลุ่มของโฮสต์หรืออุปกรณ์ นอกจากนี้ยังรองรับสถาปัตยกรรมแบบ spine/leaf ที่ให้ทราฟฟิคไปเร้าต์ที่ชั้นบนสุดได้
6.) Global Fabric Attached Memory (GFAM) เป็นสถาปัตกรรมที่พยายามแยกหน่วยความจำและหน่วยประมวลผลจากกัน เพื่อสร้างให้เกิด Memory Pooling ที่เป็นหน่วยความจำคนละชนิดได้ (DRAM หรือ Flash memory) ทั้งนี้หน่วยประมวลผลสามารถเข้าถึงหน่วยความจำได้โดยตรงผ่าน GFAM หรือ CXL Switch ก็ได้ ทั้งนี้ GFAM เป็นการมองการใช้งานขนาดใหญ่เช่นการทำ MapReduce กับคลัสเตอร์เครื่องที่เชื่อมต่อผ่าน CXL
CXL ในปัจจุบันได้ขยายภาพไปมากเนื่องจากเป็นตลาดของดาต้าเซ็นเตอร์ที่เจอกับเทคโนโลยีมากมาย ซึ่ง CXL ได้ทำให้เกิดมาตรฐานในภาคอุตสาหกรรมที่ผู้ผลิตมี Accelerator ตัวเอง อย่างไรก็ดีเมื่อมาตรฐานนำออกมาแล้วก็เพียงแค่รอว่าผู้ผลิตจะตอบสนองเมื่อไหร่กับ CXL 3.0 นี้ครับ
ที่มาและเครดิตรูปภาพ : https://www.anandtech.com/show/17520/compute-express-link-cxl-30-announced-doubled-speeds-and-flexible-fabrics และ https://en.wikipedia.org/wiki/Compute_Express_Link