时间:2024-05-22
解文军,李仁刚,韩大峰,张晶威,刘铁军
(浪潮(北京)电子信息产业有限公司 体系结构研究部,北京 100085)
Smart NIC即智能网卡,其核心是通过FPGA(现场可编程门阵列)协助CPU处理网络负载,将网络虚拟化、负载均衡和其他低级功能从服务器CPU中移除,确保为应用提供最大的处理能力。与此同时,智能网卡还能够提供分布式计算资源,使得用户可以开发自己的软件或提供接入服务,从而加速特定应用程序。
从系统结构上看,智能网卡通常以PCIE(Peripheral Component Interconnect Express) 接口插卡的形式与服务器配合使用,PCIE是主要的业务数据传输通道。而服务器对智能网卡的管理,则是通过网络控制器边带接口(Network Controller Sideband Interface,NCSI)[1]来实现。
以往的服务器都是没有为某种特殊服务专门设计的、可以提供各种服务功能的服务器,即通常所说的通用服务器。最近几年,随着云计算、大数据、人工智能等新兴技术发展,对服务器的需求越来越大,不同业务对服务器要求各不相同,如以存储业务为主的公司需要存储型服务器,对数据的安全要求也很高,有冗余备份、灾难恢复等功能。在人工智能计算领域,大量的数据会从网络输入,利用智能网卡直接对数据进行必要的处理,可以很大程度减轻CPU的负荷。在大数据及边缘计算领域,海量的数据会从网络输入,利用智能网卡直接对数据进行必要的处理,可以很大程度减轻CPU的负荷。
无论是通用服务器还是定制服务器,设计时会留出多个不同位置的PCIE插槽,以匹配客户的差异化需求。而对于PCIE形态的智能网卡来说,插在不同槽位意味着与主机端通信时不同的NCSI线缆长度。况且服务器设计者往往也对智能网卡上的走线情况一无所知,不同厂家的智能网卡走线也会差异很大。同样当智能网卡搭配不同服务器时,不同服务器厂商的NCSI链路参数会有很大不同。双方都无法考虑如何设计整个NCSI接口电路才能保证在不同环境下接口功能的可靠运行。
本文立足整个NCSI接口总体架构,从系统整体、服务器主板端、线缆与连接器、智能网卡端四个部分讨论了如何设计一个可靠的NCSI接口链路,该设计方案已经应用于多款服务器与智能网卡产品,所有产品均顺利通过了NCSI接口功能测试、数据传输压力测试、信号完整性测试与电磁兼容测试等多项严格产品测试要求。
互联网技术的飞速发展使得工程师们对于服务器的带外可管理性及可控制性提出了更高的要求。通过带外管理,工程师可以在任意地点通过网络连接到相应的服务器上,进行一系列的管理与维护,而不再需要长时间驻守在嘈杂的机房或实验室环境中。NCSI(Network Controller Sideband Interface)就是一个由分布式管理任务组(Distributed Management Task Force,DMTF)定义的用于支持服务器带外管理的边带接口网络控制器的工业标准。
NCSI接口的物理拓扑如图1所示。
图1 NCSI接口物理拓扑图
图1中,TXD[0:1]为管理控制器MC的两路发送数据线,TX_EN为发送使能信号线,RXD[0:1]为MC两路接收数据线,CRS_DV为载波侦听及接收数据有效信号,REF_CLK为参考时钟信号,频率为50 MHz,信号传输方向如图中箭头所示。在本文服务器环境中,管理控制器MC是位于服务器主板上的基板管理控制器芯片BMC,而网络控制器NC是位于智能网卡上的网络芯片,走线包括印制电路板(PCB)和线缆,走线阻抗[2-3]控制为50 Ω。
系统总体设计主要有两方面内容,第一是时钟模式的选择;第二是总体时序设计。
服务器主板上NCSI接口集成在BMC芯片中,该接口有两种时钟模式:内部时钟模式和外部时钟模式,如图2和图3所示。内部时钟模式的50 MHz的时钟信号来自于BMC芯片,根据BMC芯片数据手册[4-5],该模式下TXD等数据信号可以支持的最长走线长度为10英寸。外部时钟模式的50 MHz时钟信号来自外部晶振,并需要时钟缓冲(Buffer)芯片,该模式优点是可以支持TXD信号走线总长度达20英寸。由于仅服务器主板上走线一般在10英寸以上,因此需要采用外部时钟模式。但两种模式下RXD信号的走线长度都取决于NCSI芯片。
图2 内部时钟模式
图3 外部时钟模式
NCSI链路采用外部时钟模式是一种基于共同时钟的数据传输拓扑,服务器主板的BMC数据接收端和NCSI PHY数据接收端,均需要满足数据传输的建立及保持时间要求[6]。
数据通路单向传输的拓扑如图4所示。图5为共同时钟的建立及保持时序关系图。在时序关系图中:时间间隔1表示时钟buffer输出的时钟偏斜Tskew,此参数作为系统时序关系作为最差时序关系处理;时间间隔2表示时钟buffer至驱动端的飞行时间,即Tclk_driver_flight;时间间隔3表示时钟buffer至接收端的飞行时间,即Tclk_receiver_flight;时间间隔4表示驱动端芯片被时钟触发后,数据传输至IO总线的时间,即Tdata_out;时间间隔5表示传输方向数据的飞行时间,即Tdata_flight。Tsu是接收端芯片所需的数据建立时间;Thd是接收端芯片所需的数据保持时间;Tsu_margin是数据满足建立时间要求后的裕量;Thd_margin是数据满足保持时间要求后的裕量;Tcycle是NCSI协议的时钟周期。
图4 数据单向传输拓扑图
对系统的建立时间要求,是在数据发出后的第二个时钟的上升沿,接收端满足建立时间,故其建立时间约束,需满足式(1):
对系统的保持时间而言,是在接收端的下一拍采样时钟时延小于数据的整个时延,否则造成本拍保持数据与下一拍到来数据冲突。即满足式(2):
图5 建立及保持时序关系图
对系统而言,需要考虑系统时序关系最劣化情况的参数约束,式(1)与式(2)中包含系统电路板级参数(PCB走线和连接线缆)这部分参数相对稳定。
而芯片参数需要在计算建立时间时代入芯片的最大值,计算保持时间时代入芯片的最小值[7],进行系统最差情况的分析。
系统确定采用外部时钟模式时,要注意两点:
第一要注意外部时钟及缓冲电路在主板上摆放位置,要满足时钟信号到BMC和NCSI芯片的偏移(skew)尽量小,满足小于NCSI协议要求的1.5 ns。因此需要总体考虑线缆长度和智能网卡上的走线长度。
第二是时钟缓冲芯片输出阻抗一般较低,需要增加一个串联匹配电阻,以实现和走线的50 Ω 特征阻抗匹配,而且尽量靠近时钟缓冲芯片摆放,否则会由于信号反射造成最高电压超过要求。图6为串联匹配电阻摆放在不同位置时使用芯片IBIS[8]模型对时钟信号波形仿真结果图,其中有两个尖峰的波形为匹配电阻远离时钟缓冲芯片波形,没有尖峰的波形为串联匹配电阻靠近时钟缓冲芯片的波形。
图6 时钟串联匹配电阻在不同位置时时钟波形仿真图
此外,对于TXD和TX_EN信号,为了减小信号的震荡,需要在靠近BMC芯片端增加33 Ω 左右的串联电阻。同时为了保证建立和保持时间等时序要求,要保证TXD0、TXD1和TX_EN三个信号走线尽量等长,长度差最好小于0.2英寸,RXD0、RXD1、CRS_DV三个信号走线尽量等长,长度差最好小于0.2英寸。
为了保证整个NCSI接口走线一致性,线缆需要满足特征阻抗50 Ω 的要求,一般需要采用同轴线或者类似同轴线的阻抗控制线。
图7为业界广泛使用的一种可控阻抗线缆的截面图,这是一种类似同轴线的结构,阻抗控制50 Ω,内导体Conductor连到连接器的相应信号管脚,外导体Wrap及Drain连接到地管脚,导体和Drain均为镀锡铜线,外包裹Wrap材料均为两层麦拉,内层为含铝麦拉,起接地和屏蔽功能,外层为普通麦拉,起绝缘和保护作用。组装的主要工艺步骤包括剪线,焊接连接器,焊接完成使用万用表测试连通性,最后包一层绝缘保护膜等。
图7 线缆的截面图
连接器设计的关注点主要在信号与地管脚的分配,由于连接器往往是一个阻抗不连续点,容易造成信号间的干扰和电磁辐射[9],因此最好做到信号管脚和地管脚比例为1:1,而且信号与地管脚交替分布,在与线缆进行组装时,线缆内导体接信号管脚,Drain线及导电Wrap层接相邻的地管脚,避免两个线缆的Drain及导电Wrap连到同一个地管脚。
图8是典型智能网卡的原理框图,主芯片包括FPGA芯片、网络控制器NC芯片及10颗16 bit的DDR4[10]存储芯片,FPGA与NC芯片之间通过16路传输速率为8 Gb/s的PCIE 3.0[11]接口互联。FPGA连接两路72位,传输速率为2 400 Mb/s共16 GB的DDR4存储器颗粒,并通过16路速率8 Gb/s的PCIE 3.0高速接口连接到金手指(Gold Finger)[12],再插到服务器上。网络控制器芯片NC通过两个各由4路25 Gb/s[13]组成的100 Gb/s链路到QSFP28[14-16]连接器,再经光模块连接到交换机。负责网络控制器管理的NCSI接口经过连接器和线缆连接到服务器主板上连接器,再经过主板上走线到基板管理控制器BMC芯片。
图8 智能网卡原理框图
如前面服务器侧设计所述,BMC发出的TXD及TX_EN信号最大驱动能力可以支持20英寸走线,但是RXD及CRS_DV信号可以支持的走线长度取决于智能网卡上的NCSI芯片。根据NCSI标准,芯片厂家只要能支持12英寸走线即为符合标准,而仅服务器主板上就达10英寸以上,线缆长度大多也在10英寸以上,再加上智能网卡上的走线,所以整个链路的长度大多都在20英寸以上,因此必须对所有信号增加缓冲芯片进行增强,才能保证整个接口的稳定可靠。NCSI接口智能网卡侧的原理框图如图9所示。
图9 智能网卡侧的NCSI接口原理框图
在图9中,缓冲芯片Buffer位于连接器和NCSI芯片之间,但是在实际是在印制电路板上,缓冲芯片摆放位置需要根据NCSI芯片的驱动能力和智能网卡上NCSI信号走线长度来确定,如果走线长度小于12英寸,此时在NCSI标准规定的负载长度内,只需将缓冲芯片尽量靠近连接器端放置即可,这也是大多数智能网卡都满足的情况。如果智能网卡上NCSI信号走线长度大于12英寸,需要进一步和NCSI PHY芯片厂家确认能支持的走线长度,缓冲芯片要放置在NCSI PHY芯片支持的走线长度范围内。也就是说缓冲芯片的摆放要同时满足服务器主板对TXD及TX_EN芯片的20英寸的要求,又要满足NCSI PHY芯片对RXD及CRS_DV的要求。
为了进一步降低成本,可以对每个信号在缓冲芯片两端跨接一个0 Ω 电阻,以图10中时钟信号CLK为例。这种方案在走线长度超过芯片驱动能力时,电阻不焊接,保留缓冲芯片,当总体走线长度都在芯片驱动能力范围内的情况,此时缓冲芯片就可以不焊接,保留电阻。
图10 缓冲芯片跨接电阻原理框图
但是这种方案在印制电路板走线时要注意,跨接电阻最好与缓冲电路背对背放置,如缓冲芯片放正面,电阻放反面,使连到跨接电阻的走线尽量短,否则即容易造成电磁干扰问题,也会对信号本身带来不利影响。
本文从系统整体、服务器主板侧、线缆与连接器和智能网卡侧四个方面,详细阐述了整个NCSI接口设计要注意的主要问题,主要包括四方面:
(1)在系统时,主要关注系统时钟模式的选择及时序设计,满足系统对建立及保持时间的要求。
(2)在服务器主板设计时,时钟信号匹配电阻位置对信号质量影响很大,同时注意信号间等长问题。
(3)线缆和连接器部分,主要注意信号和地管脚的比例及线缆和连接器组装时线缆接地导体要就近焊接到地管脚,不允许两个线缆的接地导体焊接到同一个地管脚,否则容易造成信号间的干扰。
(4)智能网卡设计时,可以增加缓冲芯片以增加NCSI PHY芯片的驱动能力,同时注意缓冲芯片的摆放位置,对于总体走线较短的链路,可以使用跨接电阻,不焊接缓冲芯片进一步降低成本。
NCSI接口时钟为50 MHz,数据速率只有100 Mb/s,但稍有不慎很容易出问题,一方面是因为服务器和智能网卡设计时,都不知道对方走线长度及芯片驱动能力;另一方面是该频段内,普通的电气工程师缺乏高速高频的知识,意识不到可能出问题的地方,而对于专门的高速信号完整性工程师而言,更多关注1 Gb/s以上高速差分信号,容易遗漏。常见的三维电磁场仿真软件在几十兆赫兹的相对低频段内主要通过线性外推得到结果,仿真误差较大,今后需要重视该频段内的仿真和测试拟合问题。此外,电路原理图设计正确只是第一步,印制电路板上元件的布局布线也会严重影响产品功能,一件成功的产品是电路设计、布局布线、散热、机械等多方面共同成果,尤其对于可靠性要求很高的企业级产品更是如此。
我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!