一种基于众核处理器的高速网络数据包并行化接收方法_2

文档序号:8322171阅读:来源:国知局
接收核,网络数据接收核解析从输入接口收到的数据包头,根据相应的数据分发算法以及映射表来告诉输入接口这个数据应该映射的内存地址,然后输入接口就将这个数据包直接映射到上述所指定的内存地址,当这个映射过程完成后就通知网络数据接收核,网络数据接收核就通知网络数据处理核网络数据已经准备就绪,最后网络数据处理核就到相应的内存地址去读取数据。
[0024]图3所示为本发明并行化数据包接收流程图。结合图4并行化数据包接收结构框图对数据包的接收过程做详细说明。
[0025]数据接收开始工作时,首先要对一些相关参数进行初始化,即对一些参数进行配置,包括以下几点:网络数据处理核很关心其本身所需要处理的数据是否能够准确无误得到达,所以就得先到网络数据接收核注册,注册的主要目的是让网路数据接收知道网络数据处理核所需要的数据,以便将网络数据准确无误得达到网络数据处理核并让其处理以及让网络数据处理核知道哪一个核是空闲得,此时可以进行数据处理;根据一些相关信息做分发算依据;按照应用的要求合理分配内存空间以及为网络数据选择合适的缓存空间大小等;然后就是等待相关输入,如果没有相关输入,就继续等待;如果有相关输入,就看输入得是相关消息还是相关数据,如果是相关消息的话就接收,其中相关消息包括上述所说的注册消息、缓冲区返回的消息、注销消息、退出消息等;如果是退出消息,网络数据接收核就停止工作;如果是其它消息就处理并更新返回的相关消息以便及时作为下一次输入;如果输入是相关数据的话,根据输入的网络数据的包头相关信息解析此数据包头并接收此数据包头,再根据解析此数据包头出来的信息与初始化时配置的相关信息进行匹配,如果在初始化时已经有了此信息时就直接查询相应的槽散列,根据槽散列再结合相应的分发算法及映射表选择相应的网络数据处理核,根据此数据包头里面数据的大小来选择合适的数据缓存空间;如果没有此信息,再根据此数据包头的第三层、四层信息进行hash运算并计算其槽散列,然后再重复上一步来选择合适的数据缓存空间和网络数据处理核;最后网络数据接收核通知网络数据处理核接收网络数据并进行相应的处理;如图4所示Tile I完成的是读取从网卡所接收的网络数据的包头功能,Tile 2完成的是对收到的数据包头的第三层、四层进行Hash运算并计算其槽散列功能,Tile 3完成的是结合分发算法以及映射表来选择合适的存储Buffer核Worker Tile,Tile 4完成的是通知网络数据处理核收取数据并进行处理功能;4个核按照流水线方式各自完成自己的任务来达到并行处理的目的;若有多个任务同时进行,网络数据处理核也可以利用网络数据接收的并行化的优势将各个数据快速准确得分配到各个核上进行处理;如图4中任务1、任务2、任务3、任务η中对应的Tile1-UTile 1-2, Tile 1-n, Tile 2_l、Tile 2-2,Tile 2_n、Tile 3-1, Tile 3-2,Tile 3_n、Tile 4-UTile 4-2,Tile 4_n就是对应不同任务之间所用的网络数据处理核,而这些网络数据处理核的选择就是根据网络数据接收核来选择。
[0026]以上这些实施例应理解为仅用于说明本发明而不用于限制本发明的保护范围。在阅读了本发明的记载的内容之后,技术人员可以对本发明作各种改动或修改,这些等效变化和修饰同样落入本发明权利要求所限定的范围。
【主权项】
1.一种基于众核处理器的高速网络数据包并行化接收方法,其特征在于:包括以下步骤: 101、将众核处理器的N个核分成两类核,即用于接收网络数据包头的网络数据接收核和对网络数据内容进行处理的网络数据处理核,所述网络数据接收核又分为读取核、散列核、分配核及通知核,其中读取核是用来处理网卡接收到的网络数据包的包头信息,包括对包头信息进行第二层Hash以及提取TCP或者UDP包的源端口和目的端口 ;散列核是根据读取的包头信息进行散列即计算数据包头的第三层、四层的Hash值来选择散列槽;分配核是根据选择好的散列槽来选择网络数据处理核,发送核用于完成将网络数据包发送给网络数据处理核,其中网络数据接收核与网络数据处理核之间采用片上网络进行通信,所述网络数据接收核的读取核、散列核、分配核及通知核之间也采用片上网络; 102、当网络数据到来时,网卡适配层接口会将整个数据包存储到一个16KB的先入先出FIFO循环队列称为iPkt数据内容中,而将数据包头存储到一个4KB的循环队列称为iHdr数据包头中,然后通过头部信息将数据包通过直接内存存取的方式传送到相应的网络数据处理核队列中,网络数据处理核提取数据并进行处理。
2.根据权利要求1所述的基于众核处理器的高速网络数据包并行化接收方法,其特征在于:步骤101中的网络数据接收核对网络数据包进行接收的步骤具体为:初始化配置相关网络数据处理核的接收信息,网络数据处理核到网络数据接收核注册;分配内存空间以及为网络数据选择缓存空间大小;等待相关输入,如果没有相关输入,则继续等待;如果有相关输入,则看输入得是相关消息还是相关数据,如果是相关消息的话就接收,其中相关消息包括注册消息、缓冲区返回的消息、注销消息及退出消息;如果是退出消息,网络数据接收核就停止工作;如果是其它消息就处理并更新返回的相关消息;如果输入是相关数据的话,根据输入的网络数据的包头相关信息解析此数据包头并接收此数据包头,再根据解析此数据包头出来的信息与初始化时配置的相关信息进行匹配,如果在初始化时已经有了此信息时就直接查询相应的槽散列,根据槽散列再结合相应的分发算法及映射表选择相应的网络数据处理核,根据此数据包头里面数据的大小来选择数据缓存空间;如果没有此信息,再根据此数据包头的第三层、四层信息进行hash运算并计算其槽散列,然后再重复上一步来选择合适的数据缓存空间和网络数据处理核;最后网络数据接收核通知网络数据处理核接收网络数据并进行相应的处理。
3.根据权利要求1所述的基于众核处理器的高速网络数据包并行化接收方法,其特征在于:所述的多众核嵌入式处理器为同构或异构处理器,所述核的数量至少为8个,所述收发端口配置包括至少2个GE千兆网络端口,其中一个为RX接收端口,另一个为TX传输端□ O
【专利摘要】本发明请求保护一种众核处理器的高速网络数据包并行化接收方法,包括:将多核或众核嵌入式处理器中的核分为网络数据接收核和网络数据处理核;根据该模型对网络数据的处理流程可以将数据接收任务分为读取核、散列核、分配核、发送核,读取核是用来处理网卡接收到的网络数据包的包头信息,散列是根据读取的包头信息进行散列即计算数据包头的第三层、四层的Hash值来选择散列槽,分配核是根据选择好的散列槽来选择网络数据处理核,发送核完成将网络数据包发送给网络数据处理核;多核或众核嵌入式处理器提供了一种片上网络,通过该网络选择了一种高效的核间通信机制,完成了子任务之间的数据传递。
【IPC分类】H04L12-861, H04L12-883
【公开号】CN104639460
【申请号】CN201510056076
【发明人】唐红, 戴俊, 王大瑞, 赵国锋, 邓娅茹, 刘静娴
【申请人】重庆邮电大学
【公开日】2015年5月20日
【申请日】2015年2月3日
当前第2页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1