一种基于FPGA实现的套接字描述符调度系统及其方法技术方案

技术编号:37992720 阅读:10 留言:0更新日期:2023-06-30 10:07
本发明专利技术提供一种基于FPGA实现的套接字描述符调度系统及其方法,该系统包括存储单元,用于提供描述符的存储空间,其包括一个存储大池和两个存储小池;其中,第一个存储小池为回收资源池,第二个存储小池为预取资源池;存储大池为描述符的主要存储资源池;管理单元,用于控制描述符的产生和回收,以及负责描述符在三个资源池之间的运行;粘合单元,用于在描述符运行期间,提供临时缓冲区。应用本发明专利技术可以解决现有技术中存储资源紧张,资源消耗大等问题,充分调用了整个FPGA的存储资源,克服了现有方法占用存储资源过多的缺点。有方法占用存储资源过多的缺点。有方法占用存储资源过多的缺点。

【技术实现步骤摘要】
一种基于FPGA实现的套接字描述符调度系统及其方法


[0001]本专利技术涉及网络数据处理
,具体涉及一种基于FPGA实现的套接字描述符调度系统及其应用该系统的调度方法。

技术介绍

[0002]在计算机通信领域,为了使应用层方便地调用TCP/IP传输协议,引入套接字概念。套接字将应用层与TCP/IP协议族之间的软件层抽象化,以API接口的形式呈现,提供应用层与传输层之间的控制与数据交互通道,其核心作用为完成网络数据与应用进程的唯一映射。
[0003]对于具体某个通信应用而言,在通信建立之时,便获取唯一的套接字序号(Linux系统为套接字描述符,Windows系统为套接字句柄,以下对两种命名不予区分,统称描述符),用于标识收发的网络数据所对应的处理进程。每当建立一个新的通信连接时,便产生新的套接字描述符,内核协议栈需要为之分配相应的存储资源,用于数据收发缓存区、套接字属性字段、网络通信状态等。通信终端系统能够提供的资源是有限的,描述符作为对应存储资源的索引,其数量也是有限的,当通信连接结束时,相应的存储资源需要释放,描述符也要做到重复使用。
[0004]当前基于FPGA实现的描述符资源池调度系统,其主流方法为:将可用的描述符以FIFO(First In First Out,先进先出队列)的方式排列,当新建连接时,从队首输出描述符使用,关闭连接时,将描述符回收至队尾。该方法简单高效,但需要一定的空间支持,用于存储描述符队列。对于位宽为K的描述符,所需资源池的存储空间为K*2
K
,存储宽度为K,深度为2
K
。随着K的增大,存储空间的深度和宽度均在增长,这对于存储资源本来紧张的FPGA而言,资源消耗难以承受。

技术实现思路

