[发明专利]基于流水线模式的数据包零拷贝的核间通信方法有效
申请号: | 201210246928.9 | 申请日: | 2012-07-17 |
公开(公告)号: | CN102761489A | 公开(公告)日: | 2012-10-31 |
发明(设计)人: | 王燕飞;华蓓;王俊昌;张凯;刘思诚 | 申请(专利权)人: | 中国科学技术大学苏州研究院 |
主分类号: | H04L12/56 | 分类号: | H04L12/56 |
代理公司: | 苏州创元专利商标事务所有限公司 32103 | 代理人: | 范晴 |
地址: | 215123 江苏省苏州*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 流水线 模式 数据包 拷贝 通信 方法 | ||
技术领域
本发明属于多核平台的核间通信技术领域,具体涉及一种基于流水线模式的数据包零拷贝的核间通信方法。
背景技术
网络设备一直以来面临着灵活性和高性能不可兼得的难题。通用多核处理器的出现为解决这个问题提供了一种可行的方案,多核处理器强大的计算能力使得利用软件获得高性能成为可能。另外,熟悉的开发平台和丰富的第三方软件资源也使得该方案极具吸引力。
流水线(Pipelining)模式是基于通用多核平台的网络系统采用的并行处理技术之一。它将数据包的处理过程划分为若干个阶段,每个阶段映射到不同的物理核上完成,核与核间使用某种核间通信机制进行通信。一般,通过在流水不同阶段间传递数据包元信息实现流水处理过程中的通信过程,避免直接的数据包拷贝过程,且高速网络系统中实现零拷贝的好处是显而易见的,它对于减小包处理延迟、降低CPU和总线压力、减少cache污染等有明显作用,但是也给包缓冲区管理带来了困难,尤其是采用多条流水线的多核并行包处理系统,低效的包缓冲区管理的额外开销可能完全抵销零拷贝带来的好处。图1所示多条流水并行包处理系统中,P0核负责从网卡接收数据包,然后通过某种负载均衡机制将数据包发送到第二级核(有n个)上处理,其中P0分配包缓冲区,P1-Pn释放包缓冲区,整个处理过程中数据包不发生包内存拷贝。
以上并行模型中的零拷贝包缓冲区管理算法的实现难点在于两个方面:(1)在10Gbps链路上,包缓冲区的分配速度应达到每秒千万量级,但目前没有一种通用多核多线程内存分配器可以达到这个速度,因此通用动态分配包缓冲区的方法不可行;(2)由于不同流水线上数据包的处理速度不同,包缓冲区释放的顺序与在P0核上分配的顺序不同,因此,如果采用多核共享缓冲队列来实现包内存管理,将导致P0核上的环缓冲器出现队头阻塞问题,影响P0核的接收速度或产生丢包。
消除队头阻塞最直接的方法是数据包拷贝,数据包拷贝可以消除生产者(P0)和消费者(P1-Pn)之间的速度耦合,并避免动态包缓冲区分配的压力,然而这与零拷贝的初衷要求不符。目前工业界的做法是分配一个巨大的包缓冲区环,环的长度保证其回绕时间大于包的生命期,这样生产者可以不断地向环中填充数据包而不用顾虑队头阻塞的问题。该方法要求很大的内存空间,且随着网络流量的增大迅速增大。另外,netmap采用交换(swap)机制解决零拷贝下包转发的包内数据缓存区管理问题,表现为源包缓冲区和目的包缓冲区的相互交换过程,但是其性能一定程度上依赖于网卡硬件缓冲区,而且单向(非包转发接收、发送构成的双向结构)结构的性能有限。因此,上述基本的流水并行结构下,解决高速网络面临的包内存管理压力仍然存在挑战,本发明因此而来。
发明内容
本发明目的在于提供一种基于流水线模式的数据包零拷贝的核间通信方法,解决了基于流水并行模型的核间通信提供满足零拷贝的高效包内存管理方法。
为了解决现有技术中的这些问题,本发明提供的技术方案如下:
一种基于流水线模式的数据包零拷贝的核间通信方法,所述方法产生于通用多核平台核与核间,所述通用多核平台的核作为生产者或者消费者按照流水线模式进行核间通信,其特征在于进行核间通信时还包括在每一条流水线的相邻两个核之间设置一对长度相同的、独立的包缓冲区队列;通过包缓冲区队列在作为生产者的核与作为消费者的核之间交换空、满缓冲区的步骤;当作为生产者的核将装有数据包的满缓冲区插入包缓冲区队列分发队列,作为消费者的核将回收的空缓存区插入包缓冲区队列回收队列;当作为生产者的核每向分发队列中插入一个满缓冲区,就从回收队列中取出一个空缓冲区填入其包缓冲区环中。
优选的,所述方法中包缓冲区队列采用并发无锁队列(Concurrent Lock-free Queue,CLF)实现。
优选的,所述方法中分发队列用于传输要处理的包缓冲区元信息,回收队列用于传输空闲的包缓冲区元信息。
优选的,所述方法中回收队列中预填充的空闲缓冲区数量设置为回收队列大小减去批处理长度或一个Cache line长度。
优选的,所述方法中包缓冲区元信息进行压缩处理。
优选的,所述方法中当元信息包含至少两个地址时,对出(入)队指令进行优化处理。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学技术大学苏州研究院,未经中国科学技术大学苏州研究院许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210246928.9/2.html,转载请声明来源钻瓜专利网。
- 上一篇:车辆行驶控制装置
- 下一篇:微机械热电堆红外探测器及其制作方法