用于处理报文的方法及装置的制作方法

文档序号:7892974阅读:117来源:国知局
专利名称:用于处理报文的方法及装置的制作方法
技术领域
本发明实施例涉及电子技术,尤其涉及一种用于处理报文的方法及装置。
背景技术
片上系统(System-On-Chip,简称S0C)是指在单片机集成电路上集成了处理器、存储器控制器和各种外部设备接口的系统。现有技术中,处理器接收到一个新报文,处理器都要暂停对当前报文的处理,并比较当前处理的报文的优先级与新报文的优先级。当处理器确定新报文的优先级低于当前处理的报文的优先级时,处理器恢复对当前处理的报文的处理。处理器比较处理器当前处理的报文的优先级与新报文的优先级,增加了处理器的开销,降低了处理器的处理效率。

发明内容
本发明实施例提供一种用于处理报文的方法及装置,能够减轻处理器的开销,提高处理器的处理效率。—方面,本发明实施例提供了一种用于处理报文的方法,包括调度器确定新报文的类型,根据报文的类型与优先级的对应关系,确定所述新报文的优先级;所述调度器比较第一报文与所述新报文的优先级的高低,所述第一报文为处理器当前处理的报文;如果所述新报文的优先级高于所述第一报文的优先级,所述调度器向所述处理器发送触发信号,以使所述处理器中断对所述第一报文的处理,并对所述新报文进行处理。另一方面,本发明实施例提供了一种用于处理报文的装置,包括优先级确定单元,用于确定新报文的类型,根据报文的类型与优先级的对应关系, 确定所述新报文的优先级;比较单元,用于根据所述优先级确定单元确定的所述新报文的优先级,比较第一报文与所述新报文的优先级的高低,所述第一报文为处理器当前处理的报文;触发单元,用于如果所述比较单元的比较结果为所述新报文的优先级高于所述第一报文的优先级,向所述处理器发送触发信号,以使所述处理器中断对所述第一报文的处理,并对所述新报文进行处理。本发明实施例提供的用于处理报文的方法及装置,由调度器确定新报文的优先级,并在新报文的优先级高于处理器当前处理的报文的优先级时,向处理器发送触发信号,以使处理器中断对当前处理的报文的处理,并对新报文进行处理。通过本发明实施例提供的技术方案,处理器不需要比较当前处理的报文的优先级与新报文的优先级,因此,减轻了处理器的开销,提高了处理器的处理效率。