[0005]本专利技术的目的在于提供一种基于FPGA实现的套接字描述符调度系统及其系统,该系统和方法用于解决现有技术中存储资源紧张,资源消耗大等问题,可以充分调用整个FPGA的存储资源,克服了现有方法占用存储资源过多的缺点。
[0006]为解决上述问题,本专利技术所采用的技术方案如下:
[0007]一种基于FPGA实现的套接字描述符调度系统,包括:存储单元,用于提供描述符的存储空间,其包括一个存储大池和两个存储小池;其中,第一个存储小池为回收资源池,第二个存储小池为预取资源池;存储大池为描述符的主要存储资源池;管理单元,用于控制描述符的产生和回收,以及负责描述符在三个资源池之间的运行;粘合单元,用于在描述符运行期间,提供临时缓冲区。
[0008]根据本专利技术提供的一种基于FPGA实现的套接字描述符调度系统,回收资源池用于直接提供描述符,在回收描述符过多时,并将过多的描述符存放至存储大池中;预取资源池用于直接提供描述符,在预取描述符过少时,从存储大池中拿取描述符;存储大池中存储有
待使用的描述符,用于实现资源调节,以保证任何时刻回收资源池和预取资源池至少一个可用。
[0009]根据本专利技术提供的一种基于FPGA实现的套接字描述符调度系统,在回收ID与回收资源池之间设置有第一开关,在临时资源池与存储大池之间设置有第一个第二开关,在轮询模块与存储大池之间设置有第二个第二开关,在回收资源池、预取资源池与会话ID之间设置有第三开关。
[0010]根据本专利技术提供的一种基于FPGA实现的套接字描述符调度方法,该方法应用于上述的一种基于FPGA实现的套接字描述符调度系统,其包括以下步骤:在系统初始运行时,存储大池的所有位置初始化为可用,清空回收资源池和预取资源池的容量;实时检测回收资源池以及预取资源池的当前容量;当回收资源池为非满时,执行回收描述符操作,将其直接存储于回收资源池当中,否则将描述符间接存储于存储大池,即将对应存储大池位置设置为可用;当预取资源池为非满时,不断轮询存储大池的地址空间,将可用描述符由存储大池中移动至预取资源池当中。
[0011]根据本专利技术提供的一种基于FPGA实现的套接字描述符调度方法,可用描述符的输出,包括:当回收资源池非空时,由回收资源池提供描述符,当回收资源池为空且预取资源池非空时,由预取资源池提供,当二者同时为空时,给出资源池空标识,表示所有描述符均被使用。
[0012]根据本专利技术提供的一种基于FPGA实现的套接字描述符调度方法,在使用粘合单元时,还执行:在出现操作空洞的情况下,在回收描述符进入存储大池之间,添加临时资源池,用于短时间的描述符缓存,在当前轮询结束后,将临时资源池当中的描述符移动至存储大池当中。
[0013]根据本专利技术提供的一种基于FPGA实现的套接字描述符调度方法,当同时出现以下情况时将会导致出现操作空洞,其包括:回收资源池已满;存储大池正在轮询操作;有回收描述符释放。
[0014]根据本专利技术提供的一种基于FPGA实现的套接字描述符调度方法,第一开关决定回收描述符的去向,若回收资源池非满,回收描述符流向回收资源池,否则流向临时资源池;第二开关决定存储大池的连接源,若临时资源池非空,连接临时资源池,若临时资源池空且预取资源池非满,连接轮询模块,开启此轮扫描,将存储大池当中的描述符移动至预取资源池中,若临时资源池为空且预取资源池为满,则断开连接,保持当前状态;第三开关决定输出描述符的来源,若回收资源池非空,连接回收资源池,若回收资源池为空且预取资源池为非空,连接预取资源池,若回收资源池为空且预取资源池为空,给出资源池空标识。
[0015]根据本专利技术提供的一种基于FPGA实现的套接字描述符调度方法,存储大池轮询一轮的周期不大于两个存储小池耗尽的最小周期;其中,存储小池耗尽的最小周期为其FIFO深度,存储大池的轮询一轮的周期为其RAM深度,FIFO深度大于或等于RAM深度即可。
[0016]根据本专利技术提供的一种基于FPGA实现的套接字描述符调度方法,存储大池所占用的存储资源为2
K
,其深度N和宽度M须满足公式(1):
[0017]M*N=2
K
ꢀꢀꢀꢀꢀ
(1)
[0018]存储小池所占的储存资源为公式(2):
[0019]K*2
K
/M(2)
[0020]对于一个存储大池和两个存储小池的调度系统,总计消耗的资源为公式(3):
[0021]2K+2*K*2
K
/M=(1+2*K/M)*2
K
ꢀꢀꢀ
(3)。
[0022]由此可见,相对于现有技术,本专利技术提供的调度方法使用三个资源池来实现不同阶段的描述符存储,共同协作完成描述符调度,主要由存储单元、管理单元和粘合单元构成,其中,管理单元控制描述符的产生和回收,负责描述符在三个资源池之间的流转,提供新建描述符的输出机制,提供回收描述符的重用机制。因此,本专利技术在满足描述符系统的基本需求的前提下,提出了一种基于FPGA实现的资源大池+双资源小池的描述符调度方法,其性能与主流方法相同,在存储资源的方面能够大大减小消耗。
[0023]下面结合附图和具体实施方式对本本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于FPGA实现的套接字描述符调度系统,其特征在于,包括:存储单元,用于提供描述符的存储空间,其包括一个存储大池和两个存储小池;其中,第一个存储小池为回收资源池,第二个存储小池为预取资源池;存储大池为描述符的主要存储资源池;管理单元,用于控制描述符的产生和回收,以及负责描述符在三个资源池之间的运行;粘合单元,用于在描述符运行期间,提供临时缓冲区。2.根据权利要求1所述的系统,其特征在于:回收资源池用于直接提供描述符,在回收描述符过多时,并将过多的描述符存放至存储大池中;预取资源池用于直接提供描述符,在预取描述符过少时,从存储大池中拿取描述符;存储大池中存储有待使用的描述符,用于实现资源调节,以保证任何时刻回收资源池和预取资源池至少一个可用。3.根据权利要求1所述的系统,其特征在于:在回收ID与回收资源池之间设置有第一开关,在临时资源池与存储大池之间设置有第一个第二开关,在轮询模块与存储大池之间设置有第二个第二开关,在回收资源池、预取资源池与会话ID之间设置有第三开关。4.一种基于FPGA实现的套接字描述符调度方法,其特征在于,该方法应用于如权利要求1至3任一项所述的一种基于FPGA实现的套接字描述符调度系统,其包括以下步骤:在系统初始运行时,存储大池的所有位置初始化为可用,清空回收资源池和预取资源池的容量;实时检测回收资源池以及预取资源池的当前容量;当回收资源池为非满时,执行回收描述符操作,将其直接存储于回收资源池当中,否则将描述符间接存储于存储大池,即将对应存储大池位置设置为可用;当预取资源池为非满时,不断轮询存储大池的地址空间,将可用描述符由存储大池中移动至预取资源池当中。5.根据权利要求4所述的方法,其特征在于,可用描述符的输出,包括:当回收资源池非空时,由回收资源池提供描述符,当回收资源池为空且预取资源池非空时,由预取资源池提供,当二者同时为空时,给出资源池空标识,表示所有描述符均被使用。6.根据...

【专利技术属性】
技术研发人员:耿世磊杨少波余军范建超赵洋
申请(专利权)人:珠海高凌信息科技股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1