0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于FPGA的SmartNIC技术及其在数据中心的应用

卓侨汉 来源:莫大康 作者:莫大康 2022-08-02 08:03 次阅读

自上世纪80 年代中期首批 PC 机面市后不久,网络接口卡 (NIC) 就已经进入了市场。然而,在过去的几年里,我们看到了 SmartNIC 的兴起。什么是 SmartNIC?按照最基本的定义,SmartNIC 就是可编程NIC。很多厂商只是顺应 SmartNIC 这一概念在自身实现中堆砌冗繁的芯片与固件。一个比较准确的定义是SmartNIC 是包含客户可用的额外计算资源和使用这些资源所需的开源工具的NIC。这些额外的计算资源用来处理进出服务器时的网络流量,以及在应用层面卸载主机CPU

计算单元

SmartNIC在同一张卡上融合有线网络和计算资源。这些计算资源的构成可包含下列一种或数种类型的资源:传统x86 CPU,如 Arm 核;数字信号处理器DSP) 专用核;人工智能AI);网络处理单元 (NPU);或现场可编程门阵列 (FPGA)。一个SmartNIC 上含有多个上述计算单元的情况并不罕见。

服务器与NIC 连接

每个服务器使用NIC 连接到网络。有时也使用通常用来支持摄像头和恒温器等物联网IoT) 设备的嵌入式无线连接,但大多数服务器还是以有线方式连接到网络。采用有线联网的原因较多,不过两个最重要的原因是性能和可用性。

广告

在可用性方面,有线网络只有在电缆受损或拆除的情况下才中断。至于网络性能方面,我们重点关注两个指标:一个是带宽,可通过网络传输的数据量;另一个是时延,即传输数据所用的时间。

提升算力

虽然今天的数据中心联网采用的是25 GbE,并且正在迅速升级到 50 GbE 和 100 GbE,但仍需要认真地考虑为 SmartNIC 添加额外的计算资源。对于传统的 CPU 核(比如 Arm 的 CPU 核),最高效的使用方式是将它们预留给控制平面管理。例如,一个双核或四核Arm 核组常被用于控制平面管理任务,如将软件卸载到其他计算单元和记录日志。

今天的数据中心NIC 每秒要处理数百万乃至超过一亿个网络数据包。即便主频在3GHz 的 Arm 核,也不能胜任每秒检查和处理数百万个数据包的工作,更别说数千万个数据包了。每秒的指令数根本不够应付这样大数量的数据包。处理这样大数量的数据包,需要使用专用计算资源,如专用网络处理器、FPGA或 GPU 核。

FPGA 的并行处理和可编程逻辑特性,常常使其成为这种任务的最佳选择。FPGA 可以通过重配置快速解析网络数据包报头,甚至是数据包本体。然后采取必要的处理,如丢弃数据表、包装数据包或以线速率修改数据包内容。赛灵思 Alveo SN1000 SmartNIC 就是包含一个 Arm 核组和一个网络处理器的基于 FPGA 的 SmartNIC 的典型示例。

卸载

CPU卸载是 SmartNIC的一个关键用途。区块链散列和视频转码等计算密集型任务交由SmartNIC 单独处理即可,从而释放了宝贵的服务器 CPU 资源。

区块链依赖的是求解工作量证明。网络上完成求解的第一个节点会得到奖励,并允许在链上捆绑并发布下一个区块。SmartNIC能在计算下一个解时,将区块链和待完成事项保存在存储器中。如果求解成功,SmartNIC就公布这个区块并开始处理下一个区块。

视频转码是另一种非常适合SmartNIC 从主机 CPU卸载的任务。使用自适应比特率 (ABR) 压缩支持移动设备的视频转码,是另一种 CPU 密集型任务(特别是对于实时视频应用而言)。这些压缩任务极度线性,在移植到基于 FPGA 的加速器上后,被证明效率较通用 CPU 提高 10 倍到 20 倍。

