|
专注高性能存储与传输,在本博客已给出相关博文已约80篇,希望对初学者有用。注意这里只是抛砖引玉,切莫认为参考这就可以完成商用IP设计。
IP结构图
融合以太网协议栈是实现 RoCE v2 命令提交和完成机制的核心模块,完成网络层级中网络层及应用层功能。该模块负责将来自系统控制模块的功能请求转换为RoCE v2 指令,如建链、断链、数据传输(包括单边和双边语义),并执行指令提交及完成机制。此外,该模块还实现了 RDMA 队列管理功能,包括队列存储、队列创建及删除、队列仲裁等功能。同时,本模块也负责控制 DMA 数据读写,将数据读写请求转换为 AXI4 总线事务,通过 AXI4 总线接口读写数据,并负责 RoCE v2 网络包的封装、解析、不变循环冗余校验(Invariant Cyclic Redundancy Check,ICRC)生成等功能。
以太网协议栈模块负责解析及组装网络包,完成网络层级中传输层、网络层及网络接口层功能。首先,该模块接收来自融合以太网协议栈的网络包,并为其逐层添加UDP、IP 及 ETH 头部,使其成为完整的网络包后发送至 CMAC 集成块。其次,该模块解析来自远程主机的 ARP 或 ICMP 网络包,用以实现网络嗅探功能。最后,该模块负责接收 CMAC 集成块传输过来的网络包,并对其进行解包和解析,而后根据包的功能分发到相应模块或子模块。最后,该模块还实现了网络拥塞处理及流量控制机制,如 ECN 协议或 PFC 协议。
CMAC 集成块模块用以实现网络连接的物理层。CMAC 集成块是由 Xilinx 公司提供的用于 100Gb Ethernet 的高带宽、可扩展的通用 IP 核,在 RoCE v2 高速数据传输系统担任网络物理层的角色。其提供一组主 AXI-Stream 接口和一组从 AXI-Stream接口,用以传输网络包。同时 CMAC 集成块也负责 ETH 层 FCS 的生成与校验,并提供一组寄存器接口用于用户判断链路状态及反馈错误信息等。
|