一种报文处理方法及装置的制造方法

文档序号:9750635阅读:371来源:国知局
一种报文处理方法及装置的制造方法
【技术领域】
[0001]本发明涉及通信技术领域,尤其涉及一种报文处理方法及装置。
【背景技术】
[0002]随着信息技术的不断发展以及网络通信带宽的不断膨胀,对通信设备处理性能的要求也越来越高,多核中央处理器(Central Processing Unit,简称CPU)以其性能高、通用性好和软件可移植性好等特点,被广泛应用在通信设备中。现有的多核CPU中,每个处理单元(核)为相互独立的结构,各核之间在任务和资源的获取、释放等操作过程中存在核与核之间的竞争问题,影响多核CPU的处理性能。各个核之间处理任务的时序相互独立,可能造成先分配给多核CPU处理的任务后处理完成,后分配给多核CPU处理的任务先处理完成的情况,从而造成同一或相关类型任务之间处理乱序的问题。
[0003]目前,通常采用软件方式实现多核CPU待处理任务(如报文接收、发送、保序、流分类等)的分类和处理功能。具体的,多核CPU内部的资源由软件统一管理,采用资源互锁的方式完成报文收发、分类和处理功能。
[0004]但是,软件实现保序功能时存在的串行执行以及内存共享问题,将导致多核之间互锁,影响多核CPU内的并行处理能力;并且,对于实时性要求较高的功能(如收发报文、定时器等功能),采用软件方式对多核CPU所需要处理的报文进行调度分配及保序处理时,需要分配独占式的处理器资源进行处理,带来了处理器资源浪费的问题。

【发明内容】

