CN101840328A - 一种数据处理方法及系统以及相关设备 - Google Patents

一种数据处理方法及系统以及相关设备 Download PDF

Info

Publication number
CN101840328A
CN101840328A CN201010150286A CN201010150286A CN101840328A CN 101840328 A CN101840328 A CN 101840328A CN 201010150286 A CN201010150286 A CN 201010150286A CN 201010150286 A CN201010150286 A CN 201010150286A CN 101840328 A CN101840328 A CN 101840328A
Authority
CN
China
Prior art keywords
packet
processor
order
label
bag
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
CN201010150286A
Other languages
English (en)
Other versions
CN101840328B (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.)
Chongqing City rang cloud Technology Co. Ltd.
Original Assignee
Huawei 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201010150286.3A priority Critical patent/CN101840328B/zh
Publication of CN101840328A publication Critical patent/CN101840328A/zh
Priority to GB201106392A priority patent/GB2479653B/en
Priority to US13/087,933 priority patent/US8848532B2/en
Application granted granted Critical
Publication of CN101840328B publication Critical patent/CN101840328B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17306Intercommunication techniques
    • G06F15/17325Synchronisation; Hardware support therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)

Abstract

本发明实施例公开了一种数据处理方法及系统以及相关设备,用于提高处理器的处理效率。本发明实施例方法包括:对接收到的同一数据流中的各数据包进行顺序存储;接收各处理器发送的取包命令;根据预置的调度规则从存储的数据包中为各处理器分别选择数据包进行处理;接收各处理器发送的标签切换命令,所述标签切换命令用以指示所述处理器已完成当前阶段的处理;按照先进先出的顺序对数据包进行标签切换,当标签切换完成之后,根据后续处理器发送的取包命令将所述数据包提供给后续处理器进行处理直至处理完成。本发明实施例还提供一种数据处理系统以及相关设备。本发明实施例可以有效提高处理器的处理效率。

Description