图I为本发明实施例提供的一种用于处理报文的方法的流程图;图2为本发明实施例提供的一种用于处理报文的装置结构示意图。
具体实施例方式本发明实施例提供的调度器独立于处理器。举例来说,调度器可以是独立于处理器的芯片。调度器和处理器也可以是同一芯片的不同硬件电路。本发明实施例涉及到的处理器可以是单核处理器,也可以是多核处理器。
图I为本发明实施例提供的一种用于处理报文的方法流程图。如图I所示,本实施例提供的方法包括102:调度器确定新报文的类型,根据报文的类型与优先级的对应关系,确定所述新报文的优先级。调度器用于触发处理器对报文进行处理。调度器为网络设备中的部件。网络设备可以是路由器、交换机、防火墙或者负载均衡器。新报文可以是网络设备的网卡收到的报文。网卡接收到新报文后,可以将新报文存储在网络设备的内存中。网卡接收到新报文后,网卡可以将新报文的标识发送至调度器。举例来说,新报文的标识可以是新报文存储在内存中的物理地址或者逻辑地址。另外,网卡接收到新报文后,网卡可以将新报文发送至调度器。网卡和调度器可以是物理上分离的器件。网卡和调度器也可以集成在一个器件中。调度器收到新报文的标识后,可以根据新报文的标识获得新报文,并对新报文进行解析,从而确定新报文的类型。另外,调度器收到新报文后,可以直接对新报文进行解析,从而确定新报文的类型。例如,当新报文是网际协议(Internet Protocol, IP)分组时,调度器可以解析新报文中的IP头,并根据IP头中的协议(Protocol)字段判断新报文的类型是否是传输控制协议(Transfer Control Protocol,TCP)报文或者用户数据协议(UserData Protocol,UDP)报文。调度器确定新报文的类型后,可以根据报文的类型与优先级的对应关系,确定新报文的优先级。例如,报文的类型与优先级的对应关系可以规定TCP报文的优先级最高,UDP报文的优先级最低。优先级用于指示不同类型的报文被处理的先后顺序。优先级与报文的类型相关。优先级高的报文先于优先级低的报文被处理。104:所述调度器比较第一报文与所述新报文的优先级的高低,所述第一报文为处理器当前处理的报文。第一报文是处理器当前处理的报文。举例来说,第一报文可以是调度器最近一次指示处理器处理的报文。调度器可以通过向处理器发送第一报文的方式指示处理器处理第一报文。调度器也可以通过向处理器发送第一报文的标识的方式指示处理器处理第一报文。处理器可以通过第一报文的标识获得第一报文。第一报文的标识可以是第一报文存储在内存中的物理地址或者逻辑地址。调度器用于比较第一报文与所述新报文的优先级的高低。举例来说,调度器可以比较第一报文的类型与新报文的类型的优先级的高低,从而确定第一报文与新报文的优先级的闻低。106:如果所述新报文的优先级高于所述第一报文的优先级,所述调度器向所述处理器发送触发信号,以使所述处理器中断对所述第一报文的处理,并对所述新报文进行处理。
可见,通过本实施例提供的方法,调度器用于对新报文与处理器当前处理的报文的优先级进行比较,处理器不需要比较当前处理的报文的优先级与新报文的优先级。因此,减轻了处理器的开销,提高了处理器的处理效率。可选的,106可以包括
所述调度器向所述处理器发送触发信号,以使所述处理器中断对所述第一报文的处理,并根据所述新报文的处理函数对所述新报文进行处理,所述触发信号包含所述新报文和所述新报文的处理函数的标识,或者,所述触发信号包含所述新报文的标识和所述新报文的处理函数的标识。调度器可以根据报文的类型与处理函数的对应关系,确定新报文所对应的处理函数。举例来说,报文的类型与处理函数的对应关系可以是包含报文的类型与处理函数的标识的对应表。处理函数的标识可以是处理函数的入口地址。本领域的技术人员可以理解,处理函数的入口地址是指处理函数经过编译后生成的目标代码中的第一条指令的指针。目标代码可以是由多条指令构成的指令序列。触发信号可以包含所述新报文和所述新报文的处理函数的标识。另外,触发信号可以包含所述新报文的标识和所述新报文的处理函数的标识。触发信号可以使处理器根据新报文的处理函数的标识获得新报文的处理函数。可选的,106之后,所述方法还可以包括所述调度器接收所述处理器发送的所述第一报文的上下文信息;所述调度器将所述第一报文的上下文信息添加到所述第一报文的类型对应的队列的队列头。处理器处理第一报文的过程中会产生第一报文的上下文信息。举例来说,第一报文的上下文信息可以包括第一报文或者第一报文的标识。另外,第一报文的上下文信息还可以包括程序计数器(Program Counter, PC)中的指针。本领域的技术人员可以理解,PC中可以存储第一报文的处理函数经过编译后生成的指令序列中的尚未被处理器执行的第一指令的指针。其中,所述第一指令的上一条指令已经被处理器执行。第一报文的上下文信息可以存储在处理器的寄存器中。第一报文的上下文信息被添加到第一报文的类型对应的队列的队列头后,能够使得第一报文先于同一队列中的其它报文被调度器调度。可选的,所述将所述第一报文的上下文信息添加到所述第一报文的类型对应的队列的队列头之后,所述方法还可以包括所述调度器接收所述处理器发送的第一调度请求;所述调度器从所述第一报文的类型对应的队列的队列头中获取所述第一报文的上下文信息;所述调度器向所述处理器发送所述第一调度请求对应的第一调度响应,所述第一调度响应包括所述第一报文的上下文信息,以使所述处理器根据所述第一报文的上下文信息对所述第一报文进行处理。
处理器处理完毕当前处理的报文后,处理器可以向调度器发送第一调度请求。第一调度请求用于使调度器向处理器分发待处理的报文。可选的,所述方法还可以包括所述调度器接收所述处理器发送的第二调度请求;所述调度器从第二队列中获得所述第二队列的队列头,所述第二队列对应的报文 的类型的优先级最高,所述第二队列的队列头包含第二报文的标识;所述调度器根据所述第二报文的标识,以及报文的类型与处理函数的标识的对应关系,获得所述第二报文的处理函数的标识;所述调度器向所述处理器发送与所述第二调度请求对应的第二调度响应,所述第二调度响应中包括所述第二报文的标识以及所述第二报文的处理函数的标识。处理器处理完毕当前处理的报文后,处理器可以向调度器发送第二调度请求。第二调度请求用于使调度器向处理器分发待处理的报文。可选的,104之后,所述方法还可以包括如果所述新报文的优先级不高于所述第一报文的优先级,所述调度器将所述新报文或者所述新报文的标识加入所述新报文的类型对应的队列的队列尾。所述新报文的优先级不高于所述第一报文的优先级是指所述新报文的优先级低于或者等于所述第一报文的优先级。当新报文的优先级等于第一报文的优先级时,新报文
与第一报文属于同一类型。通过上述技术方案,新报文的优先级低于或者等于处理器当前处理的报文的优先级时,调度器不会向处理器发送触发信号,处理器不需要暂停对当前处理的报文的处理。因此,减轻了处理器的开销,提高了处理器的处理效率。图2为本发明实施例提供的一种用于处理报文的装置的结构示意图。所述装置是调度器。调度器用于触发处理器对报文进行处理。调度器为网络设备中的部件。网络设备可以是路由器、交换机、防火墙或者负载均衡器。如图2所示,本实施例提供的装置包括优先级确定单元202,用于确定新报文的类型,根据报文的类型与优先级的对应关系,确定所述新报文的优先级。新报文可以是网络设备的网卡收到的报文。网卡接收到新报文后,可以将新报文存储在网络设备的内存中。网卡接收到新报文后,网卡可以将新报文的标识发送至调度器。举例来说,新报文的标识可以是新报文存储在内存中的物理地址或者逻辑地址。另外,网卡接收到新报文后,网卡可以将新报文发送至调度器。网卡和调度器可以是物理上分离的器件。网卡和调度器也可以集成在一个芯片中。调度器收到新报文的标识后,可以根据新报文的标识获得新报文,并对新报文进行解析,从而确定新报文的类型。另外,调度器收到新报文后,可以直接对新报文进行解析,从而确定新报文的类型。例如,当新报文是IP分组时,调度器可以解析新报文中的IP头,并根据IP头中的协议字段判断新报文的类型是否是TCP报文或者UDP报文。调度器确定新报文的类型后,可以根据报文的类型与优先级的对应关系,确定新报文的优先级。例如,报文的类型与优先级的对应关系可以规定TCP报文的优先级最高,UDP报文的优先级最低。优先级用于指示不同类型的报文被处理的先后顺序。优先级与报文的类型相关。优先级高的报文先于优先级低的报文被处理。比较单元204,用于根据所述优先级确定单元202确定的所述新报文的优先级,比较第一报文与所述新报文的优先级的高低,所述第一报文为处理器当前处理的报文。第一报文是处理器当前处理的报文。举例来说,第一报文可以是调度器最近一次指示处理器处理的报文。调度器可以通过向处理器发送第一报文的方式指示处理器处理第一报文。调度器也可以通过向处理器发送第一报文的标识的方式指示处理器处理第一报文。处理器可以通过第一报文的标识获得第一报文。第一报文的标识可以是第一报文存储在内存中的物理地址或者逻辑地址。
比较单元204用于比较第一报文与所述新报文的优先级的高低。举例来说,调度器可以比较第一报文的类型与新报文的类型的优先级的高低,从而确定第一报文与新报文的优先级的高低。触发单元206,用于如果所述比较单元204的比较结果为所述新报文的优先级高于所述第一报文的优先级,向所述处理器发送触发信号,以使所述处理器中断对所述第一报文的处理,并对所述新报文进行处理。可见,通过本实施例提供的装置,调度器用于对新报文与处理器当前处理的报文的优先级进行比较,处理器不需要比较当前处理的报文的优先级与新报文的优先级。因此,减轻了处理器的开销,提高了处理器的处理效率。可选的,所述触发单元206用于向所述处理器发送触发信号,以使所述处理器中断对所述第一报文的处理,并根据所述新报文的处理函数对所述新报文进行处理,所述触发信号包含所述新报文和所述新报文的处理函数的标识,或者,所述触发信号包含所述新报文的标识和所述新报文的处理函数的标识。调度器可以根据报文的类型与处理函数的对应关系,确定新报文所对应的处理函数。举例来说,报文的类型与处理函数的对应关系可以是包含报文的类型与处理函数的标识的对应表。处理函数的标识可以是处理函数的入口地址。本领域的技术人员可以理解,处理函数的入口地址是指处理函数经过编译后生成的目标代码中的第一条指令的指针。目标代码可以是由多条指令构成的指令序列。触发信号可以包含所述新报文和所述新报文的处理函数的标识。另外,触发信号可以包含所述新报文的标识和所述新报文的处理函数的标识。触发信号可以使处理器根据新报文的处理函数的标识获得新报文的处理函数。可选的,所述装置还可以包括第一添加单元,用于接收所述处理器发送的所述第一报文的上下文信息;将所述第一报文的上下文信息添加到所述第一报文的类型对应的队列的队列头。处理器处理第一报文的过程中会产生第一报文的上下文信息。举例来说,第一报文的上下文信息可以包括第一报文或者第一报文的标识。另外,第一报文的上下文信息还可以包括PC中的指针。本领域的技术人员可以理解,PC中可以存储第一报文的处理函数经过编译后生成的指令序列中的尚未被处理器执行的第一指令的指针。其中,所述第一指令的上一条指令已经被处理器执行。第一报文的上下文信息可以存储在处理器的寄存器中。第一报文的上下文信息被添加到第一报文的类型对应的队列的队列头后,能够使得第一报文先于同一队列中的其它报文被调度器调度。可选的,所述装置还可以包括第一调度请求处理单元,用于接收所述处理器发送的第一调度请求;从所述第一报文的类型对应的队列的队列头获取所述第一报文的上下文信息;向所述处理器发送所述第一调度请求对应的第一调度响应,所述第一调度响应包括所述第一报文的上下文信息,以使所述处理器根据所述第一报文的上下文信息对所述第一报文进行处理。处理器处理完毕当前处理的报文后,处理器可以向调度器发送第一调度请求。第一调度请求用于使调度器向处理器分发待处理的报文。可选的,所述装置还可以包括第二调度请求处理单元,用于接收所述处理器发送的第二调度请求;从第二队列中获得所述第二队列的队列头,所述第二队列对应的报文的类型的优先级最高,所述第二队列的队列头包含第二报文的标识;根据所述第二报文的标识,以及报文的类型与处理函数的标识的对应关系,获得所述第二报文的处理函数的标识;向所述处理器发送与所述第二调度请求对应的第二调度响应,所述第二调度响应中包括所述第二报文的标识以及所述第二报文的处理函数的标识。处理器处理完毕当前处理的报文后,处理器可以向调度器发送第二调度请求。第二调度请求用于使调度器向处理器分发待处理的报文。可选的,
所述装置还可以包括所述新报文的优先级不高于所述第一报文的优先级是指所述新报文的优先级低于或者等于所述第一报文的优先级。当新报文的优先级等于第一报文的优先级时,新报文
与第一报文属于同一类型。通过上述技术方案,新报文的优先级低于或者等于处理器当前处理的报文的优先级时,调度器不会向处理器发送触发信号,处理器不需要暂停对当前处理的报文的处理。因此,减轻了处理器的开销,提高了处理器的处理效率。本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,可以仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者 说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括U盘、移动硬盘、只读存储器(英文缩写为R0M,英文全称为Read-Only Memory)、随机存取存储器(英文缩写为RAM,英文全称为Random AccessMemory)、磁碟或者光盘等各种可以存储程序代码的介质。以上所述,仅为本发明的具体实施方式
,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
权利要求
1.一种用于处理报文的方法,其特征在于,包括 调度器确定新报文的类型,根据报文的类型与优先级的对应关系,确定所述新报文的优先级; 所述调度器比较第一报文与所述新报文的优先级的高低,所述第一报文为处理器当前处理的报文; 如果所述新报文的优先级高于所述第一报文的优先级,所述调度器向所述处理器发送触发信号,以使所述处理器中断对所述第一报文的处理,并对所述新报文进行处理。
2.根据权利要求I所述的方法,其特征在于,所述调度器向所述处理器发送触发信号,以使所述处理器中断对所述第一报文的处理,并对所述新报文进行处理包括 所述调度器向所述处理器发送触发信号,以使所述处理器中断对所述第一报文的处理,并根据所述新报文的处理函数对所述新报文进行处理,所述触发信号包含所述新报文和所述新报文的处理函数的标识,或者,所述触发信号包含所述新报文的标识和所述新报文的处理函数的标识。
3.根据权利要求I或2所述方法,其特征在于,在所述调度器向所述处理器发送触发信号之后,还包括 所述调度器接收所述处理器发送的所述第一报文的上下文信息; 所述调度器将所述第一报文的上下文信息添加到所述第一报文的类型对应的队列的队列头。
4.根据权利要求3所述的方法,其特征在于,在所述将所述第一报文的上下文信息添加到所述第一报文的类型对应的队列的队列头之后,所述方法还包括 所述调度器接收所述处理器发送的第一调度请求; 所述调度器从所述第一报文的类型对应的队列的队列头中获取所述第一报文的上下文信息; 所述调度器向所述处理器发送所述第一调度请求对应的第一调度响应,所述第一调度响应包括所述第一报文的上下文信息,以使所述处理器根据所述第一报文的上下文信息对所述第一报文进行处理。
5.根据权利要求I至4中任意一项所述的方法,其特征在于,所述方法还包括 所述调度器接收所述处理器发送的第二调度请求; 所述调度器从第二队列中获得所述第二队列的队列头,所述第二队列对应的报文的类型的优先级最高,所述第二队列的队列头包含第二报文的标识; 所述调度器根据所述第二报文的标识,以及报文的类型与处理函数的标识的对应关系,获得所述第二报文的处理函数的标识; 所述调度器向所述处理器发送与所述第二调度请求对应的第二调度响应,所述第二调度响应中包括所述第二报文的标识以及所述第二报文的处理函数的标识。
6.根据权利要求I至2中任意一项所述的方法,其特征在于,所述调度器比较处理器当前处理的报文的优先级与所述新报文的优先级的高低之后,所述方法还包括 如果所述新报文的优先级不高于所述第一报文的优先级,所述调度器将所述新报文或者所述新报文的标识加入所述新报文的类型对应的队列的队列尾。
7.一种用于处理报文的装置,其特征在于,包括优先级确定单元,用于确定新报文的类型,根据报文的类型与优先级的对应关系,确定所述新报文的优先级; 比较单元,用于根据所述优先级确定单元确定的所述新报文的优先级,比较第一报文与所述新报文的优先级的高低,所述第一报文为处理器当前处理的报文; 触发单元,用于如果所述比较单元的比较结果为所述新报文的优先级高于所述第一报文的优先级,向所述处理器发送触发信号,以使所述处理器中断对所述第一报文的处理,并对所述新报文进行处理。
8.根据权利要求7所述的装置,其特征在于, 所述触发单元用于向所述处理器发送触发信号,以使所述处理器中断对所述第一报文的处理,并根据所述新报文的处理函数对所述新报文进行处理,所述触发信号包含所述新报文和所述新报文的处理函数的标识,或者,所述触发信号包含所述新报文的标识和所述新报文的处理函数的标识。
9.根据权利要求7或8所述的装置,其特征在于,还包括 第一添加单元,用于接收所述处理器发送的所述第一报文的上下文信息;将所述第一报文的上下文信息添加到所述第一报文的类型对应的队列的队列头。
10.根据权利要求9所述的装置,其特征在于,还包括 第一调度请求处理单元,用于接收所述处理器发送的第一调度请求;从所述第一报文的类型对应的队列的队列头获取所述第一报文的上下文信息;向所述处理器发送所述第一调度请求对应的第一调度响应,所述第一调度响应包括所述第一报文的上下文信息,以使所述处理器根据所述第一报文的上下文信息对所述第一报文进行处理。
11.根据权利要求7至10任意一项所述的装置,其特征在于,还包括 第二调度请求处理单元,用于接收所述处理器发送的第二调度请求;从第二队列中获得所述第二队列的队列头,所述第二队列对应的报文的类型的优先级最高,所述第二队列的队列头包含第二报文的标识;根据所述第二报文的标识,以及报文的类型与处理函数的标识的对应关系,获得所述第二报文的处理函数的标识;向所述处理器发送与所述第二调度请求对应的第二调度响应,所述第二调度响应中包括所述第二报文的标识以及所述第二报文的处理函数的标识。
12.根据权利要求7至8任意一项所述的装置,其特征在于,包括 第二添加单元,用于如果所述新报文的优先级不高于所述第一报文的优先级,将所述新报文或者所述新报文的标识加入所述新报文的类型对应的队列的队列尾。
全文摘要
本发明实施例提供了一种用于处理报文的方法及装置。该方法包括调度器确定新报文的类型,根据报文的类型与优先级的对应关系,确定所述新报文的优先级;所述调度器比较第一报文与所述新报文的优先级的高低,所述第一报文为处理器当前处理的报文;如果所述新报文的优先级高于所述第一报文的优先级,所述调度器向所述处理器发送触发信号,以使所述处理器中断对所述第一报文的处理,并对所述新报文进行处理。此外,本发明实施例还提供了相应的装置。通过本发明实施例提供的技术方案,能够减轻处理器的开销,提高处理器的处理效率。
文档编号H04L12/56GK102638403SQ201210095919
公开日2012年8月15日 申请日期2012年4月1日 优先权日2012年4月1日
发明者王明东 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1