摘要:HPB(芯链)硬件加速引擎是一款基于ARM + FPGA架构的 FPGA定制化加速网卡,其在硬件TCP/IP 协议栈基础上,配合HPB(芯链)加速单元,实现 HPB (芯链)体系架构下的网络流量卸载及高吞吐、高并发链接处理,通过修改调整缓存方式可以支持并发处理几百条流到几百万条TCP并发链接的维护处理。
本文对HPB(芯链)硬件加速引擎的总体方案进行详细规划。
HPB(芯链)硬件加速引擎是一款基于ARM + FPGA架构的 FPGA定制化加速网卡,其在硬件TCP/IP 协议栈基础上,配合HPB(芯链)加速单元,实现HPB(芯链)体系架构下的网络流量卸载及高吞吐、高并发链接处理,通过修改调整缓存方式可以支持并发处理几百条流到几百万条TCP并发链接的维护处理。
HPB(芯链)硬件加速引擎总体架构图
子模块描述
该系统由五个大模块构成
这是FPGA厂商提供的标准IP,支持1G/10G 自适应模式,可选 32 位低时延 10 G 以太网 MAC 或 64 位以太网 MAC,支持 10G 数据速率。
· 选择 PHY 层的外部 XGMII 或内部 FPGA 接口
· 在客户端发送及接收接口上支持 AXI4-Stream 协议
· 支持缺损空闲计数以实现最大数据吞吐量;在各种条件下保持最小 IFG 并提供线路速率性能
· 针对所有设备支持包含带内 FCS 和不含带内 FCS 的缺损空闲计数
· 全面的统计收集
· 支持双向 802.3 和 802.1Qbb(基于优先级)流量控制
· 提供 MDIO STA 主接口以管理 PHY 层
· 支持 VLAN、巨型帧和 WAN 模式
· 定制前导模式
· 独立 TX 及 RX 最大传输单元 (MTU) 帧长度
· 可任意定制;针对功能性的行业资源使用
详细模块信息,参考FPGA厂商提供的用户手册。
该模块为适应HPB(芯链)架构的硬件TCP/IP协议栈模块,通过片上CPU及上位机PC管理,代替CPU执行网络协议打包的方案,使用特定的硬件电路来完成以太网包头的处理。 本模块的具体功能如下:
1.网络报文解析与分发,不属于本HPB加速引擎处理的报文送交CPU处理,会话报文组装发送,属于加速报文,交由硬件加速处理单元处理
2.HPB(芯链)节点间通讯会话表维护
3.会话报文可靠性处理,报文错误重传,报文乱序调整等网络可靠性处理。
暂时不支持IP分片报文
TOE模块分三个子模块实现
1、TOE模块,报文发送与接收处理模块,上行方向,TOE模块主要实现网络报文提取,提取报文的核心五元组信息用于后续处理,报文分析同时将报文分块缓存至Memory中。
下行方向,TOE模块根据处理结果对报文进行组装发送,发送时,接收从MSG模块来的报文描述符,提取发送缓存Memory中的数据,组装报文发送出去。
子模块框图如下:
TOE 模块子模块列表
TOE子模块核心表项定义
Tcp_table_item[ TAB_DWID*1+127 +: 001 ] 表项有效位
Tcp_table_item[ TAB_DWID*1+126 +: 001 ] 收到ack报文的标记
Tcp_table_item[ TAB_DWID*1+125 +: 001 ] 收到fin报文的标记
Tcp_table_item[ TAB_DWID*1+124 +: 001 ] 收到rst报文的标记
Tcp_table_item[ TAB_DWID*1+120 +: 004 ] 记录收到的win scale,控制发送速率
Tcp_table_item[ TAB_DWID*1+112 +: 008 ] 统计收到的乱序报文个数
Tcp_table_item[ TAB_DWID*1+096 +: 016 ] 接收到有效数据的时间戳
Tcp_table_item[ TAB_DWID*1+064 +: 032 ] 接收到报文的源IP
Tcp_table_item[ TAB_DWID*1+048 +: 016 ] 接收到报文的源PORT
Tcp_table_item[ TAB_DWID*1+000 +: 048 ] 接收到报文的源MAC
Tcp_table_item[ TAB_DWID*0+096 +: 032 ] TCP会话的初始seqn
Tcp_table_item[ TAB_DWID*0+064 +: 032 ] 当期预期的seqn,判断是否乱序
Tcp_table_item[ TAB_DWID*0+032 +: 032 ] 收到的ackn$,用于释放发送方向的数据
Tcp_table_item[ TAB_DWID*0+016+:016] 收到的window,用于控制发送数据速率
Tcp_table_item[ TAB_DWID*0+012 +: 004 ] 发送的dupack报文统计,控制发送dupack的速率
Tcp_table_item[ TAB_DWID*0+008 +: 004 ] 接收的dupack报文统计,触发发送方向的数据快速重传
Tcp_table_item[ TAB_DWID*0+000 +: 008 ] 本地的接收window,准备发给对端的
3、 MSG模块,报文TCP头信息处理模块,对输入的tcp按流记录,区分message的起始,申请message_id等一系列流消息处理功能(完善中)。
4、 BDP模块,TCP/IP链接表维护,对链接表描述符进行扫描,更新,处理超时,处理重传,慢启动,拥塞避免等功能,所有操作均基于message描述符进行(完善中)。
此模块是一个特殊的双端口FIFO,属于HPB(芯链)加速处理报文,在经过TOE模块后,被送往该FIFO的加速缓存区,不属于HPB(芯链)的其他普通网络报文,将通过PCIE DMA通道,直接上送上位机PC,交由PC及处理,该模块由一个通用的多端口FIFO与一部分空调逻辑共同构成。
HPB(芯链)专用加速逻辑,用于HPB(芯链)特定的通讯报文接受处理与特殊通讯报文发送处理,比如共识广播报文、block确认报文等HPB(芯链)自定义区块通讯报文处理。
该模块为FPGA厂商提供的支持SG-DMA特性的PCIE Hard IP,具体功能请参考FPGA厂商IP用户手册。
如上就是HPB(芯链)硬件加速引擎的总体方案,下周我们会开源加速引擎芯片核心模块的代码。
官方网站:http://gxn.io/
大写的福利
注意注意!共享财经给大家发福利了!
#领取流程#
关注ICO Race微信
↓
回复ETH地址
↓
添加ICO Race小编微信
↓
领取HPB(芯链)代币
HPB(芯链)英文全称High-performance Blockchain,它是一种全新的区块链软硬件体系架构,其中包含芯片加速引擎和区块链底层平台,旨在实现分布式应用的性能扩展。定位为易用的高性能区块链平台,跟产业深度结合,来满足现实世界的真实商业需求。
每日数量有限,先到先得
PS:关注ICO Race之后,一定记得回复哦~~~
ICO Race
精选并承销优质的ICO项目,
提供最前沿、最系统的数字资产配置方案。
活动说明
1、每天关注的前30名粉丝将能获得用共享财经提供的30个HPB代币;
2、每人仅限领取一次!取消关注后再重新关注领取属于违规作弊行为;
3、本活动最终解释权归ICO Race所有。