← Về danh sách
Phần cứng & Bán dẫn
#CXL#캐시일관성#메모리풀링#PCIe#메모리확장
Cập nhật lần cuối · 2026-08-28

CXL (Compute Express Link) — kết nối liên thông tốc độ cực cao

1. Tổng quan

A. Định nghĩa

CXL (Compute Express Link) là chuẩn kết nối liên thông (interconnect) mở hoạt động trên tầng vật lý PCIe, cho phép chia sẻ, mở rộng và gộp (Pooling) bộ nhớ với độ trễ thấp giữa CPU, bộ tăng tốc và thiết bị mở rộng bộ nhớ trong khi vẫn duy trì tính nhất quán cache (Cache Coherency).

Theo truyền thống, dung lượng và băng thông của bộ nhớ gắn với CPU (DIMM) bị ràng buộc bởi số kênh mà CPU cung cấp, còn các thiết bị gắn qua PCIe (GPU, NIC, v.v.) tuy nhanh nhưng không chia sẻ được tính nhất quán cache với CPU, nên overhead sao chép và đồng bộ dữ liệu lớn. CXL nối hai thế giới này làm một với ý tưởng "dùng nguyên hệ sinh thái rộng lớn và tầng vật lý của PCIe, nhưng đặt lên trên đó ngữ nghĩa bộ nhớ (load/store) và tính nhất quán cache". Tức là cho phép CPU truy cập trực tiếp bộ nhớ của thiết bị bằng lệnh load/store như bộ nhớ của chính mình.

B. Bối cảnh ra đời và sự cần thiết

Khi workload AI và HPC ngày càng lớn, hai nút thắt xuất hiện đồng thời. Thứ nhất là bức tường dung lượng và băng thông bộ nhớ. Mô hình ngôn ngữ lớn và phân tích trong bộ nhớ (in-memory) đòi hỏi bộ nhớ cỡ vài TB, nhưng số khe DIMM trên mỗi socket CPU bị giới hạn vật lý và khó tăng thêm. Thứ hai là chi phí di chuyển dữ liệu giữa các bộ tăng tốc dị chủng. Khi GPU, FPGA, SmartNIC tăng lên, cách mỗi thiết bị có bộ nhớ riêng và sao chép qua PCIe lãng phí độ trễ và điện năng. Thêm vào đó, ở cấp trung tâm dữ liệu còn chồng lên vấn đề cấp phát dư bộ nhớ cho từng máy chủ khiến trung bình hơn 40~50% bị lãng phí ở trạng thái nhàn rỗi (Stranded Memory). CXL ra đời như một tiêu chuẩn nhằm giải quyết đồng thời ba vấn đề này bằng cách tách bộ nhớ khỏi CPU (Disaggregation) và cấp phát, thu hồi động theo đúng nhu cầu.

2. Cấu trúc giao thức và các lớp

CXL ghép kênh phân chia thời gian ba giao thức con có mục đích khác nhau trên một liên kết vật lý duy nhất. Sự tách biệt này là thiết kế cốt lõi của CXL — vì vào/ra đơn thuần, truy cập cache và truy cập bộ nhớ có yêu cầu nhất quán và độ trễ khác nhau.

flowchart TB
  subgraph Host["Host CPU"]
    HA["Home Agent (quản lý nhất quán)"]
    RC["Root Complex"]
  end
  subgraph Link["CXL Link (dùng chung PCIe PHY)"]
    P1["CXL.io (phát hiện/cấu hình/DMA)"]
    P2["CXL.cache (thiết bị→cache bộ nhớ host)"]
    P3["CXL.mem (host→truy cập bộ nhớ thiết bị)"]
  end
  subgraph Dev["CXL Device"]
    ACC["Logic bộ tăng tốc"]
    MEM["Bộ nhớ gắn kèm (DRAM)"]
  end
  RC --- P1 --- ACC
  HA --- P2 --- ACC
  HA --- P3 --- MEM

CXL.io là giao thức gần như giống hệt PCIe, đảm nhiệm phát hiện và cấu hình thiết bị (Enumeration), ngắt, DMA, và bắt buộc với mọi thiết bị CXL. Nó đóng vai trò nền tảng để hai giao thức còn lại gắn lên. CXL.cache cho phép thiết bị cache bộ nhớ host một cách nhất quán. Chẳng hạn, khi bộ tăng tốc đọc một vùng cụ thể của bộ nhớ CPU vào cache của mình để tính toán, nếu CPU sửa vùng đó thì phần cứng tự động xử lý vô hiệu hóa và cập nhật. CXL.mem ngược lại cho phép host truy cập bộ nhớ gắn trên thiết bị bằng load/store như một phần không gian địa chỉ của chính mình. Mở rộng và gộp bộ nhớ được thực hiện chính trên giao thức này.

