L1 & Acceleration¶
L1 (lớp vật lý, PHY) của DU là phần tốn tính toán nhất của RAN và bị ràng buộc bởi deadline theo slot. Trang này tóm tắt chuỗi xử lý PHY, những khâu nặng nhất và các hướng tăng tốc (CPU, lookaside, inline, GPU, FPGA/ASIC). Bài viết cập nhật về hướng phần cứng RAN nằm ở RAN Silicon Rethink.
Chuỗi xử lý PHY¶
Ở split 7.2x, DU thực hiện High-PHY, RU thực hiện Low-PHY, xem RAN Architecture & Splits. Các bước ở downlink của kênh dữ liệu (PDSCH):
Transport block
→ CRC attach → code block segmentation
→ LDPC encode → rate matching
→ scrambling → modulation (QPSK ... 256QAM)
→ layer mapping → precoding → RE mapping
→ (fronthaul) → iFFT + CP → RF
Uplink đi ngược lại và nặng hơn vì phía thu phải ước lượng và khử méo của kênh:
RF → FFT, bỏ CP → (fronthaul)
→ channel estimation → equalization / MIMO detection
→ demodulation (LLR) → descrambling → rate dematching
→ LDPC decode → CRC check → HARQ
Mã hóa kênh trong NR: LDPC cho kênh dữ liệu, Polar cho kênh điều khiển (PBCH, PDCCH, PUCCH, ...).
Những khâu nặng nhất¶
| Khâu | Vì sao nặng |
|---|---|
| Giải mã LDPC (uplink) | Thuật toán lặp, tính toán dày đặc, xử lý song song theo code block |
| Ước lượng kênh, cân bằng, MIMO detection | Phép toán ma trận trên mỗi sub-carrier, tăng nhanh theo số layer và anten |
| FFT/iFFT | Chạy mỗi symbol và mỗi anten (ở RU hoặc DU tùy split) |
| Beamforming / precoding | Nhân ma trận số phức theo từng layer |
Trong đó LDPC decode và MIMO là hai phần thường được chuyển sang accelerator đầu tiên.
Deadline¶
Ở subcarrier spacing 30 kHz, một slot kéo dài 0,5 ms. Trong khoảng đó PHY phải xử lý xong, MAC phải đưa ra quyết định lập lịch cho slot kế tiếp, và gói fronthaul phải rời DU đúng cửa sổ, xem Open Fronthaul. Hậu quả:
- Cần độ trễ ổn định hơn là thông lượng cao nhất: tail latency (đỉnh trễ) quyết định.
- Xử lý theo pipeline giữa các symbol và slot, nhiều thread chạy song song, được pin vào core cô lập.
- Hệ điều hành và ảo hóa phải được tinh chỉnh real-time, xem Real-time KVM tuning.
Các mô hình tăng tốc¶
| Mô hình | Cách làm | Ví dụ điển hình |
|---|---|---|
| CPU thuần | Toàn bộ L1 chạy trên CPU, dùng tập lệnh vector (AVX-512 trên x86) | Phần mềm tham chiếu như Intel FlexRAN |
| Lookaside accelerator | CPU đẩy tác vụ (ví dụ LDPC) xuống accelerator rồi nhận kết quả về. Dữ liệu đi qua bộ nhớ CPU | Card FEC trên PCIe, accelerator tích hợp trong CPU |
| Inline accelerator | Dữ liệu đi qua accelerator ngay trên đường vào ra (fronthaul tới CPU), accelerator làm cả phần xử lý L1 | Card inline trên PCIe, DPU/SmartNIC có khối PHY |
| GPU | L1 chạy trên GPU, thường kèm NIC kết nối trực tiếp với GPU | Các nền tảng AI-RAN dựa trên GPU |
| FPGA / ASIC chuyên dụng | Tự thiết kế hoặc SoC viễn thông chuyên biệt | SoC của các hãng thiết bị, RFSoC, FPGA trong RU |
Lookaside đơn giản về kiến trúc phần mềm vì L1 vẫn nằm trên CPU, nhưng mỗi tác vụ phải đi và về qua bus (PCIe), và độ trễ cộng thêm chiếm một phần ngân sách slot. Inline giảm bớt việc chép dữ liệu qua lại và giảm tải CPU nhiều hơn, đổi lại gắn chặt hơn vào nhà cung cấp accelerator.
Chọn mô hình nào phụ thuộc vào công suất, chi phí, mức độ linh hoạt phần mềm và hướng 6G. Các cân nhắc này, đặc biệt giữa GPU và ASIC cho AI-RAN, được bàn trong RAN Silicon Rethink.
DPDK BBDev¶
Để chuẩn hóa cách phần mềm gọi accelerator FEC, DPDK có thư viện BBDev (baseband device). Ứng dụng nạp các operation (mã hóa/giải mã LDPC, Turbo, ...) vào queue của thiết bị qua API rte_bbdev, sau đó lấy kết quả:
rte_bbdev_enqueue_ldpc_dec_ops(dev_id, queue_id, ops, n)
rte_bbdev_dequeue_ldpc_dec_ops(dev_id, queue_id, ops, n)
Mô hình này giống poll mode driver của DPDK nói chung: không ngắt, ứng dụng tự poll. Nhà sản xuất accelerator viết PMD (poll mode driver) cho BBDev, nên phần mềm L1 giữ nguyên khi đổi thiết bị khác cùng loại. Xem DPDK cho nền tảng chung. Thiết bị FEC cần được gán vào DU qua VFIO hoặc SR-IOV, xem I/O Virtualization.
Giao diện L1-L2: FAPI¶
Ranh giới giữa MAC (L2) và PHY (L1) là option 6 của 3GPP. 5G FAPI do Small Cell Forum chuẩn hóa, định nghĩa các message giữa hai lớp theo từng slot (ví dụ yêu cầu truyền DL, nhận kết quả UL). Nhờ vậy có thể ghép L2 của hãng này với L1 của hãng khác, hoặc thay L1 CPU bằng L1 chạy trên accelerator mà giữ nguyên L2.
Điểm cần chú ý¶
- Đo từ đầu: profile từng khâu (CPU cycle, thời gian trên accelerator, thời gian chờ) trước khi quyết định offload, vì phần chuyển dữ liệu có thể làm mất lợi ích.
- Tail latency: kiểm tra phân phối thời gian xử lý (p99, p99.9), không chỉ giá trị trung bình.
- NUMA và PCIe: accelerator, NIC fronthaul và core xử lý nên cùng một NUMA node.
- Firmware accelerator cũng là bề mặt tấn công và là phần cần cập nhật, xem Embedded Security.