CN101276294A - 异态性数据的并行处理方法和处理装置 - Google Patents

异态性数据的并行处理方法和处理装置 Download PDF

Info

Publication number
CN101276294A
CN101276294A CNA2008100979064A CN200810097906A CN101276294A CN 101276294 A CN101276294 A CN 101276294A CN A2008100979064 A CNA2008100979064 A CN A2008100979064A CN 200810097906 A CN200810097906 A CN 200810097906A CN 101276294 A CN101276294 A CN 101276294A
Authority
CN
China
Prior art keywords
data
processor
shared resource
exclusive access
processing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CNA2008100979064A
Other languages
English (en)
Other versions
CN101276294B (zh
Inventor
卢胜文
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Ziguang Communication Technology Group Co ltd
Original Assignee
Hangzhou H3C Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hangzhou H3C Technologies Co Ltd filed Critical Hangzhou H3C Technologies Co Ltd
Priority to CN2008100979064A priority Critical patent/CN101276294B/zh
Publication of CN101276294A publication Critical patent/CN101276294A/zh
Application granted granted Critical
Publication of CN101276294B publication Critical patent/CN101276294B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Multi Processors (AREA)

Abstract

本发明公开了一种异态性数据的并行处理方法和处理装置。该方法包括:接收到涉及共享资源独占性访问的数据的任一处理器将该数据输出到指定的缓存队列中;对该指定的缓存队列中的数据按照排队或限速的方式重新输入该多处理器,使同时至多一个处理器对其进行接收和处理。该装置包括与多处理器连接的、包括缓存队列和发送模块的缓存单元,缓存队列用于缓存任一处理器发送的涉及共享资源独占性访问的数据,发送模块用于将缓存队列中的数据按照排队或限速的方式执行重新输入,使同时至多一个处理器对其进行接收和处理。本发明避免了共享资源的竞争,保证了并行处理的性能且易于实现。

Description

异态性数据的并行处理方法和处理装置
技术领域
本发明涉及数据处理技术领域,尤其涉及一种异态性数据的并行处理方法和处理装置。
背景技术
为了提高数据处理性能,现有技术中往往采用数据并行处理的方式,比如采用多个处理引擎,或者采用多个处理器,或者采用多核处理器,等等,从而提供对繁重计算的支持。为了描述方便起见,我们将多处理引擎、多处理器和处理器的多核统一称为多处理器,但本领域普通技术人员可以理解,该并行处理方式可以有不局限于上述举例的不同实现机制。
但是,在数据的并行处理过程中,所处理的数据往往具有异态性,比如部分数据处理涉及共享资源的独占性访问而其他数据不涉及,其中,所指的共享资源独占性访问是指需要对共享资源的独占排他性使用,这种情况下,如果有其他处理器同时进行共享资源的相关操作,将造成共享资源的处理冲突和数据错误。
在上述这种异态性数据的处理过程中,单纯的并行处理方式有可能面临处理性能急剧下降的问题:为了避免不同处理器对于共享资源的独占性访问冲突,必须在并行处理方式下使用令牌或者锁的机制——只有获得了令牌或者锁的一个处理器能够进行共享资源的独占性访问,而其他需要共享资源独占性访问的处理器不得不进入挂起状态,直到获得令牌;显然,这些处理器事实上进行的是共享资源的串行访问处理,被挂起的处理器无法再同时处理其他数据。这种情况下,如果并行处理方式下同时有多个处理器需要进行共享资源的独占性访问处理,那么由于未获得令牌或锁的处理器挂起,将使得不涉及共享资源独占性访问的数据只能通过所剩为数较少、未因涉及共享资源独占性访问而挂起的处理器进行处理;在全部处理器都因涉及共享资源独占性访问而挂起的极端情况下,并行处理事实上成为了串行处理,即使这些不涉及共享资源独占性访问的数据也只能进入等待状态,直到有处理器被释放出来。
上述异态性数据导致的并行处理性能急剧下降问题处理工作方式的不同,其影响的严重程度也有所区别。在非流水线工作方式下,由于整个处理过程可视为一个处理环节,因此资源的释放和重新分配相对灵活,影响程度相对较小;而在流水线工作方式下这种并行处理性能的下降体现的尤为明显。所谓流水线工作方式,是将数据处理过程分为不同的处理环节,每个处理环节由多个处理器并行完成特定的工作,从而大大提高处理效率;这种情况下,由于后续处理环节的处理器依赖于前一处理环节处理器输出的数据,因此,当其中一个处理环节因为涉及共享资源独占性访问的数据发生挂起导致数据拥塞,那么流水线上其后续的处理器都会随之进入等待状态,流水线处理的优势将丧失殆尽。
举例来说,网络地址转换(Network Address Translation)处理被广泛用来扩展IPv4地址,且为了提高NAT处理性能,一般采用多个网络处理器或者多核网络处理器或者多引擎的网络处理器进行处理。特别是,现有技术中NAT业务往往采用流水线处理方式,比如一个NAT包的处理过程被可以被分解为以下4个处理环节且每一处理环节具有多个处理器:报文内容提取、会话表项查询、查询结果处理以及报文修改,该修改可能涉及IP地址的修改或者IP地址和端口的共同修改。
其中,NAT包分为NAT首包和NAT后续包两种,其中,NAT首包的处理过程包括:表项查找结果为不存在该包对应的NAT流表(也称NAT会话表,用于记录相应流的NAT变换关系),因此进行NAT地址池和变换类型的获取,根据NAT规则分配IP和端口并创建首包所在流的正、反向NAT流表(也称NAT会话表,用于记录相应流的NAT变换关系),以及在完成地址转换后转发出去;NAT后续包的处理过程包括:表项查找结果为存在该包对应的NAT流表,因此通过流表直接查找进行地址转换后转发出去;NAT后续包流程的处理速度通常比首包流程的处理速度快数十倍甚至数百倍。
由于在NAT首包处理过程中,需要从少量的公网NAT地址池中选择空闲的地址和端口,因此在表项结果处理环节涉及到共享资源独占性访问的问题,NAT首包和后续包的异态性问题就会显现出来,即,如果在上述表项结果处理环节中使用令牌或者锁的机制来避免资源冲突,就意味着该环节仅有一个处理NAT首包的处理器能够进行处理,而该环节的其他同时处理NAT首包的处理器必需挂起等待资源可用,后续环节的报文修改处理器也不得不空置以等待前面的处理器处理完毕。这种情况下,即使处理器对NAT后续包的处理速度远远高于对于NAT首包的处理速度,但也只能有部分未被挂起的处理器执行对NAT后续包的处理,甚至于极端情况下,所有的处理器都被NAT首包占用,NAT后续包只能等待有处理器释放出来,即后续的NAT数据包要等待的时间至少数十倍甚至数百倍于自身处理时间,因此NAT转发性能将急剧下降。
另外需要指出的现有技术缺陷是,如果采用锁或令牌的机制在并行处理环节下(流水线方式或者非流水线方式)进行数据处理,那么需要在该环节不同的处理器上反复进行令牌转移或者加锁/解锁处理,这种处理极为复杂,开发代价很高。同时,复杂的加锁/解锁过程容易导致处理漏洞的产生,如果被加锁的处理器由于失误或者程序纰漏未获得及时解锁,将导致整个处理过程的瘫痪。
发明内容
本发明的实施例旨在提供能够并行处理异态性数据的技术方案,达到避免共享资源冲突且保证处理性能的目的。
为实现上述目的,本发明的实施例提供了一种异态性数据的并行处理方法,适用于多处理器为部分涉及共享资源独占性访问的异态性数据提供并行处理的情况,包括以下步骤:
S1、接收到涉及共享资源独占性访问的数据的任一处理器将该数据输出到指定的缓存队列中;
S2、对该指定的缓存队列中的数据按照排队或限速的方式重新输入所述多处理器,使同时至多一个处理器对其进行接收和处理。
本发明的实施例还提供了一种异态性数据的并行处理装置,包括为部分涉及共享资源独占性访问的异态性数据提供并行处理的多处理器,还包括一与该多处理器连接的缓存单元,该缓存单元包括缓存队列和发送模块;该多处理器用于直接处理接收到的未涉及共享资源独占性访问的数据,以及,将接收到的涉及共享资源独占性访问的数据转发到该缓存队列;该缓存队列用于缓存任一处理器发送的涉及共享资源独占性访问的数据;该发送模块与该缓存队列连接,用于将该缓存队列中的数据按照排队或限速的方式重新输入该多处理器,使同时至多一个处理器对其进行接收和处理。
由上述技术方案可知,本发明的实施例通过二次输入进行共享资源独占性访问的数据,采用限速或者排队避免处理器竞争,具有以下有益效果:
1、保证同一时刻至多一个处理器进行共享资源独占性访问,避免了共享资源的竞争;
2、克服采用令牌或锁的机制所导致的并行处理能力下降的问题,保证了并行处理的性能;
3、无需频繁调度,易于实现。
通过以下参照附图对优选实施例的说明,本发明的上述以及其它目的、特征和优点将更加明显。
附图说明
图1为本发明提供的异态性数据的并行处理方法一实施例的流程图;
图2A~图2D为图1所示方法的具体实施例的流程图;
图3为图1所示方法进行NAT数据包处理的一实施例的流程图;
图4A、4B为图3所示方法在四级流水线工作方式下的处理过程的示意图;
图5为本发明提供的异态性数据的并行处理装置一实施例的框图;
图6A~图6D为图5所示装置的具体实施例的框图。
具体实施方式
下面将详细描述本发明的具体实施例。应当注意,这里描述的实施例只用于举例说明,并不用于限制本发明。
首先,必须说明的是,本发明所称的异态性数据,是指在处理中部分涉及共享资源独占性访问,部分不涉及共享资源独占性访问的数据,亦即从共享资源独占性访问的角度显示出不同状态的数据。由于现有技术中采用令牌或锁的机制来避免共享资源访问冲突,导致了不涉及共享资源独占性访问的数据也受到处理器挂起的影响造成处理性能的下降,本发明正是针对上述现有技术的缺陷,提供一种在多处理器环境中,不采用令牌或锁得机制来保证共享资源不发生冲突的方案,以提升异态性数据的并行处理性能,同时降低实现复杂度。
请结合附图1,示出了本发明提供的异态性数据的并行处理方法一实施例的流程图,适用于多处理器为部分涉及共享资源独占性访问的异态性数据提供并行处理的情况。有必要指出,这里所指的多处理器,是指对异态性数据进行区别性处理的多处理器,比如对于流水线工作方式下的前期处理器而言,由于并未涉及到共享资源独占性访问,数据的异态性并未体现,因此这些前期处理器并不适用于下述处理方法,沿用其现有技术中的处理模式即可。
本实施例包括以下步骤:
S1、接收到涉及共享资源独占性访问的数据的任一处理器将该数据输出到指定的缓存队列中;
从步骤S1的执行可以看出,即使首次接收到涉及共享资源独占性访问数据的处理器为多个,由于其并不执行共享资源的独占性访问,因此无需进行处理器的挂起和等待操作,而是将涉及共享资源独占性访问的数据送入缓存队列之后即可进行下一数据的处理,不会产生处理瓶颈;
S2、对该指定的缓存队列中的数据按照排队或限速的方式重新输入该多处理器,使同时至多一个处理器对其进行接收和处理;
从步骤S2的执行可以看出,同时至多一个处理器的数据处理,实现的是共享资源的串行访问,能够保证不会发生共享资源竞争;由于在采用令牌或者锁的情况下,实际的共享资源独占性访问也是串行处理,因此,上述步骤S2中的缓冲操作并不会降低涉及共享资源独占性访问的数据的处理效果。
特别是,由于涉及共享资源独占性访问的数据仅占用一个处理器,因此其它处理器可以被解放出来进行不涉及共享资源独占性访问的数据处理,事实上大大提高了处理器并行处理的速度,使并行处理的性能更加均匀。与此同时,由于不用在各处理器之间进行令牌或者锁的申请、释放及交换,实现起来的难度和成本大为降低。
较佳的,步骤S1之前还包括步骤S0:对接收到的数据进行识别,如果涉及共享资源独占性访问,对所述数据执行步骤S1;如果不涉及共享资源独占性访问,则依照现有技术中各处理器的处理方式不变,即由当前处理器直接处理。
作为具体的实施例,根据处理器所处的不同处理环境(例如,流水线工作方式和非流水线工作方式)和采取的不同处理手段(例如,排队和限速),上述步骤可以具有不同的实现方式。
对于非流水线工作方式而言,多处理器中的每一个都独立完成数据处理的全过程,其对于异态性数据的并行处理方法的实现相对简单。
请结合图2A,显示了图1所示方法在非流水线工作方式下通过排队方式实现调度的一个具体实施例,包括以下步骤:
SA1、指定一处理器并为其设置缓存队列作为指定的缓存队列,这也就意味着,从该缓存队列输出的数据仅能够被该指定处理器所处理,如果指定的处理器忙,就需要一直等待,从而保证共享资源的串行访问;
SA2、任一处理器对非从该缓存队列接收到的数据进行识别,涉及共享资源独占性访问,则执行步骤SA3,否则不涉及共享资源独占性访问,执行步骤SA5;
SA3、将涉及到共享资源独占性访问的数据输出到指定的缓存队列中;
SA4、排队在缓存队列中的数据依次重新输入该指定的处理器中,被该处理器串行顺序处理,包括进行共享资源的独占性访问以及其它后续处理;
SA5、直接进行数据处理。
有必要指出的是,在初始化阶段数据的进入是随机的,也就是任何数据都有可能进入该指定的处理器进行处理;与其它未被指定的处理器一样,该指定的处理器对于不涉及共享资源独占性访问的数据直接处理,同时将涉及共享资源独占性访问的数据送入缓存队列。但是,当缓存队列中具有数据之后,该指定的处理器就会在上一个数据释放后,被占用进行缓存队列中数据的串行处理,直到缓存队列中的数据处理完成再进入自由接收状态。显然,当并行处理过程中有大量涉及共享资源独占性访问的数据时,该指定的处理器相当于专职进行共享资源串行访问的处理器,将其它的处理器解放出来进行不涉及共享资源独占性访问的数据的处理。
请结合图2B,显示了图1所示方法在非流水线工作方式下通过限速方式实现调度的一个具体实施例,包括以下步骤:
SB1、预先设置一专用的缓存队列作为指定的缓存队列,此时,该缓存队列是独立设置的,即从该缓存队列输出的数据可能输出到多处理器的任意一个;
SB2、任一处理器对非从该缓存队列接收到的数据进行识别,涉及共享资源独占性访问,则执行步骤SB3,否则不涉及共享资源独占性访问,执行步骤SB5;
SB3、将该涉及共享资源独占性访问的数据输出到指定的缓存队列中;
SB4、将该缓存队列的数据按照预设的速率,重新输入到并行处理器中,由接收到的处理器进行包括共享资源独占性访问在内的处理;其中,该预设的速率不大于数据完成处理器处理的速率;
SB5、直接进行数据处理。
可以理解,由于步骤SB4中缓存队列发送数据的速率不大于数据完成处理器处理的速率,因此,只有在前一个涉及共享资源独占性访问的数据被处理完成后,下一个涉及共享资源独占性访问的数据才会进入;这也就意味着,同一时刻,至多有一个处理器在进行共享资源的独占性访问,因此不会出现共享资源的竞争,也无需进行令牌或者锁的调度。
在具体实现上,不同类型业务数据的处理可能具有不同的速率,实际取值可由网络管理人员根据经验值进行选取,比如一个NAT数据包首包的整体处理包括查询会话表、NAT地址资源的申请、NAT会话表的创建以及NAT转换和转发,依据特定的设备性能具有趋于一致的处理速率,可依此作为限速的依据。具体的限速操作可以通过NP或者包处理器等具有硬件流量整形功能的设备实现。
与非流水线工作方式相比较,流水线工作方式下对于异态性数据的并行处理方法的实现相对复杂一些,这是因为涉及共享资源独占性访问的多处理器可能仅仅是流水线中的一个处理环节,而其它处理环节的处理过程中,数据并不具有异态性的特征。
请结合图2C,显示了图1所示方法在流水线工作方式下通过排队方式实现调度的一个具体实施例,包括以下步骤:
SC1、预先为流水线的每一处理环节指定一处理器并为起始处理环节的指定处理器设置一缓存队列作为指定的缓存队列,其中,前一处理环节指定处理器的输出作为后一处理环节指定处理器的输入,因此,从该缓存队列输出的数据仅能够被流水线上相衔接的指定处理器所处理,如果任一环节的指定处理器忙,就需要一直等待,从而保证共享资源处理环节的串行访问;
SC2、对非从该缓存队列接收到的数据进行识别,涉及共享资源独占性访问,则执行步骤SC3,否则不涉及共享资源独占性访问,执行步骤SC5;
需要指出,在流水线工作方式下,进行数据识别的工作不一定要由执行数据处理的处理器进行,这种识别工作可能在前一处理环节就已经完成;
SC3、将涉及到共享资源独占性访问的数据输出到该指定的缓存队列中;
SC4、将该缓存队列的数据依次重新输入所述起始处理环节的指定处理器中,由该起始处理环节及之后处理环节的指定处理器依次进行包括共享资源独占性访问在内的处理;
SC5、由当前处理器及后续处理器直接进行数据处理。
可以看出,流水线处理方式下,缓存队列中的数据会重新进入流水线,由各级处理环节的指定处理器处理;较佳的,为了提高处理的效率,重新进入流水线的数据可以携带之前环节已经提取的信息,避免或者减少重复工作量。
需要指出的是,这种流水线排队处理方式是有一定的条件限制的,即要求程序在任何一级处理环节都能够实现数据控制,将其调度给指定的处理器来处理,因此,如果流水线芯片的各级处理器是由硬件自动调度,软件无法干预的话,这一方案将无法实现。
请结合图2D,显示了图1所示方法在流水线工作方式下通过限速方式实现调度的一个具体实施例,包括以下步骤:
SD1、预先设置一专用的缓存队列作为指定的缓存队列,此时,该缓存队列是独立设置的,即从该缓存队列输出的数据可能输出到多处理器的任意一个;
SD2、对非从该缓存队列接收到的数据进行识别,涉及共享资源独占性访问,则执行步骤SD3,否则不涉及共享资源独占性访问,执行步骤SD5;
同样的,在流水线工作方式下,进行数据识别的工作不一定要由执行数据处理的处理器进行,这种识别工作可能在前一处理环节就已经完成;
SD3、将涉及到共享资源独占性访问的数据输出到该指定的缓存队列中;
SD4、将缓存队列中的数据按照预设的速率,重新输入到起始处理环节中,由该起始处理环节及之后处理环节中接收到缓存队列输入的数据的处理器进行包括共享资源独占性访问在内的处理;其中,该预设的速率不大于数据完成共享资源独占性访问的速率;
SD5、由当前处理器及后续处理器直接进行数据处理。
由于步骤SD4中缓存队列发送数据的速率不大于完成共享资源独占性访问的速率,因此,在前一个涉及共享资源独占性访问的数据被处理完成时或者之后,下一个涉及共享资源独占性访问的数据才会进入;因此同一时刻,涉及共享资源独占性访问的环节至多有一个处理器在进行处理,因此不会出现共享资源的竞争,也无需进行令牌或者锁的调度。
在具体实现上,可以通过NP或者包处理器等具有硬件流量整形功能的设备,根据实际业务数据的处理速率经验值进行限速。较佳的,在保证不会发生资源抢占的情况下,为了提高处理性能,该限速速率的取值不应太小,比如,可以设定该速率不小于数据完成全部处理环节的速率,以免造成缓存队列中数据的长时间等待。
需要指出,上述实施例是以所有数据都涉及到同一共享资源独占性访问为例进行说明,对于涉及不同共享资源独占性抢占的数据,可以分别输入不同的缓存队列,每一缓存队列均采用上述实施例提供的技术方案。
本领域普通技术人员可以理解,上述方法适合于包括计算机数据处理、电信业务等等所有并行处理部分数据涉及共享资源独占性访问、部分数据不涉及共享资源独占性访问的异态性数据的场合,从而达到避免共享资源竞争、提高处理性能以及降低实现复杂度的目的。
为了便于理解,本发明还提供了使用上述方法进行NAT数据包处理的具体实施例。
其中,NAT数据包的处理过程中,NAT首包的处理涉及到了NAT地址资源的申请和NAT会话表的建立,即涉及到了共享资源的独占性访问,而NAT后续包的处理仅是简单的依照NAT会话表进行报文修改和转发,并未涉及到共享资源的独占性访问问题,因此在某些处理环节表现出了异态性数据的特征。
假设一个15M PPS处理能力的网络处理器,能够最大支持300KPPS的新建流;如果按现有技术来处理,如果有大于300KPPS的新建流到来时,处理器被新建流大量或者全部占用,同时被锁住等候资源释放,极有可能会导致与新建流混在一起的后续NAT数据包被严重阻塞,导致转发性能严重下降。特别是按照流水线工作方式进行并行处理的芯片,由于通常要求在上级流水线处理器加锁、在下级流水线处理器解锁,涉及多级流水线处理器的操作,严重影响流水线的处理效率,且容易出错。
本发明实施例所提供的异态性数据的并行方法通过保持一个处理器进行NAT首包的串行处理,其他处理器进行NAT后续包的并行处理,能够很好的解决上述问题。
由于排队工作方式较为本领域技术人员熟知,因此,这里就限速情况进行一简单介绍,其基本思路为控制NAT首包的报文流量,保证一个处理器能够完全完成NAT首包即新建流的处理,报文如果按照这个速率进入,就不会发生多个处理器同时进行NAT地址池竞争的情况。请结合图3,包括以下步骤:
(1)判断接收到的是NAT首包还是后续包,即将需要竞争共享资源的,性能低的新建流的数据包识别出来;具体识别步骤包括:
S01、对于接收到的NAT会话数据包,提取其IP五元组信息;
S02、根据该IP五元组信息执行NAT会话表查询;
S03、如果NAT会话表匹配失败,则该NAT会话数据包为NAT首包,执行以下步骤;如果匹配成功,则该NAT会话数据包为NAT后续包,根据该NAT会话表内容执行NAT转换后转发。
(2)接收到该NAT首包的处理器将其输出到指定的缓存队列中;
(3)进行流量整形,包速率V小于最大新建流的处理速率;这样,NAT首包的输出速率降低,保证同一时刻仅有一个处理器在接收处理,不会出现共享资源竞争的情况;
(4)经过整形的NAT首包再重新进入处理器进行新建流的流程处理,完成NAT地址资源的申请和会话表的创建,然后转发;
需要指出,在保证不会出现资源竞争的情况下,V的取值应尽可能大。
下面以一个按四级流水线方式工作的网络处理器使用图3所示NAT数据包处理方法的情况为例进行具体说明,请参见图4A:
当一个NAT首包进入时,报文内容提取环节的处理器从报文中得到查询NAT会话表的关键字,进入会话表项查询环节进行会话表查找;首包必然在NAT会话表中查询不到,因此查询表项处理环节的处理器将该NAT首包送入缓存队列进行流量整形后,再重新返回到流水线进行报文处理:对报文进行内容提取后,完成NAT新建流所必需的各种查表操作,然后根据查表结果进行NAT转换所需的地址和端口的获取,完成地址端口转换后,将报文发送出去;
对于后续包,报文内容提取环节的处理器从报文中得到查询NAT会话表的关键字,进入会话表项查询环节进行会话表查找;直接命中NAT会话表,完成地址转换后将报文发送出去。
可以看出,对于NAT数据包使用本发明进行处理后,无需使用令牌或者锁的机制,虽然对新建流性能会有所影响,但原来的方案加锁后实际也只有单引擎工作,所以影响并不大,同时能够极大地提高转发的性能,使得整体性能更为均匀。
同时需要指出,本实施例中是在流水线的查询表项处理环节将涉及共享资源独占性访问的数据输入到缓存队列,但对于一些不可中途退出的流水线芯片,则需要经历报文修改环节后再输入缓存队列,具体可以通过标记等方式实现直接通过,避免报文修改环节对其加以处理,如图4B所示。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,所述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,包括如下步骤:
S1、接收到涉及共享资源独占性访问的数据的任一处理器将所述数据输出到指定的缓存队列中;
S2、将所述指定的缓存队列中的数据按照排队或限速的方式重新输入所述多处理器,使同时至多一个处理器对其进行接收和处理。
所述的存储介质包括:ROM/RAM(Read Only Memory/Random-Access Memory,只读存储器/随机访问内存)、磁碟或者光盘等。
相应的,本发明还提供了异态性数据的并行处理装置的实施例。
请参见图5,显示了上述并行处理装置100的框图,包括为部分涉及共享资源独占性访问的异态性数据提供并行处理的多处理器101,还包括一与该多处理器101连接的缓存单元102,该缓存单元102包括缓存队列1021和发送模块1022。
其中,该多处理器101用于直接处理接收到的未涉及共享资源独占性访问的数据,以及,将接收到的涉及共享资源独占性访问的数据转发到缓存队列1021;
缓存队列1021用于缓存任一处理器101发送的涉及共享资源独占性访问的数据;
发送模块1022与缓存队列1021连接,用于将缓存队列1021中的数据按照排队或限速的方式重新输入多处理器101,使同时至多一个处理器对其进行接收和处理。
由上述提供的并行处理装置100,即使首次接收到涉及共享资源独占性访问的数据的处理器101为多个,由于其并不执行共享资源的独占性访问,因此无需进行处理器的挂起和等待操作,而是将涉及共享资源独占性访问的数据送入缓存队列1021之后即可进行下一数据的处理,不会产生处理瓶颈;
而通过发送模块1022的调度,同时至多一个处理器101进行涉及共享资源独占性访问的数据处理,实现的是共享资源的串行访问,能够保证不会发生共享资源竞争;由于在采用令牌或者锁的情况下,实际的共享资源独占性访问也是串行处理,因此,上述缓冲操作并不会降低涉及共享资源独占性访问的数据的处理效果;
以及,由于涉及共享资源独占性访问的数据仅占用一个处理器101,因此其它处理器101可以被解放出来进行不涉及共享资源独占性访问的数据处理,事实上大大提高了处理器并行处理的速度,使并行处理的性能更加均匀;
与此同时,由于不用在各处理器101之间进行令牌或者锁的申请、释放及交换,大大降低了代码的处理复杂度,实现起来的难度和成本大为降低。
作为具体的实施例,根据处理器101所处的不同处理环境(例如,流水线工作方式和非流水线工作方式)和采取的不同处理手段(例如,排队和限速),上述并行处理装置可以具有不同的实现方式。
在非流水线工作方式下,每个处理器101都会执行数据的完整处理操作,因此其本身设有数据识别功能,以区分数据是否涉及共享资源的独占性访问。
请结合图6A,显示了排队处理方式下并行处理装置100的一个具体实施例,该发送模块1022与一指定处理器101的输入连接,将涉及共享资源独占性访问的数据依次重新输入该指定的处理器中,由该指定的处理器对输入的数据进行包括共享资源独占性访问在内的处理。这也就意味着,从该缓存队列1021输出的数据仅能够被该指定处理器101所处理,如果指定的处理器101忙,就需要一直等待,从而保证共享资源的串行访问。
请结合图6B,显示了限速处理方式下并行处理装置100的一个具体实施例,该发送模块1022与多处理器101的输入连接,将涉及共享资源独占性访问的数据按照预设的速率,重新输入到多处理器101中,由接收到缓存队列1021输入的数据的处理器101进行包括共享资源独占性访问在内的处理;其中,预设的速率不大于数据完成处理器处理的速率。可以看出,这种输入是随机的,但由于速率设置的关系,只有在前一个涉及共享资源独占性访问的数据被处理完成后,下一个涉及共享资源独占性访问的数据才会进入;因此同一时刻,至多有一个处理器在进行共享资源的独占性访问,因此不会出现共享资源的竞争,也无需进行令牌或者锁的调度。
相对的,在流水线工作方式下,本发明所提到的处理器101可能仅会执行数据的有关共享资源独占性访问环节的处理操作,其可能本身设有数据识别功能,也可能在其前面环节设有专门进行数据识别的处理器,处理器101根据前面环节处理器的识别结果区分数据是否涉及共享资源的独占性访问。
请结合图6C,显示了排队处理方式下并行处理装置100的一个具体实施例。该流水线中前一处理环节指定处理器的输出作为后一处理环节指定处理器的输入,且发送模块1022与起始处理环节的一指定处理器连接,将涉及共享资源独占性访问的数据依次重新输入起始处理环节的指定处理器中,由起始处理环节及之后处理环节的指定处理器对缓存队列1021输入的数据依次进行包括共享资源独占性访问在内的处理。因此,从该缓存队列1021输出的数据仅能够被流水线上相衔接的指定处理器所处理,如果任一环节的指定处理器忙,就需要一直等待,从而保证共享资源处理环节的串行访问。
有必要指出的是,流水线排队处理的实现方案需要具备一定的条件才能够加以实现,即程序在任何一级处理环节都能够实现数据控制,将其调度给指定的处理器来处理,而不能够是硬件的自动调度。
请结合图6D,显示了限速处理方式下并行处理装置100的一个具体实施例。该发送模块1022与起始处理环节的并行处理器连接,将涉及共享资源独占性访问的数据按照预设的速率,重新输入到起始处理环节中,由起始处理环节及之后处理环节中接收到所述缓存队列1021输入的数据的处理器进行包括共享资源独占性访问在内的处理;其中,预设的速率不大于数据完成共享资源独占性访问的速率。
可以看出,在前一个涉及共享资源独占性访问的数据被处理完成时或者之后,下一个涉及共享资源独占性访问的数据才会进入;因此同一时刻,涉及共享资源独占性访问的环节至多有一个处理器在进行处理,因此不会出现共享资源的竞争,也无需进行令牌或者锁的调度。较佳的,为了避免缓存队列1021中数据过长时间等待,可以设置预设的速率不小于数据完成全部处理环节的速率。
本领域普通技术人员可以理解,上述方法适合于包括计算机数据处理、电信业务等等所有并行处理部分数据涉及共享资源独占性访问、部分数据不涉及共享资源独占性访问的异态性数据的场合,从而达到避免共享资源竞争、提高处理性能以及降低实现复杂度的目的。
为了便于理解,本发明还提供了使用上述方法进行NAT数据包处理的具体实施例。
并行处理装置100采用流水线工作方式,依次包括进行报文元素提取的多处理器、进行表项查找的多处理器、进行表项结果处理的多处理器101以及进行报文修改的多处理器;其中,进行表项结果处理的多处理器101与缓存单元102连接,缓存单元102与进行报文元素提取的多处理器连接;进行表项结果处理的多处理器101用于将NAT首包发送给缓存单元102,将NAT后续包发送给进行报文修改的多处理器执行NAT转换后转发,以及,对于从缓存单元102重新输入的NAT首包,进行NAT地址资源的申请和NAT会话表的创建,并发送给进行报文修改的多处理器执行NAT转换后转发。
通过上述并行处理装置100,无需使用锁,就可以避免对NAT地址池的抢占,不会对新建流的处理构成大的影响,同时能够保证后续包的转发性能,降低实现难度,使NAT业务的整体处理性能更为均匀。
虽然已参照几个典型实施例描述了本发明,但应当理解,所用的术语是说明和示例性、而非限制性的术语。由于本发明能够以多种形式具体实施而不脱离发明的精神或实质,所以应当理解,上述实施例不限于任何前述的细节,而应在随附权利要求所限定的精神和范围内广泛地解释,因此落入权利要求或其等效范围内的全部变化和改型都应为随附权利要求所涵盖。

Claims (17)

1.一种异态性数据的并行处理方法,适用于多处理器为部分涉及共享资源独占性访问的异态性数据提供并行处理的情况,其特征在于,包括以下步骤:
S1、接收到涉及共享资源独占性访问的数据的任一处理器将所述数据输出到指定的缓存队列中;
S2、将所述指定的缓存队列中的数据按照排队或限速的方式重新输入所述多处理器,使同时至多一个处理器对其进行接收和处理。
2.根据权利要求1所述的异态性数据的并行处理方法,其特征在于,所述步骤S1之前还包括步骤S0:对接收到的数据进行识别,如果涉及共享资源独占性访问,对所述数据执行步骤S1;如果不涉及共享资源独占性访问,则由当前处理器直接处理。
3.根据权利要求1所述的异态性数据的并行处理方法,其特征在于,在非流水线工作方式下,还包括预先指定一处理器并为其设置缓存队列作为指定的缓存队列的步骤;所述步骤S2包括:将所述涉及共享资源独占性访问的数据依次重新输入所述指定的处理器中,由所述指定的处理器对所述缓存队列输入的数据进行包括共享资源独占性访问在内的处理。
4.根据权利要求1所述的异态性数据的并行处理方法,其特征在于,在非流水线工作方式下,还包括预先设置一专用的缓存队列作为指定的缓存队列的步骤;所述步骤S2包括:将所述涉及共享资源独占性访问的数据按照预设的速率,重新输入到并行处理器中,由接收到所述缓存队列输入的数据的处理器进行包括共享资源独占性访问在内的处理;其中,所述预设的速率不大于数据完成处理器处理的速率。
5.根据权利要求1所述的异态性数据的并行处理方法,其特征在于,在流水线工作方式下,还包括预先为所述流水线的每一处理环节指定一处理器并为起始处理环节的指定处理器设置一缓存队列作为指定的缓存队列的步骤,其中,前一处理环节指定处理器的输出作为后一处理环节指定处理器的输入;所述步骤S2包括:将所述涉及共享资源独占性访问的数据依次重新输入所述起始处理环节的指定处理器中,由所述起始处理环节及之后处理环节的指定处理器对所述缓存队列输入的数据依次进行包括共享资源独占性访问在内的处理。
6.根据权利要求1所述的异态性数据的并行处理方法,其特征在于,在流水线工作方式下,还包括预先设置一专用的缓存队列作为指定的缓存队列的步骤;所述步骤S2包括:将所述涉及共享资源独占性访问的数据按照预设的速率,重新输入到起始处理环节中,由所述起始处理环节及之后处理环节中接收到所述缓存队列输入的数据的处理器进行包括共享资源独占性访问在内的处理;其中,所述预设的速率不大于数据完成共享资源独占性访问的速率。
7.根据权利要求1-6任一所述的异态性数据的并行处理方法,其特征在于,所述异态性数据为NAT会话的数据包。
8.根据权利要求7所述的异态性数据的并行处理方法,其特征在于,所述步骤S0包括:
S01、对于接收到的NAT会话数据包,提取其IP五元组信息;
S02、根据所述IP五元组信息执行NAT会话表查询;
S03、如果NAT会话表匹配失败,则所述NAT会话数据包为NAT首包,执行步骤S1;如果匹配成功,则所述NAT会话数据包为NAT后续包,根据所述NAT会话表内容执行NAT转换后转发。
9.根据权利要求7所述的异态性数据的并行处理方法,其特征在于,所述步骤S2中进行共享资源的独占性访问处理包括:进行NAT地址资源的申请和NAT会话表的创建,以使后续根据所述创建的会话表内容执行NAT转换后转发。
10.一种异态性数据的并行处理装置,包括为部分涉及共享资源独占性访问的异态性数据提供并行处理的多处理器,其特征在于,还包括一与所述多处理器连接的缓存单元,所述缓存单元包括缓存队列和发送模块;
所述多处理器用于直接处理接收到的未涉及共享资源独占性访问的数据,以及,将接收到的涉及共享资源独占性访问的数据转发到所述缓存队列;
所述缓存队列用于缓存任一处理器发送的涉及共享资源独占性访问的数据;
所述发送模块与所述缓存队列连接,用于将所述缓存队列中的数据按照排队或限速的方式重新输入所述多处理器,使同时至多一个处理器对其进行接收和处理。
11.根据权利要求10所述的异态性数据的并行处理装置,其特征在于,所述多处理器为非流水线工作方式下的多处理器,设有数据识别功能。
12.根据权利要求11所述的异态性数据的并行处理装置,其特征在于,所述发送模块与一指定处理器的输入连接,将所述涉及共享资源独占性访问的数据依次重新输入所述指定的处理器中,由所述指定的处理器对所述输入的数据进行包括共享资源独占性访问在内的处理。
13.根据权利要求11所述的异态性数据的并行处理装置,其特征在于,所述发送模块与所述多处理器的输入连接,将所述涉及共享资源独占性访问的数据按照预设的速率,重新输入到所述多处理器中,由接收到所述缓存队列输入的数据的处理器进行包括共享资源独占性访问在内的处理;其中,所述预设的速率不大于数据完成处理器处理的速率。
14.根据权利要求10所述的异态性数据的并行处理装置,其特征在于,所述多处理器为流水线工作方式下的涉及共享资源独占性访问处理环节中的多处理器,设有数据识别功能或者接收专门进行数据识别的处理器的处理结果。
15.根据权利要求14所述的异态性数据的并行处理装置,其特征在于,所述流水线中前一处理环节指定处理器的输出作为后一处理环节指定处理器的输入,且所述发送模块与起始处理环节的一指定处理器连接,将所述涉及共享资源独占性访问的数据依次重新输入所述起始处理环节的指定处理器中,由所述起始处理环节及之后处理环节的指定处理器对所述缓存队列输入的数据依次进行包括共享资源独占性访问在内的处理。
16.根据权利要求14所述的异态性数据的并行处理装置,其特征在于,所述发送模块与起始处理环节的并行处理器连接,将所述涉及共享资源独占性访问的数据按照预设的速率,重新输入到起始处理环节中,由所述起始处理环节及之后处理环节中接收到所述缓存队列输入的数据的处理器进行包括共享资源独占性访问在内的处理;其中,所述预设的速率不大于数据完成共享资源独占性访问的速率。
17.根据权利要求10-16任一所述的异态性数据的并行处理装置,其特征在于,所述异态性数据为NAT会话的数据包,所述装置采用流水线工作方式,依次包括进行报文元素提取的多处理器、进行表项查找的多处理器、进行表项结果处理的多处理器以及进行报文修改的多处理器;其中,所述进行表项结果处理的多处理器与所述缓存单元连接,所述缓存单元与所述进行报文元素提取的多处理器连接;所述进行表项结果处理的多处理器用于将NAT首包发送给所述缓存单元,将NAT后续包发送给所述进行报文修改的多处理器执行NAT转换后转发,以及,对于从所述缓存单元重新输入的NAT首包,进行NAT地址资源的申请和NAT会话表的创建,并发送给所述进行报文修改的多处理器执行NAT转换后转发。
CN2008100979064A 2008-05-16 2008-05-16 异态性数据的并行处理方法和处理装置 Active CN101276294B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2008100979064A CN101276294B (zh) 2008-05-16 2008-05-16 异态性数据的并行处理方法和处理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2008100979064A CN101276294B (zh) 2008-05-16 2008-05-16 异态性数据的并行处理方法和处理装置

Publications (2)

Publication Number Publication Date
CN101276294A true CN101276294A (zh) 2008-10-01
CN101276294B CN101276294B (zh) 2010-10-13

Family

ID=39995759

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2008100979064A Active CN101276294B (zh) 2008-05-16 2008-05-16 异态性数据的并行处理方法和处理装置

Country Status (1)

Country Link
CN (1) CN101276294B (zh)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103731356A (zh) * 2013-12-09 2014-04-16 福建星网锐捷网络有限公司 报文处理方法及装置
CN103902500A (zh) * 2014-03-21 2014-07-02 浪潮电子信息产业股份有限公司 一种非cache一致性协议加解锁报文处理方法
CN105637475A (zh) * 2014-09-16 2016-06-01 华为技术有限公司 并行访问方法及系统
CN106713023A (zh) * 2016-12-14 2017-05-24 东软集团股份有限公司 Cam表的操作方法及装置
CN108762810A (zh) * 2017-12-27 2018-11-06 北京时代民芯科技有限公司 一种基于并行微引擎的网络报文头处理器
CN108833299A (zh) * 2017-12-27 2018-11-16 北京时代民芯科技有限公司 一种基于可重构交换芯片架构的大规模网络数据处理方法
CN108897263A (zh) * 2018-09-13 2018-11-27 杭州华澜微电子股份有限公司 具有多维数据传输和处理功能的智能电路单元及其系统和控制方法
CN111045732A (zh) * 2019-12-05 2020-04-21 腾讯科技(深圳)有限公司 数据处理方法、芯片、设备及存储介质
CN111221858A (zh) * 2018-11-26 2020-06-02 阿里巴巴集团控股有限公司 一种数据处理方法、装置及设备
CN114374667A (zh) * 2021-12-28 2022-04-19 中国电信股份有限公司 一种分配nat ip的方法、装置及存储介质

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7464138B2 (en) * 2002-03-29 2008-12-09 International Business Machines Corporation Mirror queue in a shared queue environment
SE525748C2 (sv) * 2002-10-28 2005-04-19 Devlabs Ab Förfarande för direkta utskrifter i nätverk
FR2881239B1 (fr) * 2005-01-24 2007-03-23 Meiosys Soc Par Actions Simpli Procede de gestion d'acces a des ressources partagees dans un environnement multi-processeurs
CN100375067C (zh) * 2005-10-28 2008-03-12 中国人民解放军国防科学技术大学 异构多核微处理器局部空间共享存储方法
CN100367218C (zh) * 2006-08-03 2008-02-06 迈普(四川)通信技术有限公司 多核并行先进先出队列处理系统及方法

Cited By (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103731356B (zh) * 2013-12-09 2017-05-24 福建星网锐捷网络有限公司 报文处理方法及装置
CN103731356A (zh) * 2013-12-09 2014-04-16 福建星网锐捷网络有限公司 报文处理方法及装置
CN103902500A (zh) * 2014-03-21 2014-07-02 浪潮电子信息产业股份有限公司 一种非cache一致性协议加解锁报文处理方法
CN103902500B (zh) * 2014-03-21 2018-05-08 浪潮电子信息产业股份有限公司 一种非cache一致性协议加解锁报文处理方法
CN105637475A (zh) * 2014-09-16 2016-06-01 华为技术有限公司 并行访问方法及系统
CN105637475B (zh) * 2014-09-16 2019-08-20 华为技术有限公司 并行访问方法及系统
CN106713023A (zh) * 2016-12-14 2017-05-24 东软集团股份有限公司 Cam表的操作方法及装置
CN106713023B (zh) * 2016-12-14 2020-01-07 东软集团股份有限公司 Cam表的操作方法及装置
CN108762810B (zh) * 2017-12-27 2021-01-08 北京时代民芯科技有限公司 一种基于并行微引擎的网络报文头处理器
CN108762810A (zh) * 2017-12-27 2018-11-06 北京时代民芯科技有限公司 一种基于并行微引擎的网络报文头处理器
CN108833299A (zh) * 2017-12-27 2018-11-16 北京时代民芯科技有限公司 一种基于可重构交换芯片架构的大规模网络数据处理方法
CN108833299B (zh) * 2017-12-27 2021-12-28 北京时代民芯科技有限公司 一种基于可重构交换芯片架构的大规模网络数据处理方法
CN108897263A (zh) * 2018-09-13 2018-11-27 杭州华澜微电子股份有限公司 具有多维数据传输和处理功能的智能电路单元及其系统和控制方法
CN111221858A (zh) * 2018-11-26 2020-06-02 阿里巴巴集团控股有限公司 一种数据处理方法、装置及设备
CN111221858B (zh) * 2018-11-26 2023-07-04 阿里巴巴集团控股有限公司 一种数据处理方法、装置及设备
CN111045732A (zh) * 2019-12-05 2020-04-21 腾讯科技(深圳)有限公司 数据处理方法、芯片、设备及存储介质
CN111045732B (zh) * 2019-12-05 2023-06-09 腾讯科技(深圳)有限公司 数据处理方法、芯片、设备及存储介质
CN114374667A (zh) * 2021-12-28 2022-04-19 中国电信股份有限公司 一种分配nat ip的方法、装置及存储介质
CN114374667B (zh) * 2021-12-28 2024-04-16 中国电信股份有限公司 一种分配nat ip的方法、装置及存储介质

Also Published As

Publication number Publication date
CN101276294B (zh) 2010-10-13

Similar Documents

Publication Publication Date Title
CN101276294B (zh) 异态性数据的并行处理方法和处理装置
CN101950282B (zh) 一种多处理器系统及其同步引擎
CN108228354B (zh) 调度方法、系统、计算机设备和介质
EP3283974B1 (en) Systems and methods for executing software threads using soft processors
RU2597556C2 (ru) Структура компьютерного кластера для выполнения вычислительных задач и способ функционирования указанного кластера
CN102360309B (zh) 片上多核异构系统的调度系统与调度执行方法
US9772879B2 (en) System and method for isolating I/O execution via compiler and OS support
CN102752198B (zh) 多核报文转发方法、多核处理器及网络设备
US20120047514A1 (en) Scheduling system and method of efficiently processing applications
JPH09319600A (ja) リモート・プロシージャ・コールを実行する方法及びトランザクション・マネージャ
CN102467415A (zh) 一种业务面任务处理方法及设备
CN108605017B (zh) 查询计划和操作感知的通信缓冲区管理方法及装置
US11347546B2 (en) Task scheduling method and device, and computer storage medium
CN102135950A (zh) 基于星型互联架构的片上异构多核系统及其通信方法
CN101424941B (zh) 一种控制实现方法和系统
WO2004042571A2 (en) A communication method with reduced response time in a distributed data processing system
EP2759927B1 (en) Apparatus and method for sharing function logic between functional units, and reconfigurable processor thereof
CN108509257B (zh) 一种基于多线程的消息处理方法及装置
KR20150121108A (ko) 실행가능 코드를 실행하기 위한 방법, 처리 모듈 및 시스템
CN114995882B (zh) 一种异构结构系统包处理的方法
CN109298923A (zh) 深度流水线任务处理方法及装置
CN110287159A (zh) 一种文件处理方法及装置
CN101860486A (zh) 一种基于漏桶算法的动态负载均衡机制
US9015717B2 (en) Method for processing tasks in parallel and selecting a network for communication
CN1543133A (zh) 静态路由的刷新方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CP03 Change of name, title or address
CP03 Change of name, title or address

Address after: 310052 Binjiang District Changhe Road, Zhejiang, China, No. 466, No.

Patentee after: NEW H3C TECHNOLOGIES Co.,Ltd.

Address before: 310053 Hangzhou hi tech Industrial Development Zone, Zhejiang province science and Technology Industrial Park, No. 310 and No. six road, HUAWEI, Hangzhou production base

Patentee before: HANGZHOU H3C TECHNOLOGIES Co.,Ltd.

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20230810

Address after: 24th Floor, Block B, Zhizhen Building, No. 7 Zhichun Road, Haidian District, Beijing, 100088

Patentee after: Beijing Ziguang Communication Technology Group Co.,Ltd.

Address before: 310052 Changhe Road, Binjiang District, Hangzhou, Zhejiang Province, No. 466

Patentee before: NEW H3C TECHNOLOGIES Co.,Ltd.