此外,SmartNIC 还内置基本的 Netfilter 防火墙,从主机 CPU 卸载过滤出入站数据包的任务。Netfilter 是一种新版本的 IP 信息包过滤系统,为过滤网络流量提供了非常可靠的架构。将这个防火墙卸载到 SmartNIC,每秒可为主机 CPU节省数百万条指令,以支持于在服务器上运行的其它应用。

我们也提供数据包封装,也就是封包功能。一旦我们对虚拟化或容器化系统使用叠加网络,我们就需要封装网络数据表,让它们在这些叠加网络间正确路由。叠加网络处理的例子如 Open vSwitch (OvS)。它有非常高的 CPU 占用率,因此将这个任务卸载到 SmartNIC 可释放大量主机 CPU 周期。

最后,我们还可以卸载通常运行在 DNS 等服务器上或内存数据库上的主要网络应用。完全在 SmartNIC 内处理 DNS 查询是一种典型的 SmartNIC 应用,因为事务较小而且查找表处理速度较快。

采用 SmartNIC 进行存储控制

SmartNIC 也能兼用作存储控制器。像赛灵思 Alveo U25 这样的一些 SmartNIC,自己的本地存储拥有千兆字节片上和板载存储器(比如 U25 有 6GB)。这种存储可兼用作服务器自己的 NVMe 磁盘的缓存。这种做法很有意义,因为 Compute Express Link (CXL) 等协议能让未来的 SmartNIC 直接管理与 NVMe 驱动器的关系。

赛灵思Alveo U25 智能网卡

此外,SmartNIC 也能在硬件中进行抹除编码,还可以为存储加密。对于驱动器加密,SmartNIC 提供了一种独特的安全机制。如果使用 SmartMIC 为存放到NVMe存储的数据进行加密或解密,要破解这种加密,就需要同时拥有这两个设备。如果管理员拆下 NVMe 驱动器到其他地方去解密,他们只能使用暴力破解法,猜测被留在 SmartNIC 上的缺失的加密密钥。

SmartNIC 可以方便地采用密码术保障上电周期间密钥的安全性,进一步提高系统的可靠性和安全性。例如,被赛灵思收购的Solarflare在 NIC 上保持着一个硬件安全隔离区,过去几年一直在其 X2 芯片上存储 NIC 密钥。未来的 SmartNIC 安全隔离区将有望为 SSL/TLS 端点加密保存数十万个安全密钥并保障它们的安全。

电子交易

最后,SmartNIC 还在另外一个领域里大有前途。那就是超低时延电子交易。我们在上文里谈论过在几百亿分之一秒内传输网络数据包。今天,高性能25-GbE NIC的时延在1,000ns左右。采用正确架构的系统、正确的软件和调试到位的 SmartNIC,能在收到网络数据包的同时完成分析,一次四个字节。响应数据包则能以令人惊奇的 22ns 内注入到网络中。这比传统的高性能 NIC 速度提高了 40 多倍。当用于电子交易时,这些 SmartNIC 的投资回报 (ROI) 有时可以不到一秒就能测得。

市场采用日益攀升

随着云服务提供商不断扩大容量,他们也在增加 SmartNIC 的部署,以将宝贵的 CPU 核心释放给业务应用,优化服务器利用率。今天的服务器往往把 30% 的 CPU 周期用在管理网络上。即相当于每三部生产服务器中就有一部用于组网。SmartNIC 支持系统架构师将高性能计算资源部署在服务器的边缘,也就是网络上。然后 SmartNIC就能用于保护服务器,进而保护企业,同时有力地从成本高昂得多的服务器 CPU 上卸载任务。

审核编辑:郭婷

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • dsp
    dsp
    +关注

    关注

    544

    文章

    7681

    浏览量

    344332
  • FPGA
    +关注

    关注

    1602

    文章

    21309

    浏览量

    593127
  • 数据中心
    +关注

    关注

    15

    文章

    4184

    浏览量

    69959
