基于流水线模式的数据包零拷贝的核间通信方法技术

技术编号:7936797 阅读:179 留言:0更新日期:2012-11-01 07:20
本发明专利技术公开了一种基于流水线模式的数据包零拷贝的核间通信方法,所述方法产生于通用多核平台核与核间,所述通用多核平台的核作为生产者或者消费者按照流水线模式进行核间通信,其特征在于进行核间通信时还包括在每一条流水线的相邻两个核之间设置一对长度相同的、独立的包缓冲区队列;通过包缓冲区队列在作为生产者的核与作为消费者的核之间交换空、满缓冲区的步骤;当作为生产者的核将装有数据包的满缓冲区插入包缓冲区队列分发队列,作为消费者的核将回收的空缓存区插入包缓冲区队列回收队列;当作为生产者的核每向分发队列中插入一个满缓冲区,就从回收队列中取出一个空缓冲区填入其包缓冲区环中。该方法有效解决了流水并行模式下实现零拷贝的高速网络包处理面临的包内存管理问题,通过交换机制实现了每条单流水内的包缓存管理过程。

【技术实现步骤摘要】

本专利技术属于多核平台的核间通信
,具体涉及一种。
技术介绍
网络设备一直以来面临着灵活性和高性能不可兼得的难题。通用多核处理器的出现为解决这个问题提供了一种可行的方案,多核处理器强大的计算能力使得利用软件获得高性能成为可能。另外,熟悉的开发平台和丰富的第三方软件资源也使得该方案极具吸引力。流水线(Pipelining)模式是基于通用多核平台的网络系统采用的并行处理技术 之一。它将数据包的处理过程划分为若干个阶段,每个阶段映射到不同的物理核上完成,核与核间使用某种核间通信机制进行通信。一般,通过在流水不同阶段间传递数据包元信息实现流水处理过程中的通信过程,避免直接的数据包拷贝过程,且高速网络系统中实现零拷贝的好处是显而易见的,它对于减小包处理延迟、降低CPU和总线压力、减少cache污染等有明显作用,但是也给包缓冲区管理带来了困难,尤其是采用多条流水线的多核并行包处理系统,低效的包缓冲区管理的额外开销可能完全抵销零拷贝带来的好处。图I所示多条流水并行包处理系统中,PO核负责从网卡接收数据包,然后通过某种负载均衡机制将数据包发送到第二级核(有η个)上处理,其中PO分配包缓冲区,Pl-Pn释放包缓冲区,整个处理过程中数据包不发生包内存拷贝。以上并行模型中的零拷贝包缓冲区管理算法的实现难点在于两个方面(1)在IOGbps链路上,包缓冲区的分配速度应达到每秒千万量级,但目前没有一种通用多核多线程内存分配器可以达到这个速度,因此通用动态分配包缓冲区的方法不可行;(2)由于不同流水线上数据包的处理速度不同,包缓冲区释放的顺序与在PO核上分配的顺序不同,因此,如果采用多核共享缓冲队列来实现包内存管理,将导致PO核上的环缓冲器出现队头阻塞问题,影响PO核的接收速度或产生丢包。消除队头阻塞最直接的方法是数据包拷贝,数据包拷贝可以消除生产者(PO)和消费者(Pl-Pn)之间的速度耦合,并避免动态包缓冲区分配的压力,然而这与零拷贝的初衷要求不符。目前工业界的做法是分配一个巨大的包缓冲区环,环的长度保证其回绕时间大于包的生命期,这样生产者可以不断地向环中填充数据包而不用顾虑队头阻塞的问题。该方法要求很大的内存空间,且随着网络流量的增大迅速增大。另外,netmap采用交换(swap)机制解决零拷贝下包转发的包内数据缓存区管理问题,表现为源包缓冲区和目的包缓冲区的相互交换过程,但是其性能一定程度上依赖于网卡硬件缓冲区,而且单向(非包转发接收、发送构成的双向结构)结构的性能有限。因此,上述基本的流水并行结构下,解决高速网络面临的包内存管理压力仍然存在挑战,本专利技术因此而来
技术实现思路
本专利技术目的在于提供一种,解决了基于流水并行模型的核间通信提供满足零拷贝的高效包内存管理方法。为了解决现有技术中的这些问题,本专利技术提供的技术方案如下一种,所述方法产生于通用多核平台核与核间,所述通用多核平台的核作为生产者或者消费者按照流水线模式进行核间通信,其特征在于进行核间通信时还包括在每一条流水线的相邻两个核之间设置一对长度相同的、独立的包缓冲区队列;通过包缓冲区队列在作为生产者的核与作为消费者的核之间交换空、满缓冲区的步骤;当作为生产者的核将装有数据包的满缓冲区插入包缓冲区队列分发队列,作为消费者的核将回收的空缓存区插入包缓 冲区队列回收队列;当作为生产者的核每向分发队列中插入一个满缓冲区,就从回收队列中取出一个空缓 区填入其包缓冲区环中。优选的,所述方法中包缓冲区队列采用并发无锁队列(Concurrent Lock-freeQueue, CLF)实现。优选的,所述方法中分发队列用于传输要处理的包缓冲区元信息,回收队列用于传输空闲的包缓冲区元信息。优选的,所述方法中回收队列中预填充的空闲缓冲区数量设置为回收队列大小减去批处理长度或一个Cache line长度。优选的,所述方法中包缓冲区元信息进行压缩处理。优选的,所述方法中当元信息包含至少两个地址时,对出(入)队指令进行优化处理。本专利技术提供了支持零拷贝的高效包缓冲区管理方法,通过设计称为BIFIFO(Bi-First In First Out Queues, BIFIF0)的高性能包缓存管理算法,该算法通过独立管理每条流水线的包缓冲区。这么做的目的是避免引入全局的包缓冲区管理机制,以免在生产者一侧产生队头阻塞问题和加剧核间通信冲突。对于每条流水线,使用两条长度相同的、独立的包缓冲区队列在生产者和消费者之间交换空、满缓冲区(因此取名为BIFIF0)。采用空、满缓冲区交换是为了避免动态分配包缓冲区的开销,每对生产者-消费者单独使用一条回收队列是为了避免使用共享回收队列(池)而产生的多生产者-单消费者问题。本专利技术优选采用高性能高速缓存优化的并发无锁队列(Concurrent Lock-free Queue, CLF)实现包缓冲区队列,以提高生产者和消费者之间的通信效率。每一条流水线的相邻两个阶段用一对无锁队列(BIFIFO)连接,分发队列用于传输要处理的包缓冲区元信息,回收队列用于传输空闲包缓冲区元信息。相对于现有技术中的方案,本专利技术的优点是本专利技术有效解决了流水并行模式下实现零拷贝的高速网络包处理面临的包内存管理问题,它通过无锁先进先出队列避免了不同流水阶段包内存分配和释放的显示同步过程,通过划分流水并行全局包内存管理为多条独立的单流水包内存管理避免了全局的包管理竞争,通过交换机制实现了每条单流水内的包缓存管理过程,同时精心设计的回收队列的填充度不仅保证了单生产者可以在某个消费者阻塞时也能顺利的完成数据包的分配,而且优化了无锁先进先出队列的高速缓存性能。实验显示,由BIFIFO构成的七条并发流水系统最高实现了 67Mpps (MillionPackets per Second)的数据包分发速度,意味着采用BIFIFO的单生产者可以同时为七条流水提供67Mpps的数据包分配速度,远远超过了传统的内存分配器性能。附图说明下面结合附图及实施例对本专利技术作进一步描述图I为现有技术中基本流水并行策略;图2为本专利技术的BIFIFO结构;图3为由BIFIFO构成多核并行网络处理系统。具体实施方式 以下结合具体实施例对上述方案做进一步说明。应理解,这些实施例是用于说明本专利技术而不限于限制本专利技术的范围。实施例中采用的实施条件可以根据具体厂家的条件做进一步调整,未注明的实施条件通常为常规实验中的条件。实施例本实施例高性能包缓存管理算法通过独立管理每条流水线的包缓冲区。这么做的目的是避免引入全局的包缓冲区管理机制,以免在生产者一侧产生队头阻塞问题和加剧核间通信冲突。对于每条流水线,使用两条长度相同的、独立的包缓冲区队列在生产者和消费者之间交换空、满缓冲区(因此取名为BIFIF0)。如图2所示,生产者将装有数据包的缓冲区插入分发队列Q0,消费者将回收的包缓存区插入回收队列Ql ;生产者每向QO中插入一个满缓冲区,就从Ql中取出一个空缓冲区填入其包缓冲区环中。采用空、满缓冲区交换是为了避免动态分配包缓冲区的开销,每对生产者-消费者单独使用一条回收队列是为了避免使用共享回收队列(池)而产生的多生产者-单消费者问题。本专利技术优选采用高性能高速缓存优化的并发无锁队列(Concurrent Lock-freeQueue, CLF)本文档来自技高网
...