一种数据处理方法及系统以及相关设备
技术领域
本发明涉及数据处理领域,尤其涉及一种数据处理方法及系统以及相关设备。
背景技术
随着通信网络日益复杂,各种新型业务不断涌现,这就对网络业务流量的控制能力和网络安全提出了更高的要求,做为网络系统中的核心——通信处理器面临着更大的挑战,多核通信处理器为了解决高带宽的需求应运而生。
多核通信处理器在通信过程中存在多个技术难点,保序就是其中之一。多个处理器是并行处理各种数据包,但是对于同一个数据流中的数据包需要按照进来的顺序分发出去,而每个处理器之间处理数据包的延迟通常情况下都是不一致的,这样会导致先到的数据包可能晚处理完,而晚到的数据包有可能先处理完成,则必然会打乱数据包的顺序,影响真实的业务流。
多核通信处理器的通信过程中有一种模式称之为管道(PIPELINE)模式,在该模式下,一个数据包的处理需要多个处理器共同参与,每个处理器处理数据包的不同阶段,最终完成输出,由于一个数据流中的数据包需要多个阶段的处理才能完成输出,因此在每个处理阶段切换的过程中,从前一阶段的出口到下一阶段的入口也必须保证原先的顺序。
现有技术中的PIPELINE模式下包的保序通过如下方式实现:
请参阅图1,现有技术中采用临界区轮询模式,各处理器按顺序执行数据包的“读、处理、写”的操作,由图1可以看出,当处理器0未完成“写”操作时,即使处理器1已经完成了处理,也必须等待,同理,后续的各处理器也会进行相应的等待,最终使得输出的数据包能够保序。
但是,在上述的现有技术中,由于各处理器可能会有大量的时间在等待其前续处理器完成操作,因此影响了处理器的处理效率。
发明内容
本发明实施例提供了一种数据处理方法及系统以及相关设备,能够提高处理器的处理效率。
本发明实施例提供的数据处理方法,包括:对接收到的同一数据流中的各数据包进行顺序存储;接收各处理器发送的取包命令;根据预置的调度规则从存储的数据包中为各处理器分别选择数据包进行处理;接收各处理器发送的标签切换命令,所述标签切换命令用以指示所述处理器已完成当前阶段的处理;按照先进先出的顺序对处理后的数据包进行标签切换,当标签切换完成之后,根据后续处理器发送的取包命令将所述处理后的数据包提供给后续处理器进行处理直至处理完成。
本发明实施例提供的数据处理方法,包括:向包保序POE模块发送取包命令;从所述POE模块反馈的数据包缓存地址中获取相应的数据包进行处理;当对所述数据包处理完成之后,向所述POE模块发送标签切换命令并执行其他业务处理,所述标签切换命令用以指示所述处理器已完成当前阶段的处理。
本发明实施例提供的包保序模块,包括:存储单元,用于对接收到的同一数据流中的各数据包进行顺序存储;取包命令接收单元,用于接收各处理器发送的取包命令;分发单元,用于根据预置的调度规则从存储的数据包中为各处理器分别选择数据包进行处理;切换命令接收单元,用于接收各处理器发送的标签切换命令,所述标签切换命令用以指示所述处理器已完成当前阶段的处理;标签切换单元,用于按照先进先出的顺序对处理后的数据包进行标签切换;处理单元,用于当标签切换完成之后,根据后续处理器发送的取包命令将所述处理后的数据包提供给后续处理器进行处理直至处理完成。
本发明实施例提供的处理器,包括:取包命令发送单元,用于向包保序POE模块发送取包命令;数据包处理单元,用于从所述POE模块反馈的数据包缓存地址中获取相应的数据包进行处理;切换命令发送单元,用于当对所述数据包处理完成之后,向所述POE模块发送标签切换命令,所述标签切换命令用以指示所述处理器已完成当前阶段的处理;业务执行单元,用于在切换命令发送单元发送标签切换命令的同时执行其他业务处理。
本发明实施例提供的数据处理系统,包括包保序模块,以及处理器。
从以上技术方案可以看出,本发明实施例具有以下优点:
本发明实施例中,包保序(POE,Packet Order Enforce)模块在处理器完成数据包的处理之后会从处理器接收到标签切换命令,则POE模块可以按照先进先出(FIFO,First Input First Output)的顺序执行标签切换,因此能够实现包保序,而同时,处理器只需要执行取包、处理、发送标签切换命令的操作,当处理器发送了标签切换命令之后,后续的操作由POE模块进行,则处理器无需等待其他处理器的处理结果,而可以执行其他的业务流程,因此减少了处理器的等待时间,提高了处理器的处理效率。
附图说明
图1为现有技术中数据包保序方法示意图;
图2为本发明实施例中数据处理方法一个实施例示意图;
图3为本发明实施例中POE模块的数据包存储格式图;
图4为本发明实施例中数据处理方法另一实施例示意图;
图5为本发明实施例中单个数据包处理过程示意图;
图6为本发明实施例中包保序过程一个示意图;
图7为本发明实施例中包保序过程另一示意图;
图8为本发明实施例中完成标识位处理示意图;
图9为本发明实施例中POE模块实施例示意图;
图10为本发明实施例中处理器实施例示意图。
具体实施方式
本发明实施例提供了一种数据处理方法及系统以及相关设备,能够提高处理器的处理效率。
请参阅图2,本发明实施例中的数据处理方法一个实施例包括:
201、对接收到的同一数据流中的各数据包进行顺序存储;
本实施例中,POE模块会对同一数据流中的各数据包进行顺序存储,具体可以是存储各数据包的描述符信息。
本实施例中,数据包的描述符信息具体可以如图3所示,其中:
服务质量(QoS,Quality of Service):表明这个数据包的服务等级;
组(Group):表明这个数据包的处理阶段,并且能够被那些处理器处理;
标签类型(Tag Type):表明该数据包的标签类型;
标签(Tag):表明该数据包的标签号;
地址(Address):表明该数据包在内存中存放的地址。
202、接收各处理器发送的取包命令;
当处理器(CORE)请求取包进行处理时,会向POE模块发送取包命令,以请求POE分配一个数据包进行处理。
203、根据预置的调度规则从存储的数据包中为各处理器分别选择数据包进行处理;
当POE模块接收到各处理器的取包命令之后,可以根据预置的调度规则从存储的数据包中为各处理器分别选择数据包进行处理,具体可以根据严格优先级(SP,Strict-Priority)调度或者是加权轮询(WRR,Weighted Round Robin)选择对应的数据包。
204、接收各处理器发送的标签切换命令;
当POE模块为各处理器分配了数据包进行处理之后,当某处理器完成了对分配的数据包的处理之后,则会向POE模块发送标签切换命令,该标签切换命令用以指示处理器已完成当前阶段的处理。
POE模块会陆续从各处理器接收到标签切换命令。
205、按照先进先出的顺序对处理后的数据包进行标签切换;
POE模块根据接收到的标签切换命令,按照FIFO的顺序对各处理器处理后的数据包进行标签切换,以使得这些数据包可以被后续的处理器再次进行处理,具体标签切换的过程将在后续实施例中进行详细描述。
206、根据后续处理器发送的取包命令将处理后的数据包提供给后续处理器进行处理直至处理完成。
本实施例中的数据包的处理是PIPELINE模式,即数据包需要经过多个处理器的处理才能全部完成,因此POE模块在完成标签切换之后,还可以根据后续的处理器的取包命令将这些处理后的数据包再分配进行处理直至全部完成。
本实施例中,POE模块在处理器完成数据包的处理之后会从处理器接收到标签切换命令,则POE模块可以按照FIFO的顺序执行标签切换,因此能够实现包保序,而同时,处理器只需要执行取包、处理、发送标签切换命令的操作,当处理器发送了标签切换命令之后,后续的操作由POE模块进行,则处理器无需等待其他处理器的处理结果,而可以执行其他的业务流程,因此减少了处理器的等待时间,提高了处理器的处理效率。
需要说明的是,上述是从POE模块的角度对本发明实施例中的数据处理方法进行了描述,下面从处理器的角度对本发明实施例中的数据处理方法进行描述,请参阅图4,本发明实施例中数据处理方法另一实施例包括:
401、向包保序POE模块发送取包命令;
当处理器需要进行数据包处理时,会向POE模块发送取包命令,请求POE模块分配一个数据包进行处理。
402、从POE模块反馈的数据包缓存地址中获取相应的数据包进行处理;
处理器在发送取包命令之后,会从POE模块接收到数据包的缓存地址,之后可以根据该缓存地址获取到相应的数据包,并对该数据包进行处理,具体的处理过程为本领域技术人员的公知常识,此处不做限定。
403、向POE模块发送标签切换命令并执行其他业务处理。
当处理器对数据包处理完成之后,则可以向POE模块发送标签切换命令并执行其他业务处理,该标签切换命令用以指示处理器已完成当前阶段的处理。
本实施例中,处理器只需要执行取包、处理、发送标签切换命令的操作,当处理器发送了标签切换命令之后,后续的操作由POE模块进行,则处理器无需等待其他处理器的处理结果,而可以执行其他的业务流程,因此减少了处理器的等待时间,提高了处理器的处理效率。
为便于理解,下面以一个数据包为例,对本发明实施例中的数据处理方法进行描述,请参阅图5,本发明实施例中单个数据包处理过程包括:
501、请求添加数据包;
本实施例中,GMAC、Core、Tring、IPSEC等模块发出添加数据包(Add_packet)命令,希望向POE模块添加数据包,POE模块可以解析到这个命令。
502、POE模块将数据包描述符信息存储;
POE模块接收到添加数据包命令之后,将数据包的描述符信息,按照对应的格式进行存储,具体的格式可以如图2所示,此处不再赘述。
503、处理器发送取包命令;
当处理器(CORE)需要进行数据包处理时,CORE发出一个取包(Get_packet)命令,向POE模块请求一个数据包进行处理。
504、POE模块根据预置调度规则调度数据包;
POE模块收到CORE发送的取包命令之后,可以根据预置调度规则调度数据包,具体可以为:根据QOS进行SP调度或者WRR调度,首先选择一个QOS队列;再根据CORE的Group掩码寄存器来判断这个CORE能处理那些Group中的数据包,选择一个Group队列,再从Group队列中选择一个数据包。
505、POE模块将调度得到的数据包的描述符信息反馈给处理器;
POE确定了分配的数据包之后,可以通过AHB Slave将调度得到的数据包的描述符信息反馈给CORE,反馈的数据包描述符信息为数据包的缓存地址。
506、绑定当前数据包与处理器;
当POE模块将调度得到的数据包的描述符信息反馈给CORE之后,可以将该数据包与CORE进行绑定,至此即是将一个数据包与一个Core完成了绑定。
507、处理器处理数据包;
绑定了当前数据包与处理器之后,处理器可以对数据包进行处理,具体的处理过程为本领域技术人员的公知常识,此处不做限定。
508、标签切换操作以及后续处理;
本实施例中,一个数据包的处理可能需要多个阶段才能完成,在POE模块中,通过标签切换(Switch Tag)可以完成多个阶段之间的互通。
当CORE处理完数据包的当前阶段,可以发出一个标签切换命令,请求POE模块将与其绑定的数据包从当前组队列转换到一个新的组队列,在标签切换过程中,还可能会更新标签类型和标签号,这样,该数据包即可以被其他的CORE完成后续阶段的处理。
需要说明的是,为了充分利用CORE的处理能力,在执行标签切换操作的时候,主要是由POE模块来完成,在POE模块执行的过程中,Core可以执行其他的任务。
POE模块可以提供一个标签切换状态位,来表明本次标签切换操作是否完成,CORE可以发送取状态(Get_state)命令来查询此状态,可以理解的是,POE模块也可以将这个状态写入CORE的缓存空间,此时则可以避免总线接口被频繁的查询,从而提高处理效率。
CORE在通过标签切换状态位确定标签切换已经完成之后,则可以向POE模块发送取包命令以进行后续的处理。
509、数据包处理完成;
如果CORE确定当前数据包已经被处理完成,则发送一个特殊的空切换操作(SWITCH_NULL)命令,表明这个数据包已经完成了所有的处理阶段,可以输出。
510、POE模块将该数据包的描述符信息从队列中删除。
POE模块收到CORE发送的空切换操作命令之后,获知该数据包已经完成了所有的处理阶段,则可以将这个完成的数据包从本地标签队列中删除。
本实施例中,POE模块在处理器完成数据包的处理之后会从处理器接收到标签切换命令,则POE模块可以按照FIFO的顺序执行标签切换,因此能够实现包保序,而同时,处理器只需要执行取包、处理、发送标签切换命令的操作,当处理器发送了标签切换命令之后,后续的操作由POE模块进行,则处理器无需等待其他处理器的处理结果,而可以执行其他的业务流程,因此减少了处理器的等待时间,提高了处理器的处理效率;
其次,POE模块可以将标签切换状态位写入CORE的缓存空间,此时则可以避免总线接口被频繁的查询,从而提高处理效率。
上面对本发明实施例中的单个包处理过程进行了描述,下面对本发明实施例中实现包保序的过程进行描述,请参阅图6,本发明实施例中的包保序过程大致包括:
601、对数据包进行打标签;
本实施例中,POE模块可以对输入的数据包按照业务进行分类解析,分别对每个不同的数据流打上标签,用“标签+标签类型”来区别不同的数据流。
同时,为了对应不同QoS的业务流,还需要给数据包加上QoS信息,如果某些数据包只能被指定的CORE处理,还需要标记组(Group)信息,来表明这个数据包可以被哪些CORE处理。
602、对数据包进行管理;
POE模块根据QoS+Group的组合信息,将数据包分类存放在输入缓存(input buffer)中,在存放的时候,每个Input FIFO都对应唯一的QOS+Group,即对应一个数据流。
603、CORE取包过程;
当CORE要对数据包进行处理的时候,发出取包的指令,POE模块解析到这个命令,基于QOS、Group从Input Buffer中取满足条件的数据包给CORE,同时POE模块在绑定缓存(Bind Buffer)中记录每个数据包的标签,基于标签做为唯一的标识符来进行数据包的管理。
604、标签切换过程;
在Bind Buffer中,不同的标签FIFO之间可以通过切换操作来完成标签间的切换,实现数据包各个CORE之间的互通。
605、数据包输出过程。
当数据包完全处理完成以后,CORE发出一个完成的操作指令,则POE模块从Bind Buffer中将该数据包删除,不再记录
需要说明的是,基于上述的包保序过程,对于某个FIFO队列,当有多个CORE取其中的数据包时,需要满足先进先出的原则,具体请参阅图7,其中:
T1时刻:Core0得到数据包Packet0,开始处理;
T2时刻:Core1得到数据包Packet1,开始处理;
T3时刻:Core2得到数据包Packet2,开始处理;
由于每个Core的处理性能不一致,可能处理完成的顺序不一致,
T4时刻:Core1先处理完成,向POE模块发送标签切换命令,但是此时由于其绑定的数据包不在队列头部,所以POE模块不能立刻出bind FIFO;
T5时刻:Core2处理完成,向POE模块发送标签切换命令,但是由于其绑定的数据包不在队列头部,所以也不能立刻出bind FIFO;
T6时刻:Core0处理完成,向POE模块发送标签切换命令,由于其绑定的数据包在队列头部,所以POE模块可以按照先进先出的顺序进行标签切换,使得数据包Packet0直接从bind FIFO中出队,开始下一个阶段的处理;随后,数据包Packet1、数据包Packet2相继出队。
本实施例中,通过FIFO的管理,可以使数据包在每个处理阶段都按照顺序自动先进先出,完成包的保序功能;同时,CORE可以不需要实时参与,只需要发出取包命令、包处理完成命令以后,就可以继续处理其他事务,从而可以提高CORE的处理效率。
上述实施例中描述了基于标签切换过程的数据处理方法,该方法可以完成各个CORE之间的数据包处理,在实际应用中,为了减少CORE在处理数据包过程中的等待延迟,还可以通过设置完成标识位(finish),并且在对应的二级缓存内对完成标识位进行管理,具体的方案请参阅图8,其中:
队列1中的一个数据包需要切换到队列5中,图中,该数据包不在bindFIFO的头部,只要前面的数据包没有被处理完,那么这个数据包就不能先跳出这个队列,因为前面的数据包在处理完以后,可能也需要切换到同一个标签队列中,这样一旦后面的数据包先跳出这个队列,同一个队列的保序功能就没有办法完成。
因此只有在该数据包已经移动到队头,才能跳出这个队列,并且切换到一个新的队列中进行下一轮的排队处理。
T1时刻:当CORE需要执行切换过程的时候,首先将自己在二级缓存内的“finish”标记位置位为“1”,然后发出一个切换命令,此后,CORE可以选择查询二级缓存内的“finish”标志位,只有当“finish”标志位为0的时候,才可以继续处理这个数据包,否则,CORE可以处理其他的事务;
T2时刻:当POE模块检测到CORE发出的切换命令,就开始将这个CORE绑定的数据包从bind FIFO1搬运到bind FIFO5中(即等待该数据包到bindFIFO1的对头之后,再将其切换至bind FIFO5的队尾),当POE模块完成切换过程后,就可以将该CORE中在二级缓存内对应的“finish”标志位清0。
此时,CORE检测到“finish”标志位为0,则CORE可以继续处理该数据包,而在“finish”标志位不为0的时候,CORE可以进行其他业务的处理,从而能够充分的利用CORE的能力。
下面对本发明实施例中的POE模块进行描述,请参阅图9,本发明实施例中的包保序模块包括:
存储单元901,用于对接收到的同一数据流中的各数据包进行顺序存储;
取包命令接收单元902,用于接收各处理器发送的取包命令;
分发单元903,用于根据预置的调度规则从存储的数据包中为各处理器分别选择数据包进行处理;
切换命令接收单元904,用于接收各处理器发送的标签切换命令,标签切换命令用以指示处理器已完成当前阶段的处理;
标签切换单元905,用于按照先进先出的顺序对处理后的数据包进行标签切换;
处理单元906,用于当标签切换完成之后,根据后续处理器发送的取包命令将处理后的数据包提供给后续处理器进行处理直至处理完成。
本实施例中的存储单元901包括:
分配子单元9011,用于为同一数据流中的各数据包分配组标识以及服务质量信息;
执行子单元9012,用于根据组标识以及服务质量信息将各数据包存储在输入先进先出队列中。
本实施例中的分发单元903包括:
选择子单元9031,用于根据服务质量信息进行严格优先级调度或者加权轮询调度选择服务质量信息队列;
确定子单元9032,用于根据处理器的组标识掩码寄存器确定处理器能处理的组队列,从组队列中为处理器选择数据包。
本实施例中的标签切换单元905包括:
存储子单元9051,用于将处理后的数据包按照先进先出的顺序存入绑定先进先出队列中;
转换子单元9052,用于将绑定先进先出队列中的数据包从当前的组队列转换到新的组队列,并更新处理后的数据包的标签。
本实施例中标签切换单元905进行标签切换的过程与前述图5所示的实施例中描述的标签切换的过程相同,此处不再赘述。
本实施例中,切换命令接收单元904在处理器完成数据包的处理之后会从处理器接收到标签切换命令,则标签切换单元905可以按照FIFO的顺序执行标签切换,因此能够实现包保序,而同时,处理器只需要执行取包、处理、发送标签切换命令的操作,当处理器发送了标签切换命令之后,后续的操作由POE模块进行,则处理器无需等待其他处理器的处理结果,而可以执行其他的业务流程,因此减少了处理器的等待时间,提高了处理器的处理效率。
下面介绍本发明实施例中的处理器,请参阅图10,本发明实施例中的处理器包括:
取包命令发送单元1001,用于向包保序POE模块发送取包命令;
数据包处理单元1002,用于从POE模块反馈的数据包缓存地址中获取相应的数据包进行处理;
切换命令发送单元1003,用于当对数据包处理完成之后,向POE模块发送标签切换命令,标签切换命令用以指示处理器已完成当前阶段的处理;
业务执行单元1004,用于在切换命令发送单元发送标签切换命令的同时执行其他业务处理。
本实施例中的处理器还可以进一步包括:
获取单元1005,用于获取POE模块提供的标签切换状态位,或从缓存空间获取标签切换状态位;
第一判断单元1006,用于判断标签切换状态位是否指示POE模块已完成标签切换,若是,则触发取包命令发送单元1001执行相应操作。
本实施例中的处理器还可以进一步包括:
命令发送单元1007,用于向POE模块发送切换命令,切换命令用以指示将待处理数据包从第一绑定先进先出队列切换至第二绑定先进先出队列;
参数设置单元1008,用于将二级缓存中的完成标识位的数值设置为暂时不对待处理数据包进行处理;
第二判断单元1009,用于判断二级缓存中的完成标识位的数值是否指示切换已完成,若是,则触发业务执行单元1004继续处理待处理数据包。
本实施例中的处理器中各单元间的交互过程与前述图4以及图5所示的实施例中描述的内容相同,此处不再赘述。
本实施例中,处理器只需要执行取包、处理、发送标签切换命令的操作,当切换命令发送单元1003发送了标签切换命令之后,后续的操作由POE模块进行,则处理器无需等待其他处理器的处理结果,而可以执行其他的业务流程,因此减少了处理器的等待时间,提高了处理器的处理效率。
本发明实施例中还提供一种数据处理系统,该数据处理系统包括包保序模块以及若干处理器,其中,包保序模块可以如前述图9所示的实施例中描述的包保序模块,处理器可以如前述图10所示的实施例中描述的处理器,具体此处均不再赘述。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件完成,该程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上对本发明所提供的一种数据处理方法及系统以及相关设备进行了详细介绍,对于本领域的一般技术人员,依据本发明实施例的思想,在具体实施方式及应用范围上均会有改变之处,因此,本说明书内容不应理解为对本发明的限制。

