前言
智能网卡研究新进展简述:
随着后摩尔时代的到来和 Dennard 缩放规律的终结,CPU 处理能力增速趋缓。超大规模数据中心网络中的流量却呈现持续的指数增长态势。数据中心网络堆栈功能开始向硬件转移,旨在节省 CPU 时钟周期的新型智能网卡(SmartNICs)应运而生。
一、网卡智能化演进
传统网卡(NIC)支持较低链路速度,网络堆栈算法和协议在主机端 CPU 上运行。
第一代网卡智能的出现是为了解决网 卡如何更好利用多核 CPU 并行处理能力的问题。称之为多核 CPU 时代的网络智能。
第二代网卡智能的诞生背景是虚拟化技术的出现,网卡智能化表现在利用用户空间卸载本应属于虚拟机的功能,使得网卡具备了高速编程体系。
二、“三个时代”网卡智能化演变
- 多核 CPU 时代的网卡智能化
部分 TCP 功能开始卸载到网卡上执行。节省了 CPU 处理大消息的周期,因为不再进行数据包有效负载计算,同时这也提高了系统 DMA 吞吐量,减少了 CPU 的中断数量。
- 虚拟化时代的网卡智能化
实现软件网络堆栈功能,提供了极大的灵活性,数据包处理得以绕过硬件卸载。同时,快速开发和测试新功能成为可能。但网络堆栈软件化需要权衡 CPU 资源消耗和传输效率。消耗更多主机 CPU 周期才可以支持全 线路速率运行。
- HDCs 时代的智能网卡
促使网卡智能进一步发展,为硬件加速和提供高速网络性能创造了新机会。新型 I/O 加速器不断出现,服务器越来越需要智能网卡,以减轻网络数据包处理负担,减少过多计算,降低网络虚拟化开销,消除低效服务器架构带来的尾部延迟。
智能网卡采用的计算单元(下一步学习内容)
基于 ASIC 的智能网卡 ASIC 芯片
基于 FPGA 的智能网卡 现场可编程门阵列( Field-Programmable Gate Array,FPGAs)
基于 SoC 的智能网卡 片上系统(System-on-Chip, SoC)
三、智能网卡研究趋势
可编程性提升
人工智能增强
光学智能网卡
开源硬件