【以太网RDMA网卡功能分析和网卡架构】

打印 上一主题 下一主题

主题 886|帖子 886|积分 2658

2 以太网RDMA网卡功能分析和网卡架构

【博客首发于微信公众号《漫谈芯片与编程》,接待专注一下,多谢各人】
标准以太网卡只具备物理层串并转换、数据链路层以太网帧头封装和剖析、DMA等功能,无法支持RDMA的通信原语和传输方式等,因此需要专用的以太网RDMA网卡在兼容标准以太网卡功能的基础上增长对RDMA功能的支持;
对于RDMA通信原语,如应用程序下发的WRITE哀求,网卡需要DMA从用户空间中取出要写入远端的数据并在硬件中完成报文封装,以实现零拷贝、内核旁路和CPU卸载的通信特性. 由于用户态应用程序利用虚拟地点,网卡利用物理地点,因此需要网卡进行虚实地点转换(根据由内核态提前设置好的内存转换表(memory translation table,MTT)等信息)以实现直接访问主机内存. 别的,对于RC传输方式,需要由网卡通过确认应答和重传等机制保证传输的可靠性。
在工业界或者学术界会对往网卡会描述其详细支持功能;详细的Vendor来详细决定实现微体系结构级别的实现细节,差异的网卡架构会由于面向的场景、支持的功能和针对性优化等而具有差异,但由于IBTA标准已经对RDMA分层架构、处理流程等进行了详细的定义,因此RDMA网卡的基本架构是相似的;
2.1 处理RDMA包

以处理rdam_write request包为例:
对于本端发送WRITE哀求报文,网卡通过Doorbell机制(即驱动程序通过网卡WQE已经送入SQ,通常是通过更新SQ的写入指针到网卡寄存器来实现)获取RDMA的WQE,通过剖析WQE获取有用载荷描述符信息并发起DMA操作获取有用payload,之后进行RETH,BTH,UDP,IP报文封装以及ICRC添补,并通过MAC部件和PHY部件发送至网络。之后若网卡收到远端ACK,则构造CQE上送CQ告知应用程序传输完成,否则进行报文重传。
对于吸收的远端对于WRITE哀求报文,则依次进行ICRC查验,各层报文头剖析,并根据可靠传输机制回答ACK或NAK;若WRITE哀求报文按序吸收并且校验无误,则根据剖析报文头获取的DMA长度等信息发起DMA操作并上传有用载荷;

虚实地点转换:在正式通信之前注册MR时会在内核态将虚实地点映射关系记载在MTT中,当网卡进行内存访问时,由地点转换部件根据MTT表将应用程序下发的虚拟地点转换为物理地点后通过DMA部件获取主存数据。
DMA:在网卡上通常不会只有1个模块需要通过虚实地点转换和DMA部件与主机内存交互:如获取传输哀求模块需从主存获取相应的SQ WQE,获取和上送有用载荷模块需存取主存数据。如发送和吸收WRITE哀求时等;,通过将所有DMA操作哀求会合汇聚到DMA部件中,由DMA调度仲裁模块对DMA哀求进行有用查抄、调度仲裁和缓冲后由DMA引擎执行DMA操作。
可靠传输:以太网RDMA网卡在RC模式下需要支持可靠传输,即需要保证数据的完备性、按序吸收2方面;以太网RDMA网卡提供硬件卸载的可靠传输机制,即图3中ICRC校验和添补模块(数据完备性保证)、应答和重传模块(数据按序吸收保证). ICRC校验通常在发送报文时进行ICRC盘算和封装;在吸收报文时重新盘算和比对ICRC值,以检测报文在传输过程中是否发生了错误或被篡改.
应答模块(保证可靠传输):响应端应答模块会根据BTH报文头中的PSN号和与网卡缓存中的ePSN是否匹配判定报文是否按序吸收,并对RETH报文头中的虚拟地点VA、DMA lengh和Key进行校验。若报文按序吸收且校验无误,则回送ACK,否则丢弃数据包并回送NAK(或静默丢弃);响应端应对收到的每个哀求包进行ACK或NAK确认.
重传模块:响应端通常会进行确认合并,为避免其无限期合并确认,哀求端可以利用BTH报头中的AckReq位强制要求响应端回送确认(如对于每个哀求WQE的唯一或最后1个数据包应设置该位). 相应的,哀求端在收到NAK或超时未收到响应时触发重传,重传机制包括go-back-0,go-back-N以及选择重传.重传机制可以单独划分模块或嵌入在报文收发处理过程中实现.
ICRC校验和应答重传保证最基本的可靠传输,更进一步先辈网卡普遍实现拥塞控制和流量控制以尽可能避免丢包重传;
网卡SRAM缓存:网卡内部会大量利用SRAM,偶然间为了减少latency,会再利用Cache;网卡缓存SRAM信息紧张包括数据和元数据信息.数据缓存紧张是因为传输带宽和网卡处理速率之间的性能差距;元数据是支持RDMA传输所需的数据结构信息,通常会包括直接访问主机内存所需的MTT,MPT,QPC,WQE等;MTT用于虚实地点转换,MPT用于查抄
地点访问权限. QPC则为每个QP维护DMA状态和连接状态等连接上下文信息,DMA状态信息包括DMA地点、SQ和RQ读写指针等,连接状态信息包括ePSN,MSN(message sequence number)、重传定时器时间间隔、拥塞控制窗口或速率等. WQE包括从SQ预取的发送WQE和从RQ预取的吸收WQE;
[ref]
1.以太网RDMA网卡技术

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

缠丝猫

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表