Claims (18)

1.一种数据处理方法,其特征在于,包括:
对接收到的同一数据流中的各数据包进行顺序存储;
接收各处理器发送的取包命令;
根据预置的调度规则从存储的数据包中为各处理器分别选择数据包进行处理;
接收各处理器发送的标签切换命令,所述标签切换命令用以指示所述处理器已完成当前阶段的处理;
按照先进先出的顺序对处理后的数据包进行标签切换,当标签切换完成之后,根据后续处理器发送的取包命令将所述处理后的数据包提供给后续处理器进行处理直至处理完成。
2.根据权利要求1所述的方法,其特征在于,所述对接收到的同一数据流中的各数据包进行顺序存储包括:
为同一数据流中的各数据包分配组标识以及服务质量信息;
根据所述组标识以及服务质量信息将各数据包存储在输入先进先出队列中。
3.根据权利要求2所述的方法,其特征在于,所述根据预置的调度规则从存储的数据包中为各处理器分别选择数据包进行处理包括:
根据服务质量信息进行严格优先级调度或者加权轮询调度选择服务质量信息队列;
根据处理器的组标识掩码寄存器确定所述处理器能处理的组队列,从所述组队列中为所述处理器选择数据包。
4.根据权利要求2或3所述的方法,其特征在于,所述按照先进先出的顺序对处理后的数据包进行标签切换包括:
将所述处理后的数据包按照先进先出的顺序存入绑定先进先出队列中;
将所述绑定先进先出队列中的数据包从当前的组队列转换到新的组队列,并更新处理后的数据包的标签。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
向各处理器提供标签切换状态位,所述标签切换状态位用以指示是否已经完成标签切换;
或,
将标签切换状态位写入处理器的缓存空间,所述标签切换状态位用以指示是否已经完成标签切换。
6.根据权利要求1所述的方法,其特征在于,所述根据后续处理器发送的取包命令将所述处理后的数据包提供给后续处理器进行处理直至处理完成之后包括:
接收空切换命令,所述空切换命令用以指示数据包已经完全处理完成;
按照先进先出的顺序输出完全处理完成的数据包,并删除所述完全处理完成的数据包的标签。
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
接收处理器发送的切换命令,所述切换命令用以指示将待处理数据包从第一绑定先进先出队列切换至第二绑定先进先出队列,所述处理器的二级缓存中的完成标识位的数值指示所述处理器暂时不对所述待处理数据包进行处理;
按照先进先出的顺序将所述待处理数据包从第一绑定先进先出队列切换至第二绑定先进先出队列;
修改所述处理器的二级缓存中的完成标识位的数值,使得所述数值指示切换已完成,以使所述处理器继续处理所述待处理数据包。
8.一种数据处理方法,其特征在于,包括:
向包保序POE模块发送取包命令;
从所述POE模块反馈的数据包缓存地址中获取相应的数据包进行处理;
当对所述数据包处理完成之后,向所述POE模块发送标签切换命令并执行其他业务处理,所述标签切换命令用以指示所述处理器已完成当前阶段的处理。
9.根据权利要求8所述的方法,其特征在于,所述向POE模块发送取包命令之前包括:
获取所述POE模块提供的标签切换状态位,或从缓存空间获取标签切换状态位;
判断所述标签切换状态位是否指示所述POE模块已完成标签切换,若是,则触发所述向POE模块发送取包命令的步骤。
10.根据权利要求8或9所述的方法,其特征在于,所述方法还包括:
向所述POE模块发送切换命令,并将二级缓存中的完成标识位的数值设置为暂时不对待处理数据包进行处理,所述切换命令用以指示将所述待处理数据包从第一绑定先进先出队列切换至第二绑定先进先出队列;
判断所述二级缓存中的完成标识位的数值是否指示切换已完成,若是,则继续处理所述待处理数据包。
11.一种包保序模块,其特征在于,包括:
存储单元,用于对接收到的同一数据流中的各数据包进行顺序存储;
取包命令接收单元,用于接收各处理器发送的取包命令;
分发单元,用于根据预置的调度规则从存储的数据包中为各处理器分别选择数据包进行处理;
切换命令接收单元,用于接收各处理器发送的标签切换命令,所述标签切换命令用以指示所述处理器已完成当前阶段的处理;
标签切换单元,用于按照先进先出的顺序对处理后的数据包进行标签切换;
处理单元,用于当标签切换完成之后,根据后续处理器发送的取包命令将所述处理后的数据包提供给后续处理器进行处理直至处理完成。
12.根据权利要求11所述的包保序模块,其特征在于,所述存储单元包括:
分配子单元,用于为同一数据流中的各数据包分配组标识以及服务质量信息;
执行子单元,用于根据所述组标识以及服务质量信息将各数据包存储在输入先进先出队列中。
13.根据权利要求11所述的包保序模块,其特征在于,所述分发单元包括:
选择子单元,用于根据服务质量信息进行严格优先级调度或者加权轮询调度选择服务质量信息队列;
确定子单元,用于根据处理器的组标识掩码寄存器确定所述处理器能处理的组队列,从所述组队列中为所述处理器选择数据包。
14.根据权利要求12或13所述的包保序模块,其特征在于,所述标签切换单元包括:
存储子单元,用于将所述处理后的数据包按照先进先出的顺序存入绑定先进先出队列中;
转换子单元,用于将所述绑定先进先出队列中的数据包从当前的组队列转换到新的组队列,并更新处理后的数据包的标签。
15.一种处理器,其特征在于,包括:
取包命令发送单元,用于向包保序POE模块发送取包命令;
数据包处理单元,用于从所述POE模块反馈的数据包缓存地址中获取相应的数据包进行处理;
切换命令发送单元,用于当对所述数据包处理完成之后,向所述POE模块发送标签切换命令,所述标签切换命令用以指示所述处理器已完成当前阶段的处理;
业务执行单元,用于在切换命令发送单元发送标签切换命令的同时执行其他业务处理。
16.根据权利要求15所述的处理器,其特征在于,所述处理器还包括:
获取单元,用于获取所述POE模块提供的标签切换状态位,或从缓存空间获取标签切换状态位;
第一判断单元,用于判断所述标签切换状态位是否指示所述POE模块已完成标签切换,若是,则触发所述取包命令发送单元执行相应操作。
17.根据权利要求15或16所述的处理器,其特征在于,所述处理器还包括:
命令发送单元,用于向所述POE模块发送切换命令,所述切换命令用以指示将待处理数据包从第一绑定先进先出队列切换至第二绑定先进先出队列;
参数设置单元,用于将二级缓存中的完成标识位的数值设置为暂时不对待处理数据包进行处理;
第二判断单元,用于判断所述二级缓存中的完成标识位的数值是否指示切换已完成,若是,则触发业务执行单元继续处理所述待处理数据包。
18.一种数据处理系统,其特征在于,包括如权利要求11至14中任一项所述的包保序模块,以及如权利要求15至17中任一项所述的处理器。
CN201010150286.3A 2010-04-15 2010-04-15 一种数据处理方法及系统以及相关设备 Expired - Fee Related CN101840328B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN201010150286.3A CN101840328B (zh) 2010-04-15 2010-04-15 一种数据处理方法及系统以及相关设备
GB201106392A GB2479653B (en) 2010-04-15 2011-04-14 Method and apparatus for processing data in a multi-core system
US13/087,933 US8848532B2 (en) 2010-04-15 2011-04-15 Method and system for processing data

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201010150286.3A CN101840328B (zh) 2010-04-15 2010-04-15 一种数据处理方法及系统以及相关设备