A. Loại thiết bị (Device Type)

Tùy tổ hợp giao thức, thiết bị được chia thành ba loại. Phân loại chính là vấn đề "thiết bị đó có cache hay không, có cung cấp bộ nhớ hay không".

Loại Giao thức sử dụng Thiết bị tiêu biểu Đặc điểm
Type 1 io + cache SmartNIC·bộ tăng tốc tính toán Không có bộ nhớ riêng, cache bộ nhớ host một cách nhất quán
Type 2 io + cache + mem Bộ tăng tốc GPU·FPGA Có cả cache và bộ nhớ, chia sẻ nhất quán hai chiều
Type 3 io + mem Bộ mở rộng bộ nhớ (Expander)·pool Không có cache, chỉ cung cấp bộ nhớ dung lượng lớn (nhân vật chính của mở rộng·gộp)

Type 3 là trung tâm của thương mại hóa CXL ngày nay. Vì chỉ cần cắm thẻ mở rộng gắn DIMM DDR5 vào khe PCIe là CPU nhận nó như một tầng bộ nhớ bổ sung, có thể tăng dung lượng vượt giới hạn khe vật lý của socket.

3. Gộp và tách rời bộ nhớ (Disaggregation)

Giá trị tối thượng của CXL vượt ra ngoài mở rộng đơn thuần, nằm ở gộp bộ nhớ (memory pooling). Đó là cấu trúc trong đó nhiều máy chủ (host) kết nối vào một pool bộ nhớ chung thông qua CXL switch, khi cần thì được cấp một dung lượng nhất định để dùng rồi trả lại.

flowchart LR
  H1["Máy chủ A"] --- SW["CXL Switch"]
  H2["Máy chủ B"] --- SW
  H3["Máy chủ C"] --- SW
  SW --- M1["Pool bộ nhớ #1"]
  SW --- M2["Pool bộ nhớ #2"]
  M1 -. Cấp phát/thu hồi động .- H1
  M2 -. Cấp phát/thu hồi động .- H2

Vấn đề mà cấu trúc này giải quyết là lãng phí bộ nhớ nhàn rỗi. Khi máy chủ A tạm thời cần bộ nhớ lớn thì mượn từ pool, xong việc thì trả lại để máy chủ B dùng. Không còn cần bố trí cố định bộ nhớ vật lý ở mức tối đa cho từng máy chủ, nên có thể giảm đáng kể lượng bộ nhớ mua sắm và điện năng của toàn trung tâm dữ liệu. Trong phân tích thực tế của các nhà cung cấp đám mây đã có báo cáo rằng bộ nhớ nhàn rỗi chiếm gần một nửa tổng số, và gộp bộ nhớ nhắm trực tiếp vào sự lãng phí này. Tuy nhiên, đi qua một tầng switch thì độ trễ tăng thêm hàng chục đến hàng trăm ns, nên bộ nhớ CXL được coi là tầng (Tier) bộ nhớ xa chậm hơn DRAM cục bộ, và phải kết hợp với quản lý bộ nhớ phân tầng (Tiered Memory, ví dụ: memory tiering của Linux) của hệ điều hành và hypervisor thì mới duy trì được hiệu năng.

4. Tiến hóa tiêu chuẩn và so sánh với các công nghệ tương tự

CXL đã tiến hóa nhanh chóng trong thời gian ngắn. Mỗi phiên bản duy trì tương thích ngược với thế hệ trước trong khi mở rộng phạm vi áp dụng.

Phiên bản PCIe nền tảng Tính năng bổ sung cốt lõi
CXL 1.1 PCIe 5.0 Mở rộng bộ nhớ cho một host, định nghĩa Type 1/2/3
CXL 2.0 PCIe 5.0 Chuyển mạch một tầng, gộp bộ nhớ, cắm nóng, toàn vẹn·mã hóa (IDE)
CXL 3.0 PCIe 6.0(64GT/s) Chuyển mạch nhiều tầng·fabric, chia sẻ bộ nhớ (nhất quán phần cứng), băng thông gấp 2
CXL 3.1 PCIe 6.0 Mở rộng fabric dựa trên PBR (Port Based Routing), TSP (bảo mật môi trường thực thi tin cậy), cải tiến bộ mở rộng bộ nhớ