[0005]本发明实施例提供一种报文处理方法及装置,用以解决目前在对多核CPU所需要处理的报文进行调度及保序处理时,存在CPU内多核无法并行处理任务、任务处理速度慢以及处理器资源浪费的问题。
[0006]本发明实施例提供的具体技术方案如下:
[0007]第一方面,提供一种报文处理方法,包括:从物理端口接收待处理报文,根据所述待处理报文的报文信息生成待处理任务,所述待处理任务中包括所述报文信息和序列码;所述序列码为根据所述物理端口的标识以及接收所述待处理报文的顺序,为所述待处理任务分配的唯一标识;根据所述待处理任务中的报文信息以及序列码,将所述待处理任务分配至相应的待处理队列中;将所述待处理队列中的所述待处理任务调度至多核中心处理器CPU中与所述待处理队列存在映射关系的处理单元,由所述处理单元对所述待处理任务进行处理;接收所述多核CPU发送的已处理任务,所述已处理任务中包括处理类型、已处理队列标识以及所述序列码;根据所述序列码对所述已处理任务进行保序处理,并在保序处理后根据所述已处理任务中的处理类型,对所述已处理任务完成所述处理类型对应的处理动作。
[0008]结合第一方面,在第一种可能的实现方式中,采用外部部件高速互连PCIE协议,通过直接存储器存储DMA方式,将所述待处理报文写入多核CPU的内存中,并获取所述待处理报文在所述内存中的存储地址;所述待处理任务中还包括所述存储地址;采用DMA方式,将所述待处理任务发送至多核CPU中与所述待处理队列存在映射关系的处理单元;所述处理单元根据所述待处理任务中所述待处理报文的存储地址获取所述待处理报文,根据所述待处理任务中的报文信息对所述待处理报文进行处理,得到已处理报文;将所述已处理报文存储在所述待处理报文的存储地址对应的所述内存中。
[0009]结合第一方面第一种可能的实现方式,在第二种可能的实现方式中,当所述已处理任务中的处理类型为发送时,根据所述已处理任务中的已处理队列标识以及所述序列码,将所述已处理任务添加至所述已处理队列标识对应的已处理队列中;若所述已处理任务的序列码为所述已处理队列中的最小序列码,获取所述已处理报文的存储地址,并根据所述存储地址获取所述已处理报文,将所述已处理报文发送至所述物理端口。
[0010]结合第一方面第一种可能的实现方式,在第三种可能的实现方式中,当所述已处理任务中的处理类型为重新加入队列时,根据所述已处理任务中的已处理队列标识以及所述序列码,将所述已处理任务添加至所述已处理队列标识对应的已处理队列中。
[0011]结合第一方面第一种可能的实现方式,在第四种可能的实现方式中,当所述已处理任务中的处理类型为删除时,从待处理队列中删除所述待处理任务,并指示所述多核CPU释放所述已处理报文的存储空间。
[0012]第二方面,提供一种报文处理装置,包括:
[0013]接收单元,用于从物理端口接收待处理报文;生成单元,用于根据所述接收单元接收的待处理报文的报文信息生成待处理任务,所述待处理任务中包括所述报文信息和序列码;所述序列码为根据所述物理端口的标识以及接收所述待处理报文的顺序,为所述待处理任务分配的唯一标识;分配单元,用于根据所述生成单元生成的待处理任务中的报文信息以及序列码,将所述待处理任务分配至相应的待处理队列中;调度单元,用于将所述分配单元分配完成的待处理队列中的所述待处理任务调度至多核中心处理器CPU中与所述待处理队列存在映射关系的处理单元,由所述处理单元对所述待处理任务进行处理;所述接收单元,还用于接收所述多核CPU发送的已处理任务,所述已处理任务中包括处理类型、已处理队列标识以及所述序列码;任务处理单元,用于根据所述序列码对所述接收单元接收到的已处理任务进行保序处理,并在保序处理后根据所述已处理任务中的处理类型,对所述已处理任务完成所述处理类型对应的处理动作。
[0014]结合第二方面,在第一种可能的实现方式中,还包括获取单元,用于:采用外部部件高速互连PCIE协议,通过直接存储器存储DMA方式,将所述待处理报文写入多核CPU的内存中,并获取所述待处理报文在所述内存中的存储地址;所述待处理任务中还包括所述存储地址;所述任务处理单元在保序处理后根据所述已处理任务中的处理类型,对所述已处理任务完成所述处理类型对应的处理动作时,具体包括:采用DMA方式,将所述待处理任务发送至多核CPU中与所述待处理队列存在映射关系的处理单元;所述处理单元根据所述待处理任务中所述待处理报文的存储地址获取所述待处理报文,根据所述待处理任务中的报文信息对所述待处理报文进行处理,得到已处理报文;将所述已处理报文存储在所述待处理报文的存储地址对应的所述内存中。
[0015]结合第二方面第一种可能的实现方式,在第二种可能的实现方式中,所述任务处理单元,具体用于:当所述已处理任务中的处理类型为发送时,根据所述已处理任务中的已处理队列标识以及所述序列码,将所述已处理任务添加至所述已处理队列标识对应的已处理队列中;若所述已处理任务的序列码为所述已处理队列中的最小序列码,获取所述已处理报文的存储地址,并根据所述存储地址获取所述已处理报文,将所述已处理报文发送至所述物理端口。
[0016]结合第二方面第一种可能的实现方式,在第三种可能的实现方式中,所述任务处理单元,具体用于:当所述已处理任务中的处理类型为重新加入队列时,根据所述已处理任务中的已处理队列标识以及所述序列码,将所述已处理任务添加至所述已处理队列标识对应的已处理队列中。
[0017]结合第二方面第一种可能的实现方式,在第四种可能的实现方式中,所述任务处理单元,具体用于:当所述已处理任务中的处理类型为删除时,从待处理队列中删除所述待处理任务,并指示所述多核CPU释放所述已处理报文的存储空间。
[0018]本发明实施例中,根据接收到的待处理报文的报文信息生成待处理任务,并根据待处理任务对应的物理端口的标识和接收顺序为生成的待处理任务分配序列码,以及根据待处理任务对应的报文信息,为该待处理任务进行分类;将分类后的待处理任务调度至多核CPU ;根据待处理任务的序列码对多核CPU已处理任务进行保序处理。采用本发明技术方案,由多核CPU以外的装置实现报文的调度及保序功能,使多核CPU能够乱序且并行执行任务,缓解了多核CPU内多核之间的竞争和资源互锁,有效提升了多核CPU的并行处理能力,此外,多核CPU并行执行任务能够有效提高任务处理速度,以及避免处理器资源浪费的问题。
【附图说明】
[0019]图1为本发明实施例中报文处理系统架构示意图;
[0020]图2为本发明实施例中报文处理流程图;
[0021]图3为本发明实施例中任务结构示意图;
[0022]图4为本发明实施例中为待处理任务分配序列码示意图;
[0023]图5为本发明实施例中保序过程中入队操作示意图;
[0024]图6为本发明实施例中保序过程中出队操作示意图;
[0025]图7为本发明实施例中具体应用场景下报文处理流程图;
[0026]图8为本发明实施例中报文处理装置结构示意图;
[0027]图9为本发明实施例中报文处理设备结构示意图。
【具体实施方式】
[0028]为了解决现有技术中对多核CPU所需要处理的任务进行保序处理时,多核无法并行处理任务以及处理器资源浪费的问题。本发明实施例中,在多核CPU外部设置前置预处理器,由前置预处理器根据接收到的待处理报文的报文信息生成待处理任务,根据该待处理任务对应的物理端口的标识和接收顺序为该待处理任务分配序列码,并根据该待处理任务对应的报文信息,对该待处理任务进行分类;前置预处理器将分类后的待处理任务调度至多核CPU并根据待处理任务的序列码对多核CPU已处理任务进行保序处理。采用本发明技术方案,由前置预处理器实现报文的调度及保序功能,多核CPU可以并行执行任务,各任务之间可以乱序而无需按序处理,缓
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1