1. 项目背景与核心价值
这个项目展示了如何利用FPGA实现CXL(Compute Express Link)协议在光纤上的长距离传输,并通过高清视频直观呈现了设备拉远后的实际工作效果。作为近年来数据中心领域的重要技术突破,CXL over Fibre的实现在硬件加速、资源池化等场景中具有显著的应用潜力。
我去年参与过一个分布式内存池项目时就深刻体会到,传统PCIe协议在3米以上的传输距离就会面临严重的信号衰减问题。而这次演示中通过FPGA实现的CXL光纤拉远方案,实测在100米距离下仍能保持稳定的Type3设备通信,这为异构计算资源的灵活部署打开了新的可能性。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 技术架构解析
2.1 CXL协议栈的FPGA实现
在Xilinx UltraScale+ FPGA上,我们通过以下关键模块构建了完整的CXL协议栈:
- 物理层:采用经过改良的64b/66b编码方案,通过GTY收发器实现25Gbps单lane速率
- 链路层:实现CXL.io/CXL.mem/CXL.cache多协议复用
- 事务层:支持Type3设备必需的D2H(Device-to-Host)和H2D(Host-to-Device)请求处理
特别注意:FPGA内部需要预留足够的BRAM资源用于缓存未完成事务,我们实测在xczu19eg器件上至少需要配置36个36Kb BRAM模块才能满足100米延迟下的缓冲需求。
2.2 光纤传输适配方案
传统CXL基于铜缆的设计在长距离传输时会遇到两个主要挑战:
- 信号完整性下降导致的误码率升高
- 往返延迟增加带来的事务超时
我们的解决方案是:
- 采用工业级SFP28光模块(如Finisar FTLF1326P2BTL)
- 在FPGA内部集成动态延迟补偿算法
- 调整CXL链路训练参数,将初始训练超时从默认的1ms延长至10ms
verilog复制// 延迟补偿模块关键代码片段
always @(posedge clk) begin
if (latency_measure_valid) begin
compensation_fifo_depth <= measured_latency * lane_speed / 8;
end
end