Ở đây cần phân biệt "gộp (pooling)" của 2.0 với "chia sẻ (Sharing)" của 3.0. Gộp là tại một thời điểm một host chiếm giữ độc quyền một vùng cụ thể, còn chia sẻ là nhiều host truy cập cùng một vùng đồng thời trong khi phần cứng bảo đảm tính nhất quán, nên độ khó và mức độ hữu dụng khác nhau. Ngoài ra, TSP (Trusted-Execution-Environment Security Protocol) của 3.1 là cơ chế mã hóa và cô lập bộ nhớ trong môi trường điện toán bảo mật (Confidential Computing) để ngăn rủi ro dữ liệu của host khác còn sót lại và bị lộ trong bộ nhớ mượn từ pool, giải quyết trực diện điểm yếu bảo mật của gộp bộ nhớ.

Quan hệ với các công nghệ tương tự cũng quan trọng. PCIe là nền tảng tầng vật lý của CXL nhưng là liên kết I/O thuần túy không có tính nhất quán, còn NVLink (NVIDIA) và Infinity Fabric (AMD) là các liên kết tốc độ cao khép kín nối GPU, CPU của một nhà cung cấp cụ thể. CXL khác biệt ở chỗ là tiêu chuẩn công nghiệp mở, và chuẩn hóa ngữ nghĩa bộ nhớ lấy CPU làm trung tâm. Thực tế, tài sản của các chuẩn cạnh tranh ban đầu như Gen-Z, OpenCAPI, CCIX đã được hấp thụ và hợp nhất vào CXL Consortium, khiến CXL trở thành tiêu chuẩn duy nhất trên thực tế.

5. Các điểm cần cân nhắc và hàm ý

Từ góc độ Kỹ sư chuyên nghiệp (Professional Engineer), việc áp dụng CXL cần được phán đoán tổng hợp các điểm sau.

  • Đánh đổi hiệu năng - độ trễ: Bộ nhớ CXL có độ trễ lớn hơn DRAM cục bộ, nên phải tiếp cận bằng chiến lược phân tầng dữ liệu nóng/lạnh chứ không phải thay thế toàn diện. Cốt lõi là tối ưu bố trí: workload nhạy cảm độ trễ đặt ở cục bộ, workload thiên về dung lượng (DB in-memory lớn, engine gợi ý) đặt ở tầng CXL.
  • Hiệu quả giảm TCO và điện năng: Gộp bộ nhớ giảm bộ nhớ nhàn rỗi, từ đó hạ tổng chi phí sở hữu và điện năng, nhưng phải tính điểm hòa vốn so với chi phí phần cứng bổ sung như switch, bộ điều khiển mở rộng theo quy mô (số máy chủ, độ chênh lệch bộ nhớ). Đám mây càng lớn càng có lợi.
  • Bảo mật và cô lập: Pool được nhiều host dùng chung có rủi ro lộ dữ liệu còn sót lại và kênh kề (side channel), vì vậy cần áp dụng TSP của CXL 3.1 và IDE (mã hóa liên kết), đồng thời liên kết với điện toán bảo mật.
  • Mức độ trưởng thành của hệ sinh thái và triển vọng: Khi hỗ trợ CXL của CPU (Intel, AMD) và hỗ trợ của hệ điều hành (memory tiering trên Linux) được hoàn thiện, bộ mở rộng Type 3 được thương mại hóa trước, và trong tương lai dự kiến mở rộng sang trung tâm dữ liệu tách rời hoàn toàn dựa trên fabric (Composable/Disaggregated Infrastructure). Tuy nhiên, chuyển mạch nhiều tầng và chia sẻ bộ nhớ cần thời gian để trưởng thành trong sử dụng thực tế, nên khuyến nghị lộ trình áp dụng theo giai đoạn (mở rộng → gộp → chia sẻ).

Tài liệu tham khảo


Tóm tắt một câu: CXL là chuẩn kết nối liên thông mở đặt tính nhất quán cache và ngữ nghĩa bộ nhớ lên trên tầng vật lý PCIe, kết nối CPU, bộ tăng tốc và bộ nhớ với độ trễ thấp, đồng thời mở rộng, gộp và chia sẻ bộ nhớ để giải quyết bức tường bộ nhớ và lãng phí tài nguyên nhàn rỗi trong AI và trung tâm dữ liệu.