Publications (2)

Publication Number Publication Date
CN101840328A true CN101840328A (zh) 2010-09-22
CN101840328B CN101840328B (zh) 2014-05-07

Family

ID=42743715

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201010150286.3A Expired - Fee Related CN101840328B (zh) 2010-04-15 2010-04-15 一种数据处理方法及系统以及相关设备

Country Status (3)

Country Link
US (1) US8848532B2 (zh)
CN (1) CN101840328B (zh)
GB (1) GB2479653B (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102546424A (zh) * 2012-01-20 2012-07-04 华为技术有限公司 报文保序方法及装置
CN103944739A (zh) * 2014-03-26 2014-07-23 深圳市迈腾电子有限公司 智能poe电源供电系统及其高效poe电源管理方法
CN110098977A (zh) * 2019-04-12 2019-08-06 中国科学院声学研究所 实时协议识别背景下的网络数据包按序存储方法及系统
CN112399470A (zh) * 2019-08-16 2021-02-23 深圳长城开发科技股份有限公司 LoRa通信方法、LoRa网关、LoRa系统、计算机可读存储介质
CN113033789A (zh) * 2019-12-24 2021-06-25 中科寒武纪科技股份有限公司 用于保序的总线系统、集成电路装置、板卡及保序方法
CN113360448A (zh) * 2021-06-04 2021-09-07 展讯通信(上海)有限公司 数据包处理方法及装置

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2962123C (en) * 2014-10-03 2022-12-13 Ezuniverse Inc. Data management system
US10311061B2 (en) * 2015-11-06 2019-06-04 Sap Se Quality-driven processing of out-of-order data streams
US10284501B2 (en) * 2016-12-08 2019-05-07 Intel IP Corporation Technologies for multi-core wireless network data transmission
CN107613529B (zh) * 2017-07-31 2021-06-01 上海华为技术有限公司 消息处理方法以及基站
US10523300B2 (en) * 2017-09-19 2019-12-31 Qualcomm Incorporated Beam refinement techniques in millimeter wave systems

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6226687B1 (en) * 1996-09-05 2001-05-01 Nortel Networks Limited Method and apparatus for maintaining an order of data packets
CN1395168A (zh) * 1994-05-03 2003-02-05 Arm有限公司 多指令集的数据处理
US20030126185A1 (en) * 2001-12-27 2003-07-03 Yasufumi Itoh Data driven information processor and data processing method for processing plurality of data while accessing memory
US20040139441A1 (en) * 2003-01-09 2004-07-15 Kabushiki Kaisha Toshiba Processor, arithmetic operation processing method, and priority determination method
JP2006023902A (ja) * 2004-07-07 2006-01-26 Toshiba Corp マイクロプロセッサ
CN101036117A (zh) * 2004-09-10 2007-09-12 卡威姆网络公司 低延时存储器的直接存取
CN101447931A (zh) * 2008-12-26 2009-06-03 华为技术有限公司 一种排他操作的实现方法和装置

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100358153B1 (ko) * 2000-12-18 2002-10-25 한국전자통신연구원 서비스 품질을 지원하는 아이피 패킷 포워딩 분산 처리장치 및 그 방법
FR2867338B1 (fr) 2004-03-02 2007-08-10 Arteris Procede et dispositif de commutation entre des agents
US7895431B2 (en) * 2004-09-10 2011-02-22 Cavium Networks, Inc. Packet queuing, scheduling and ordering
US8094560B2 (en) * 2008-05-19 2012-01-10 Cisco Technology, Inc. Multi-stage multi-core processing of network packets
US7990974B1 (en) * 2008-09-29 2011-08-02 Sonicwall, Inc. Packet processing on a multi-core processor
EP2366144B1 (en) * 2008-10-15 2015-09-30 Hyperion Core, Inc. Sequential processor comprising an alu array
US8018961B2 (en) * 2009-06-22 2011-09-13 Citrix Systems, Inc. Systems and methods for receive and transmission queue processing in a multi-core architecture

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1395168A (zh) * 1994-05-03 2003-02-05 Arm有限公司 多指令集的数据处理
US6226687B1 (en) * 1996-09-05 2001-05-01 Nortel Networks Limited Method and apparatus for maintaining an order of data packets
US20030126185A1 (en) * 2001-12-27 2003-07-03 Yasufumi Itoh Data driven information processor and data processing method for processing plurality of data while accessing memory
US20040139441A1 (en) * 2003-01-09 2004-07-15 Kabushiki Kaisha Toshiba Processor, arithmetic operation processing method, and priority determination method
JP2006023902A (ja) * 2004-07-07 2006-01-26 Toshiba Corp マイクロプロセッサ
CN101036117A (zh) * 2004-09-10 2007-09-12 卡威姆网络公司 低延时存储器的直接存取
CN101069170A (zh) * 2004-09-10 2007-11-07 卡威姆网络有限公司 数据包队列、调度和排序
CN101447931A (zh) * 2008-12-26 2009-06-03 华为技术有限公司 一种排他操作的实现方法和装置

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102546424A (zh) * 2012-01-20 2012-07-04 华为技术有限公司 报文保序方法及装置
CN102546424B (zh) * 2012-01-20 2015-03-18 华为技术有限公司 报文保序方法及装置
CN103944739A (zh) * 2014-03-26 2014-07-23 深圳市迈腾电子有限公司 智能poe电源供电系统及其高效poe电源管理方法
CN103944739B (zh) * 2014-03-26 2018-10-09 深圳市迈腾电子有限公司 智能poe电源供电系统及其高效poe电源管理方法
CN110098977A (zh) * 2019-04-12 2019-08-06 中国科学院声学研究所 实时协议识别背景下的网络数据包按序存储方法及系统
CN110098977B (zh) * 2019-04-12 2020-11-06 中国科学院声学研究所 网络数据包按序存储方法、计算机设备和存储介质
CN112399470A (zh) * 2019-08-16 2021-02-23 深圳长城开发科技股份有限公司 LoRa通信方法、LoRa网关、LoRa系统、计算机可读存储介质
CN112399470B (zh) * 2019-08-16 2022-11-08 深圳长城开发科技股份有限公司 LoRa通信方法、LoRa网关、LoRa系统、计算机可读存储介质
CN113033789A (zh) * 2019-12-24 2021-06-25 中科寒武纪科技股份有限公司 用于保序的总线系统、集成电路装置、板卡及保序方法
CN113033789B (zh) * 2019-12-24 2024-03-26 中科寒武纪科技股份有限公司 用于保序的总线系统、集成电路装置、板卡及保序方法
CN113360448A (zh) * 2021-06-04 2021-09-07 展讯通信(上海)有限公司 数据包处理方法及装置

Also Published As

Publication number Publication date
GB2479653B (en) 2014-02-19
GB201106392D0 (en) 2011-06-01
CN101840328B (zh) 2014-05-07
GB2479653A (en) 2011-10-19
US20110255543A1 (en) 2011-10-20
US8848532B2 (en) 2014-09-30

Similar Documents

Publication Publication Date Title
CN101840328B (zh) 一种数据处理方法及系统以及相关设备
CN110535813B (zh) 内核态协议栈与用户态协议栈并存处理方法和装置
CN105577567B (zh) 基于Intel DPDK的网络数据包并行处理方法
JP5640234B2 (ja) マネージド・ネットワークでのレイヤ2のパケット集約及び断片化
CN102334112B (zh) 用于虚拟机网络的方法和系统
CN105122747B (zh) Sdn网络中的控制设备和控制方法
US7505410B2 (en) Method and apparatus to support efficient check-point and role-back operations for flow-controlled queues in network devices
JP4368371B2 (ja) AXIが適用されたNoCルータとNI、NoCシステム、及びそのインターリーブ方法
CN103309738B (zh) 用户作业调度方法及装置
US7499463B1 (en) Method and apparatus for enforcing bandwidth utilization of a virtual serialization queue
CN1938992B (zh) 用于加权随机调度的方法和装置
CN108353029A (zh) 用于管理计算网络中的数据业务的方法和系统
CN107846443B (zh) 网络中的分布式处理
CN109768939A (zh) 一种支持优先级的标签化网络栈方法和系统
CN108702325A (zh) 增强网络业务的通信
CN103346980A (zh) 一种业务调度方法、装置及网络设备
CN111147391B (zh) DPDK用户态与linux内核网络协议栈之间的数据传输方法及系统
CN105075191B (zh) 无线网络数据处理装置和无线网络系统
US20160134567A1 (en) Universal network interface controller
CN107623632A (zh) 基于dpdk的网络协议的连接方法及系统
CN102609307A (zh) 多核多线程双操作系统网络设备及其控制方法
CN105518610B (zh) 处理操作请求的存储系统、方法及装置
JP2013513876A (ja) 複数の粒度を持つストリームを処理するためのプログラム、コンピュータシステムおよび方法
CN113765825B (zh) 一种链式业务流调度的规划方法和系统架构
CN105635000A (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
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20170613

Address after: 510640 Guangdong City, Tianhe District Province, No. five, road, public education building, unit 371-1, unit 2401

Patentee after: Guangdong Gaohang Intellectual Property Operation Co., Ltd.

Address before: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen

Patentee before: Huawei Technologies Co., Ltd.

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20170901

Address after: Half Creek Road 408400 in Nanchuan District of Chongqing Dongcheng Subdistrict Office No. 5 2-1 (East Pearl District A District)

Patentee after: Chongqing City rang cloud Technology Co. Ltd.

Address before: 510640 Guangdong City, Tianhe District Province, No. five, road, public education building, unit 371-1, unit 2401

Patentee before: Guangdong Gaohang Intellectual Property Operation Co., Ltd.

CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20140507

Termination date: 20200415