本发明属于适配器,特别涉及一种千兆单光口服务器适配器。
背景技术:
1、随着科技的进步,人们对信息的需求量越来越大,网络数据的传输媒介已逐渐由网络改为光纤传输。因为光纤传输信息具有传输容量大、保密性好、迅速便利等优点。光纤服务器适配器用于服务器和台式机等高端设备的数据传输。光纤服务器适配器由以太网控制器连接不同的端口进而实现数据的转换和传输。
2、以太网控制器包括以太网介质访问控制器(mac层控制器)和物理层接口芯片(phy层控制器),mac层控制器是实现流量控制的关键,现有技术公开的以太网mac控制器ip核的结构框架如图1所示。传统的以太网控制器,当连接的接收设备和发送主机的端口速率不一致时,会发生数据溢出,为了防止数据溢出,接收设备会发一个pause帧给发送主机,主机根据pause帧的内容将控制帧分离出来,提交到流量控制模块,流量控制模块解析控制帧的内容,提取帧中的控制参数,根据控制参数决定暂停发送的时间;当接收设备出现拥塞的情况下,主机端口通常会连续收到多个pause帧,只要接收设备的拥塞状态没有解除,相关的端口就会一直发送pause帧,这就导致了网速传输速率的降低,可将千兆的速率降低至100mb/s以下。
技术实现思路
1、为了解决现有技术存在的问题,本发明提供一种千兆单光口服务器适配器。
2、本发明其中一个技术方案提供一种千兆单光口服务器适配器,所述服务器适配器包括:
3、一个phy层控制器,
4、一个mac层控制器,
5、一个pcie接口,连接到所述mac层控制器上;和
6、一个千兆光纤端口,所述千兆光纤端口被配置为连接到所述phy层控制器上;
7、所述mac层控制器包括总线接口、接收缓存模块、发送缓存模块、流量控制模块、接收模块、第一发送模块、第二发送模块和phy接口;
8、所述总线接口被配置为与pcie接口连接;
9、所述接收缓存模块与总线接口连接,被配置为用于对接收的数据帧缓存进行管理;
10、所述发送缓存模块与总线接口连接,被配置为用于对发送的数据帧缓存进行管理;
11、所述发送缓存模块包括:
12、第一发送数据子模块,所述第一发送数据子模块被配置为用于缓存待发送的数据帧;
13、第二发送数据子模块,当流量控制模块比较出第一发送数据子模块内缓存的数据帧的数量大于数据帧门限阈值时,所述第二发送数据子模块被配置为用于缓存待发送的数据帧;
14、所述第一发送模块与phy接口连接,被配置为用于通过phy接口将第一发送数据子模块内缓存的待发送的数据帧发送至phy层控制器;
15、所述第二发送模块与phy接口连接,被配置为用于通过phy接口将第二发送数据子模块缓存的待发送的数据帧发送至phy层控制器;
16、所述接收模块与phy接口连接,被配置为用于对数据帧进行解析,将合法帧缓存至接收缓存模块;
17、所述流量控制模块还被配置为用于实时监测第一发送数据子模块内缓存的数据帧的数量,并与数据帧门限阈值进行比较;还被配置为用于控制第二发送模块在预设时间后,读取第二发送数据子模块内的数据帧并发送。
18、进一步改进的方案中,
19、当所述第一发送数据子模块内缓存的数据帧的数量大于数据帧门限阈值时,流量控制模块将流量状态寄存器内缓存流量控制字段改成1,继续检测,当缓存的数据帧的数量不大于数据帧门限阈值时,将流量控制字段改成0。
20、进一步改进的方案中,所述发送缓存模块还包括:
21、第一发送队列,所述第一发送队列被配置为用于缓存发送缓存描述符;
22、发送完成队列,所述发送完成队列被配置为用于缓存发送完成后的帧序号及发送状态;
23、发送缓存控制子模块,所述发送缓存控制子模块被配置为用于生成待发送数据帧对应的发送缓存描述符;
24、发送缓存状态队列,当第一发送数据子模块内缓存的数据帧的数量大于数据帧门限阈值时,所述发送缓存状态队列被配置为读取发送完成队列内最后一个发送状态为发送成功的帧序号,并记录该帧序号之后的所有帧序号。
25、进一步改进的方案中,所述第二发送数据子模块被配置为用于在预设时间内更新缓存第一发送数据子模块发送的第n个数据帧到最后一数据帧,并当第一发送数据子模块内缓存的数据帧的数量大于数据帧门限阈值时,所述第二发送数据子模块还被配置为用于缓存待发送的数据帧;
26、所述缓存模块还包括:
27、第一发送队列,所述第一发送队列被配置为用于缓存发送缓存描述符;
28、发送完成队列,所述发送完成队列被配置为用于缓存发送完成后的帧序号及发送状态;
29、发送缓存控制子模块,所述发送缓存控制子模块被配置为用于生成待发送数据帧对应的发送缓存描述符还包括:
30、进一步改进的方案中,所述发送缓存模块还包括:
31、第二发送队列,所述第二发送队列被配置为环形队列,用于缓存写指针及对应的帧序号;
32、第三发送队列,所述第三发送队列被配置为环形队列,用于缓存读指针及对应的帧序号;
33、所述第一发送队列和第一发送数据子模块均为环形队列,所述第一发送数据子模块、第一发送队列、第二发送队列和第三发送队列各数据结构的深度相等;在一个循环时间段t内,n-1=n1+n2,其中n为第一发送队列存储帧序号的个数,n1为第二发送队列内存储帧序号的个数,n3为第三发送队列存储帧序号的个数;
34、发送状态判断子模块,所述发送状态控制子模块被配置为用于记录第一发送数据子模块内数据帧存储状态,当存储状态接近满时,该位为1,当存储状态接近空时,该位为0;还被配置为用于判断n1和n2的大小,当n1>n2时,此时刻,第一发送数据子模块存储状态接近空,当n1<n2时,此时刻,第一发送数据子模块存储状态接近满,并在第一发送数据子模块内标注上对应标识。
35、进一步改进的方案中,所述数据帧门限阈值x按照如下公式计算:
36、x=(n1+n2-1)/t。
37、进一步改进的方案中,所述接收缓存模块包括:
38、接收数据子模块,所述接收数据子模块被配置为环形队列,用于缓存接收的数据帧供主机读取;
39、第一接收队列,所述第一接收队列被配置为用于缓存接收缓存控制符;
40、第二接收队列,所述第二接收队列被配置为环形队列,所述环形队列上存在空和满的标志,还被配置为用于在一个循环时间段t内,缓存接收数据子模块每一读指针和写指针的读写对应的帧序号;
41、所述接收数据子模块、第一接收队列和第二接收队列的容量和深度相等;
42、接收空满判断子模块,所述接收空满判断子模块用于读取第二接收队列内的读指针和写指针对应的帧序号,当读指针对应的位置为空,且与其邻近的位置不存在写指针帧序号时,判断第二接收队列内空状态,当写指针对应的位置为满,且与其邻近的位置不存在读指针编号,该环形队列为满状态;
43、接收缓存控制子模块,所述接收缓存控制子模块被配置为用于生成待接收的数据帧的接收缓存控制符。
44、进一步改进的方案中,所述流量控制模块还被配置为用于监听正在使用的应用程序,并监听应用程序传输的数据帧的个数,当检测到第一发送数据子模块内缓存的数据帧的数量大于数据帧门限阈值时,根据应用程序发送的数据帧的个数决定进行二进制退避算法的应用程序。
45、进一步改进的方案中,所述接收模块包括地址过滤子模块,所述地址过滤子模块被配置为用于判断本地是否存有与所述数据帧的目的ip对应的过滤规则表,根据过滤规则表中查找对应的过滤规则;所述过滤规则表包括的字段包括源ip地址、源端口、目的端口和传输层协议、第一哈希值和第二哈希值;其中第一哈希值是将ip地址按照固定的位数生成的hash码;第二哈希值是将ip地址按照随机位数生成的hash码。
46、进一步改进的方案中,所述流量控制模块内设置有优先发送队列,所述优先发送队列用于缓存pause帧。
47、本发明提供的千兆单光口服务器适配器,支持电脑端接口和光纤端口,可实现服务器与台式机等高端设备的通信;通过设置第一发送数据子模块、第二发送数据子模块和第一发送模块及第二发送模块解决了不断发送pause帧导致的传输速率降低的问题。
1.一种低数据溢出的千兆单光口服务器适配器,其特征在于,该千兆单光口服务器适配器的发送缓存模块包括:
2.如权利要求1所述的千兆单光口服务器适配器,其特征在于,
3.如权利要求1~2任一项所述的千兆单光口服务器适配器,其特征在于,当所述第一发送数据子模块内缓存的数据帧的数量大于数据帧门限阈值时,流量控制模块将流量状态寄存器内缓存流量控制字段改成1,继续检测,当缓存的数据帧的数量不大于数据帧门限阈值时,将流量控制字段改成0。
4.如权利要求1~3任一项所述的千兆单光口服务器适配器,其特征在于,所述发送缓存模块还包括:
5.如权利要求1~4任一项所述的千兆单光口服务器适配器,其特征在于,所述第二发送数据子模块被配置为用于在预设时间内更新缓存第一发送数据子模块发送的第n个数据帧到最后一数据帧,并当第一发送数据子模块内缓存的数据帧的数量大于数据帧门限阈值时,所述第二发送数据子模块还被配置为用于缓存待发送的数据帧;
6.如权利要求1~5任一项所述的千兆单光口服务器适配器,其特征在于,所述数据帧门限阈值x按照如下公式计算:
7.如权利要求1~6任一项所述的千兆单光口服务器适配器,其特征在于,所述接收缓存模块包括:
8.如权利要求1~7任一项所述的千兆单光口服务器适配器,其特征在于,所述流量控制模块还被配置为用于监听正在使用的应用程序,并监听应用程序传输的数据帧的个数,当检测到第一发送数据子模块内缓存的数据帧的数量大于数据帧门限阈值时,根据应用程序发送的数据帧的个数决定进行二进制退避算法的应用程序。
9.如权利要求1~8任一项所述的千兆单光口服务器适配器,其特征在于,所述接收模块包括地址过滤子模块,所述地址过滤子模块被配置为用于判断本地是否存有与所述数据帧的目的ip对应的过滤规则表,根据过滤规则表中查找对应的过滤规则;所述过滤规则表包括的字段包括源ip地址、源端口、目的端口和传输层协议、第一哈希值和第二哈希值;其中第一哈希值是将ip地址按照固定的位数生成的hash码;第二哈希值是将ip地址按照随机位数生成的hash码。
10.如权利要求1~9任一项所述的千兆单光口服务器适配器,其特征在于,所述流量控制模块内设置有优先发送队列,所述优先发送队列用于缓存pause帧。