0

0

打破封闭,打造开源 SmartNIC——深度解析 Xilinx Open-NIC 平台

看不見的法師

看不見的法師

发布时间:2025-10-22 16:10:01

|

483人浏览过

|

来源于php中文网

原创

面对数据中心网络性能的挑战,xilinx 推出了 open-nic 项目,提供一个基于 fpga 的开源 nic 平台,助力开发者与研究人员高效实现网络功能硬件加速与原型验证。本文将深入剖析 open-nic 的系统架构、核心模块及其典型应用。

什么是 Open-NIC?

Open-NIC 是由 AMD-Xilinx 发起的一项开源网络接口卡(NIC)计划,专为 FPGA 开发者和网络研究者设计,旨在构建一个易于接入、可扩展的硬件网络实验平台。该平台支持用户自定义逻辑的灵活集成,显著加快网络应用的开发与测试进程。

打破封闭,打造开源 SmartNIC——深度解析 Xilinx Open-NIC 平台三大核心组件概览

Open-NIC 架构由以下三个关键部分构成:

Open-NIC Shell(硬件基础层)

提供基于 RTL 的硬件设计,兼容多款 Alveo UltraScale+ 系列 FPGA 加速卡(如 U50、U55C、U280 等)

支持 4 个 PCIe PF(物理功能)及双 100GbE 网络接口,配备标准 QDMA 和 CMAC 模块,并预留用户逻辑插槽,便于功能扩展与定制

Open-NIC Driver(Linux 内核驱动)

提供完整的 Linux 驱动程序,支持多 PF 配置与多队列 TX/RX 数据流,兼容 Ubuntu 18.04、20.04 及 22.04 系统

具备基本网络设备控制能力,可用于环回测试、ethtool 参数查询等常见调试操作

Open-NIC DPDK 驱动支持

包含适配 DPDK 框架的补丁文件与编译指南,帮助开发者将 Open-NIC 设备无缝接入高性能数据平面开发环境,适用于主流 Linux 发行版

项目优势与技术意义

开放源码,广泛兼容: 采用 Apache-2.0 或 GPL-2.0 许可协议,确保自由使用与二次开发

清晰的硬件加速路径: Shell 架构明确划分 QDMA、CMAC 与用户逻辑区域,结构模块化,利于快速集成自定义处理单元

Evoker
Evoker

一站式AI创作平台

下载

活跃社区支持,持续演进: GitHub issues 显示社区积极贡献,讨论涵盖 SR-IOV 实现、链路接收问题、MAC 配置优化以及对 U 系列 FPGA 的兼容性改进

打破封闭,打造开源 SmartNIC——深度解析 Xilinx Open-NIC 平台典型应用场景与开发流程

推荐入门步骤(以 Alveo U55C 卡为例):

首先克隆三大核心仓库:open-nic-shell、open-nic-driver、open-nic-dpdk;

打破封闭,打造开源 SmartNIC——深度解析 Xilinx Open-NIC 平台使用 Vivado 2022.2(当前 OpenNIC 官方支持的最新版本),执行如下命令生成硬件 shell:

vivado -mode gui -source build.tcl -tclargs -board au55c -synth_ip 0

该脚本将生成包含两个 user boxes 的 shell 设计,其中第一个 user box 工作在 250MHz,第二个运行于 322MHz。由于 Alveo 卡片上的 CMAC 与 PCIe 控制器为硬核 IP,因此整体 shell 资源开销极低。

打破封闭,打造开源 SmartNIC——深度解析 Xilinx Open-NIC 平台设计生成后可在 Vivado 中查看结构,在源码视图中可清晰识别出新增的两个 user boxes 及用于连接基础模块的辅助逻辑。

打破封闭,打造开源 SmartNIC——深度解析 Xilinx Open-NIC 平台典型应用方向:

  • 网络协议硬件加速:实现定制化的报文过滤、流分类、转发引擎等
  • 数据中心性能测试平台:用于高吞吐、低延迟场景下的系统验证
  • 教学与科研平台:支撑 FPGA 编程、网络架构、SmartNIC 技术的教学与创新研究

总结

Xilinx Open-NIC 项目通过“硬件 shell + 内核驱动 + DPDK 支持”三位一体的设计,构建了一个开放、灵活且高性能的 SmartNIC 开发框架。它不仅降低了 FPGA 网络加速的技术门槛,也为学术界与工业界探索下一代智能网卡提供了强有力的支撑。

相关专题

更多
硬盘接口类型介绍
硬盘接口类型介绍

硬盘接口类型有IDE、SATA、SCSI、Fibre Channel、USB、eSATA、mSATA、PCIe等等。详细介绍:1、IDE接口是一种并行接口,主要用于连接硬盘和光驱等设备,它主要有两种类型:ATA和ATAPI,IDE接口已经逐渐被SATA接口;2、SATA接口是一种串行接口,相较于IDE接口,它具有更高的传输速度、更低的功耗和更小的体积;3、SCSI接口等等。

1022

2023.10.19

PHP接口编写教程
PHP接口编写教程

本专题整合了PHP接口编写教程,阅读专题下面的文章了解更多详细内容。

64

2025.10.17

php8.4实现接口限流的教程
php8.4实现接口限流的教程

PHP8.4本身不内置限流功能,需借助Redis(令牌桶)或Swoole(漏桶)实现;文件锁因I/O瓶颈、无跨机共享、秒级精度等缺陷不适用高并发场景。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

415

2025.12.29

apache是什么意思
apache是什么意思

Apache是Apache HTTP Server的简称,是一个开源的Web服务器软件。是目前全球使用最广泛的Web服务器软件之一,由Apache软件基金会开发和维护,Apache具有稳定、安全和高性能的特点,得益于其成熟的开发和广泛的应用实践,被广泛用于托管网站、搭建Web应用程序、构建Web服务和代理等场景。本专题为大家提供了Apache相关的各种文章、以及下载和课程,希望对各位有所帮助。

406

2023.08.23

apache启动失败
apache启动失败

Apache启动失败可能有多种原因。需要检查日志文件、检查配置文件等等。想了解更多apache启动的相关内容,可以阅读本专题下面的文章。

930

2024.01.16

磁盘配额是什么
磁盘配额是什么

磁盘配额是计算机中指定磁盘的储存限制,就是管理员可以为用户所能使用的磁盘空间进行配额限制,每一用户只能使用最大配额范围内的磁盘空间。php中文网为大家提供各种磁盘配额相关的内容,教程,供大家免费下载安装。

1348

2023.06.21

如何安装LINUX
如何安装LINUX

本站专题提供如何安装LINUX的相关教程文章,还有相关的下载、课程,大家可以免费体验。

701

2023.06.29

linux find
linux find

find是linux命令,它将档案系统内符合 expression 的档案列出来。可以指要档案的名称、类别、时间、大小、权限等不同资讯的组合,只有完全相符的才会被列出来。find根据下列规则判断 path 和 expression,在命令列上第一个 - ( ) , ! 之前的部分为 path,之后的是 expression。还有指DOS 命令 find,Excel 函数 find等。本站专题提供linux find相关教程文章,还有相关

294

2023.06.30

高德地图升级方法汇总
高德地图升级方法汇总

本专题整合了高德地图升级相关教程,阅读专题下面的文章了解更多详细内容。

27

2026.01.16

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
淘宝开放平台开发文档
淘宝开放平台开发文档

共92课时 | 62.6万人学习

PostgreSQL 教程
PostgreSQL 教程

共48课时 | 7.3万人学习

Git 教程
Git 教程

共21课时 | 2.7万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号