【技术保护点】
一种基于流水线模式的数据包零拷贝的核间通信方法,所述方法产生于通用多核平台核与核间,所述通用多核平台的核作为生产者或者消费者按照流水线模式进行核间通信,其特征在于进行核间通信时还包括在每一条流水线的相邻两个核之间设置一对长度相同的、独立的包缓冲区队列;通过包缓冲区队列在作为生产者的核与作为消费者的核之间交换空、满缓冲区的步骤;当作为生产者的核将装有数据包的满缓冲区插入包缓冲区队列分发队列,作为消费者的核将回收的空缓存区插入包缓冲区队列回收队列;当作为生产者的核每向分发队列中插入一个满缓冲区,就从回收队列中取出一个空缓冲区填入其包缓冲区环中。

【技术特征摘要】
1.一种基于流水线模式的数据包零拷贝的核间通信方法,所述方法产生于通用多核平台核与核间,所述通用多核平台的核作为生产者或者消费者按照流水线模式进行核间通信,其特征在于进行核间通信时还包括在每一条流水线的相邻两个核之间设置一对长度相同的、独立的包缓冲区队列;通过包缓冲区队列在作为生产者的核与作为消费者的核之间交换空、满缓冲区的步骤;当作为生产者的核将装有数据包的满缓冲区插入包缓冲区队列分发队列,作为消费者的核将回收的空 缓存区插入包缓冲区队列回收队列;当作为生产者的核每向分发队列中插入一个满缓冲区,就从回收队列中取出一个空缓冲区填入其包缓冲区环中。2.根据权利要求I所述的方法...

【专利技术属性】
技术研发人员:王燕飞华蓓王俊昌张凯刘思诚
申请(专利权)人:中国科学技术大学苏州研究院
类型:发明
国别省市:

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

1