收藏 人收藏

    评论

    相关推荐

    #mpo极性 #数据中心mpo

    数据中心MPO
    jf_51241005
    发布于 :2024年04月07日 10:05:13

    多业务光端机在数据中心的应用:提升网络效率的关键

    随着云计算、大数据技术的迅猛发展,数据中心已成为现代社会不可或缺的基础设施。数据中心内部网络的高效、稳定运行对于整个数据中心的性能至关重要
    的头像 发表于 02-23 14:09 230次阅读

    #永久链路 #信道测试 #数据中心

    数据中心
    jf_51241005
    发布于 :2024年02月23日 10:17:58

    集中电源控制器在数据中心的应用

    集中电源控制器在数据中心的应用非常广泛。数据中心通常需要大量的电源来支持服务器、网络设备和存储设备等关键基础设施的运行。集中电源控制器可以提供稳定、可靠的电源供应,确保数据中心的正常运行。
    的头像 发表于 01-30 15:24 130次阅读
    集中电源控制器<b class='flag-5'>在数据中心</b>的应用

    #光缆水峰 #综合布线光缆 #数据中心

    数据中心光缆
    jf_51241005
    发布于 :2024年01月15日 09:43:26

    #预端接光缆 #24芯光缆 #数据中心

    数据中心光缆
    jf_51241005
    发布于 :2023年12月08日 11:01:21

    数据中心为什么要部署FPGA

    点击上方 蓝字 关注我们 FPGA 芯片具有灵活性高、应用开发成本低、上市时间短等优势使其应用场景覆盖了包括工业控制、网络通信、消费电子、数据中心、汽车电子、人工智能等广泛的下游市场。 各大应用领域
    的头像 发表于 11-21 11:50 403次阅读

    数据中心为什么要部署FPGA

    FPGA 芯片在数据中心领域主要用于硬件加速,在云服务器厂商中已有广泛部署。数据中心使用 FPGA 芯片代替传统的 CPU 方案后,处理其自定义算法时可实现显著的加速效果。因此近年来,
    发表于 11-16 09:55 447次阅读
    <b class='flag-5'>数据中心</b>为什么要部署<b class='flag-5'>FPGA</b>?

    千兆光模块和万兆光模块在数据中心中的应用

    千兆光模块和万兆光模块在数据中心中的应用是网络优化的关键因素之一。本文将详细介绍千兆光模块和万兆光模块的特性、优劣势以及在数据中心中的应用场合,以期为您提供更全面的光模块选购指南。
    的头像 发表于 11-06 14:55 251次阅读

    存储网络在数据中心现代化中的作用

    电子发烧友网站提供《存储网络在数据中心现代化中的作用.pdf》资料免费下载
    发表于 09-01 14:43 0次下载
    存储网络<b class='flag-5'>在数据中心</b>现代化中的作用

    在数据中心构建I/O结构超级高速公路

    电子发烧友网站提供《在数据中心构建I/O结构超级高速公路.pdf》资料免费下载
    发表于 08-30 11:11 0次下载
    <b class='flag-5'>在数据中心</b>构建I/O结构超级高速公路

    数字孪生在数据中心的应用场景

    数字孪生技术如何应用到数据中心的运营发展,又在数据中心的设计与发展阶段起到怎样的作用呢?本文将在数据中心的设计阶段与运维阶段应用数字孪生技术
    的头像 发表于 08-28 15:03 882次阅读
    数字孪生<b class='flag-5'>在数据中心</b>的应用场景

    如何使用FPGA来设计智能网卡(SmartNIC)?

    智能服务器适配器或智能网卡(SmartNIC)通过从服务器的CPU上卸载网络处理工作负载和任务,提高云端和私有数据中心中的服务器性能。
    发表于 07-27 09:11 931次阅读
    如何使用<b class='flag-5'>FPGA</b>来设计智能网卡(<b class='flag-5'>SmartNIC</b>)?

    现代数据中心SmartNIC/DPU的演变过程

    随着传统IDC向云数据中心转型,数据中心网络架构开始不断演进,三层架构正过渡到Spine - Leaf架构。
    的头像 发表于 07-19 16:11 552次阅读
    现代<b class='flag-5'>数据中心</b><b class='flag-5'>SmartNIC</b>/DPU的演变过程

    GRANDMICRO有容微在数据中心方案应用

    GRANDMICRO有容微在数据中心方案应用
    的头像 发表于 05-30 14:11 433次阅读