CN110908939B - 一种报文处理方法、装置及网络芯片 - Google Patents

一种报文处理方法、装置及网络芯片 Download PDF

Info

Publication number
CN110908939B
CN110908939B CN201911184538.1A CN201911184538A CN110908939B CN 110908939 B CN110908939 B CN 110908939B CN 201911184538 A CN201911184538 A CN 201911184538A CN 110908939 B CN110908939 B CN 110908939B
Authority
CN
China
Prior art keywords
npc
storage address
task processing
data
piece
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.)
Active
Application number
CN201911184538.1A
Other languages
English (en)
Other versions
CN110908939A (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.)
New H3C Semiconductor Technology Co Ltd
Original Assignee
New H3C Semiconductor Technology 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 New H3C Semiconductor Technology Co Ltd filed Critical New H3C Semiconductor Technology Co Ltd
Priority to CN201911184538.1A priority Critical patent/CN110908939B/zh
Publication of CN110908939A publication Critical patent/CN110908939A/zh
Application granted granted Critical
Publication of CN110908939B publication Critical patent/CN110908939B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal

Abstract

本申请提供一种报文处理方法、装置及网络芯片,包括:接收BMU发送的第一存储地址和第二存储地址,根据第一存储地址生成首片数据的任务处理标识,并依据第二存储地址存储所述任务处理标识;当接收到多个NPC发送的任务处理请求时,将第二存储地址分发给满足任务处理条件的目标NPC,由满足任务处理条件的目标NPC基于所述第二存储地址读取所述任务处理标识,并基于任务处理标识获取所述首片数据,并根据所述首片数据处理数据报文;其中,所述任务处理条件与所述第一存储地址、所述第二存储地址是否在同一个NPC对应的存储地址范围内的结果相关。使用本申请提供的方法可以减少NPC在获取首片数据时对链路带宽的占用。

Description

一种报文处理方法、装置及网络芯片
技术领域
本申请涉及计算机通信领域,尤其涉及一种报文处理方法、装置及网络芯片。
背景技术
网络芯片通常包括多个网络处理器组(The Network Processor Clusters,NPC),各NPC之间相连,形成了网络芯片上由NPC构成的NoC(Network on Chip,片上网络)网络。
在网络芯片中,每个NPC包括一段存储空间,用来存储数据。每个NPC可以访问本身对应的存储空间,也可以通过与其他NPC之间的链路访问其他NPC对应的存储空间。
在现有的报文的首片数据的存储方法中,通常将首片数据存储在第一NPC对应的存储空间中,而将首片数据的存储地址(即首片数据在第一NPC对应的存储空间的存储地址)储存在NPC对应的存储空间。
在读取首片数据时,网络芯片会在各NPC中选择用于读取首片数据的第三NPC。第三NPC就需要通过第三NPC与NPC之间的链路,从NPC的存储空间中读取首片数据的存储地址,然后第三NPC再通过第三NPC与第一NPC之间的链路,依据该首片数据的存储地址从第一NPC对应的存储空间中读取首片数据。
一方面,第三NPC在获取首片数据时,需要占用第三NPC与NPC之间的链路带宽来获取首片数据的存储地址、占用第三NPC与第一NPC之间的链路带宽来获取首片数据。由此可以看出,第三NPC需要占用多条链路的链路带宽才能获得首片数据。
另一方面,选择出的第三NPC极大可能与第一NPC、第二NPC之间的链路都较长,这样会增加数据交互的时长,进而会增加交互数据占用链路带宽的时长,从而大大增加了对于链路带宽的占用。
综上两方面,上述读取首片数据的方式会增大不必要的链路带宽占用,造成带宽资源的浪费。
发明内容
有鉴于此,本申请提供一种报文处理方法、装置及网络芯片,用以解决现有技术中读取首片数据的方式会增大不必要的链路带宽占用,造成带宽资源的浪费的问题。
具体地,本申请是通过如下技术方案实现的:
根据本申请的第一方面,提供一种报文处理方法,应用于网络芯片中的处理器管理单元PMU,所述网络芯片还包括:接收通路的网络直接内存存取RxDMA、缓存管理单元BMU和多个网络处理器组NPC,所述方法包括:
接收所述BMU发送的第一存储地址和第二存储地址,其中,所述第一存储地址和所述第二存储地址为所述BMU在接收到数据报文中的首片数据的缓存申请请求后分配的,所述第一存储地址用于存储所述首片数据;
根据所述第一存储地址生成所述首片数据的任务处理标识,并依据所述第二存储地址存储所述任务处理标识;
当接收到多个NPC发送的任务处理请求时,将所述第二存储地址分发给满足任务处理条件的目标NPC,由所述满足任务处理条件的目标NPC基于所述第二存储地址读取所述任务处理标识,并基于所述任务处理标识获取所述首片数据,并根据所述首片数据处理数据报文;
其中,所述任务处理条件与所述第一存储地址、所述第二存储地址是否在同一个NPC对应的存储地址范围内的结果相关。
可选的,当所述第一存储地址、所述第二存储地址在同一个NPC对应的存储地址范围内时,所述任务处理条件为:判断所述同一个NPC是否空闲;以及当所述同一个NPC空闲时,则所述满足任务处理条件的目标NPC为所述同一个NPC。
可选的,当所述同一个NPC非空闲时,则所述方法,还包括:
确定当前各个NPC的优先级,其中,每一NPC的优先级为基于该NPC的空闲程度和该NPC与所述同一个NPC之间的距离确定出的;
判断当前各个NPC的优先级是否高于优先级阈值;
若判断结果为是,则将所述第二存储地址分发给优先级高于优先级阈值的NPC,由所述高于优先级阈值的NPC基于第二存储地址读取所述任务处理标识,并基于所述任务处理标识获取所述首片数据,并根据所述首片数据处理所述数据报文。
可选的,当所述第一存储地址、所述第二存储地址在同一个NPC对应的存储地址范围内时,所述任务处理条件为:判断当前各个NPC的优先级是否高于优先级阈值,则所述满足任务处理条件的目标NPC为优先级高于优先级阈值的NPC;
其中,每一NPC的优先级为基于该NPC的空闲程度和该NPC与所述同一个NPC之间的距离确定出的,且该NPC的优先级与该NPC的空闲程度呈正相关,与所述距离呈负相关。
可选的,按照下述方法基于该NPC的空闲程度和该NPC与所述同一个NPC之间的距离确定该NPC的优先级:
计算所述空闲程度与所述距离之间的比值;
将所述比值与预设系数的乘积,确定为该NPC的优先级。
可选的,当所述第一存储地址、所述第二存储地址不在同一个NPC对应的存储地址范围内时,所述任务处理条件为:判断所述第一存储地址对应的NPC或者所述第二存储地址对应的NPC是否空闲;以及所述满足任务处理条件的目标NPC为判断结果为是的NPC。
根据本申请的第二方面,提供一种报文处理方法,所述方法应用于网络芯片中的缓存管理单元BMU,所述网络芯片还包括:处理器管理单元PMU、接收通路的网络直接内存存取RxDMA和多个网络处理器组NPC,每一NPC包括至少一个网络处理器NP;所述方法包括:
接收RxDMA发送的首片数据的缓存申请请求,其中,所述首片数据为所述RxDMA从接收到的数据报文中提取出的;
根据所述缓存申请请求,向所述RxDMA发送第一存储地址,以使所述RxDMA依据所述第一存储地址存储所述首片数据;
向PMU发送第一存储地址和第二存储地址,以使所述PMU根据所述第一存储地址生成所述首片数据的任务处理标识,并依据所述第二存储地址存储所述任务处理标识,当所述PMU接收到NPC发送的任务处理请求时,将所述第二存储地址分发给满足任务处理条件的目标NPC,由所述满足任务处理条件的目标NPC基于第二存储地址读取所述任务处理标识,并依据所述任务处理标识获取所述首片数据,并根据所述首片数据处理所述数据报文;
其中,所述任务处理条件与所述第一存储地址、所述第二存储地址是否在同一个NPC对应的存储地址范围内的结果相关。
根据本申请的第三方面,提供一种报文处理装置,所述装置设置于网络芯片中的处理器管理单元PMU,所述网络芯片还包括:接收通路的网络直接内存存取RxDMA、缓存管理单元BMU和多个网络处理器组NPC,所述装置包括:
接收单元,用于接收所述BMU发送的第一存储地址和第二存储地址,其中,所述第一存储地址和所述第二存储地址为所述BMU在接收到数据报文中的首片数据的缓存申请请求后分配的,所述第一存储地址用于存储所述首片数据;
存储单元,用于根据所述第一存储地址生成所述首片数据的任务处理标识,并依据所述第二存储地址存储所述任务处理标识;
分发单元,用于当接收到多个NPC发送的任务处理请求时,将所述第二存储地址分发给满足任务处理条件的目标NPC,由所述满足任务处理条件的目标NPC基于所述第二存储地址读取所述任务处理标识,并基于所述任务处理标识获取所述首片数据,并根据所述首片数据处理数据报文;
其中,所述任务处理条件与所述第一存储地址、所述第二存储地址是否在同一个NPC对应的存储地址范围内的结果相关。
根据本申请的第四方面,提供一种报文处理装置,所述装置设置于网络芯片中的缓存管理单元BMU,所述网络芯片还包括:处理器管理单元PMU、接收通路的网络直接内存存取RxDMA和多个网络处理器组NPC,每一NPC包括至少一个网络处理器NP;所述方法包括:
接收单元,用于接收RxDMA发送的首片数据的缓存申请请求,其中,所述首片数据为所述RxDMA从接收到的数据报文中提取出的;
第一发送单元,用于根据所述缓存申请请求,向所述RxDMA发送第一存储地址,以使所述RxDMA依据所述第一存储地址存储所述首片数据;
第二发送单元,用于向PMU发送第一存储地址和第二存储地址,以使所述PMU根据所述第一存储地址生成所述首片数据的任务处理标识,并依据所述第二存储地址存储所述任务处理标识,当所述PMU接收到NPC发送的任务处理请求时,将所述第二存储地址分发给满足任务处理条件的目标NPC,由所述满足任务处理条件的目标NPC基于第二存储地址读取所述任务处理标识,并依据所述任务处理标识获取所述首片数据,并根据所述首片数据处理所述数据报文;
其中,所述任务处理条件与所述第一存储地址、所述第二存储地址是否在同一个NPC对应的存储地址范围内的结果相关。
根据本申请的第五方面,提供一种网络芯片,包括:处理器管理单元PMU、接收通路的网络直接内存存取RxDMA、缓存管理单元BMU和多个网络处理器组NPC;
所述RxDMA,用于从接收到的数据报文中提取首片数据,并向BMU发送首片数据的缓存申请请求;
所述BMU,用于根据所述缓存申请请求,向所述RxDMA发送第一存储地址,以使所述RxDMA依据所述第一存储地址存储所述首片数据,并向PMU发送第一存储地址和第二存储地址;
所述PMU,用于根据所述第一存储地址生成所述首片数据的任务处理标识,并依据所述第二存储地址存储所述任务处理标识,当接收到多个NPC发送的任务处理请求时,将所述第二存储地址分发给满足任务处理条件的目标NPC,由所述满足任务处理条件的目标NPC基于所述第二存储地址读取所述任务处理标识,并基于所述任务处理标识获取所述首片数据,并根据所述首片数据处理数据报文;
其中,所述任务处理条件与所述第一存储地址、所述第二存储地址是否在同一个NPC对应的存储地址范围内的结果相关。
由上述描述可知,PMU在为第二存储地址分配NPC时,是将第二存储地址分配给满足任务处理条件的目标NPC,而该任务处理条件与所述第一存储地址、所述第二存储地址是否在同一个NPC对应的存储地址范围内的结果相关,使得PMU选择出的目标NPC与第二存储地址对应的NPC之间的链路较短,从而使得这两个NPC之间用于获取首片数据存储地址和首片数据的交互数据对于链路带宽的占用时间就更短,所以可以极大节约了链路带宽。
附图说明
图1是本申请一示例性实施例示出的一种网络芯片的结构示意图;
图2是本申请一示例性实施例示出的一种报文处理方法的流程图;
图3是本申请一示例性实施例示出的另一种首片数据处理方法的流程图;
图4是本申请一示例性实施例示出的一种报文处理装置的框图;
图5是本申请一示例性实施例示出的另一种报文处理装置的框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相对应的列出项目的任何或所有可能组合。
应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
参见图1,图1是本申请一示例性实施例示出的一种网络芯片的结构示意图。
网络芯片包括:RxDMA(The Network DMAs on Receive path,接收通路的网络DMA)、BMU(The Buffer Management Unit,缓存管理单元)、PMU(The ProcessorManagement Unit,处理器管理单元)、多个NPC(The Network Processor Clusters.网络处理器组)。
1、RxDMA
RxDMA是指在接收通路上部署的网络DMA(Direct Memory Access,直接内存存取),用于提供在外设和存储器之间高速数据存储。进一步来说,网络芯片接收到的报文数据无需CPU干预,可以通过RxDMA储存在网路芯片对应的存储空间中。
2、NPC
上述NPC为网络处理器组,用于处理网络芯片接收到的报文。每个NPC中包括至少一个CPU(Central Processing Processor,中央处理器)、路由单元、存储空间。NPC中配置了存储控制器。
上述CPU,为NPC中的处理单元,用于处理报文。
上述路由单元,用于传输NPC之间的数据。进一步来说,如图1所示,各NPC中的路由单元相连,形成NoC(Network on Chip,片上网络)网络,任两个NPC可以通过NoC网络实现数据的传输。
上述存储空间,用来储存数据。每个NPC可以访问本身对应的存储空间,也可以通过自身与其他NPC之间的链路访问其他NPC对应的存储空间。在这里需要说明的是,本申请所述的“NPC对应的存储地址”是指该NPC被预配置的存储空间的地址。
上述存储控制器,用于控制NPC对应的存储空间。比如存储控制器接收到其他NPC发送的数据读请求时,可依据该数据读请求中携带的存储地址,从本地存储空间中读取数据,并返回给该其他NPC。
当然,在实际应用中,NPC还可包括其他模块,这里只是对NPC进行示例性地说明,不对该NPC进行具体地限定。
3、BMU
BMU为网络芯片中的缓存管理单元,用于管理各NPC对应的存储地址。例如,BMU可以进行存储地址分配,存储地址回收等等。这里只是对BMU的功能进行示例性地说明,不对该BMU的功能进行具体地限定。
4、PMU
PMU为网络芯片中的处理器管理单元,主要用于管理各NPC。例如,PMU可以管理NPC待处理的报文任务。再例如,PMU可以监控各NPC的负载情况。PMU还维护了各个NPC在网络芯片中的位置信息等。
这里只是对PMU的功能进行示例性地说明,不对该PMU功能进行具体地限定。
下面对本申请提供的首片数据处理方法进行详细地说明。
参见图2,图2是本申请示出的一种报文处理方法的流程图。该方法可包括如下所示步骤。
步骤201:BMU接收RxDMA发送的首片数据的缓存申请请求,其中,首片数据为RxDMA从接收到的数据报文中提取出的。
在本申请实施例中,网络芯片的RxDMA在接收到数据报文后,会对数据报文进行切片,得到多个片数据。由于数据报文的首片数据中携带有处理数据报文所需的信息,所以RxDMA会向BMU申请用于存储首片数据的存储地址。
在申请时,RxDMA可向BMU发送该首片数据的缓存申请请求。BMU在接收到该首片数据的缓存申请请求后,可分配第一存储和第二存储地址。
可选的,BMU在同一NPC对应的存储地址范围内,分配出第一存储地址和第二存储地址,使得第一存储地址和第二存储地址在同一个NPC对应的存储地址范围内。
可选的,BMU可在一个NPC对应的存储地址范围内分配出第一存储地址,在另一个NPC对应的存储地址范围内分配出第二存储地址,使得第一存储地址和第二存储地址不在同一个NPC对应的存储地址范围内。
当然,本实施例中第一存储地址、第二存储地址是否在同一个NPC对应的存储地址范围内的结果与下文提及的任务处理条件相关,下文将详细描述其相关性。
步骤202:BMU根据缓存申请请求,向RxDMA发送第一存储地址,以使RxDMA依据第一存储地址存储首片数据。
具体地,BMU可将第一存储地址发送给RxDMA。RxDMA在接收到第一存储地址后,可在第一存储地址所指示的存储空间内存储首片数据。
步骤203:BMU向PMU发送第一存储地址和第二存储地址。
步骤204:PMU根据第一存储地址生成首片数据的任务处理标识,并依据第二存储地址存储任务处理标识。
在实现时,PMU可依据第一存储地址生成首片数据的任务处理标识(任务处理标识也被简称为JD),并将JD存储在第二存储地址所指示的存储空间。因此,第二存储地址也可以称为JD的存储地址。
此外,PMU上预设置了JOB队列。该JOB队列存储了网络芯片上的NPC还未处理的JD的存储地址,即上述第二存储地址。具体实施时,PMU可以预先将上述第二存储地址添加在预设的JOB队列中。
步骤205:当接收到NPC发送的任务处理请求时,将第二存储地址分发给满足任务处理条件的目标NPC,由满足任务处理条件的目标NPC基于第二存储地址读取任务处理标识,并基于任务处理标识获取首片数据,并根据首片数据处理数据报文。
在接收到NPC发送的任务处理请求时,PMU可从上述JOB队列中获取该第二存储地址。然后,NPC可在发送任务处理请求的多个NPC中或者在网络芯片上的所有NPC中选择满足任务处理条件的目标NPC。
PMU可将第二存储地址发送给该目标NPC。目标NPC可基于第二存储地址读取任务处理标识,并依据任务处理标识中记录的第一存储地址获取首片数据,并根据首片数据处理数据报文。
其中,任务处理条件与第一存储地址、第二存储地址是否在同一个NPC对应的存储地址范围内的结果相关。下面介绍下选择满足任务处理条件的目标NPC的三种实现方式。
实现方式一:当第一存储地址、第二存储地址在同一个NPC对应的存储地址范围内时,任务处理条件为:判断同一个NPC是否空闲;以及当同一个NPC空闲时,则满足任务处理条件的目标NPC为同一个NPC。当同一个NPC不空闲时,依据NPC的优先级,选择优先级高于预设优先级阈值的目标NPC。
需要说明的是,方式一是在“第一存储地址、第二存储地址在同一个NPC对应的存储地址范围内”这种条件下实现的。在该条件下,若PMU在接收到NPC发送的任务处理请求时,PMU可从上述JOB队列中获取第二存储地址,并确定第二存储地址对应的NPC(即上述同一个NPC)。PMU可检测该同一个NPC是否空闲。若该同一个NPC空闲,则将该同一个NPC作为满足任务处理条件的目标NPC。若该同一个NPC不空闲,PMU则确定当前各NPC的优先级。其中,每一NPC的优先级为基于该NPC的空闲程度和该NPC与上述同一个NPC之间的距离确定出的。
然后,PMU可判断当前各个NPC的优先级是否高于优先级阈值;若存在优先级高于优先级阈值的NPC,则将优先级高于优先级阈值的NPC作为满足任务处理条件的目标NPC。若不存在优先级高于优先级阈值的NPC,PMU则可选择优先级最高的NPC作为满足任务处理条件的目标NPC。或者,PMU可将上述同一NPC作为满足任务处理条件的目标NPC。这里不对“选择满足任务处理条件的目标NPC”的具体实现方式进行限定。
下面通过步骤A至步骤C介绍下“每一NPC的优先级为基于该NPC的空闲程度和该NPC与同一个NPC之间的距离确定出的”的实现过程。
步骤A:针对每一个NPC,PMU确定该NPC的空闲程度。
其中,上述空闲程度可以由NPC当前可支持的负载量(简称剩余负载量)进行表征。NPC的负载量可以由该NPC中的所有CPU的剩余处理资源的总和进行表征。这里只是对空闲程度进行示例性地说明,不进行具体地限定。
在一种可选的实现方式中,PMU可以向该每一NPC发送剩余负载量请求,该NPC可以将自身的剩余负载量发送给PMU。
在另一种可选的实现方式中,PMU上维护了各NPC、各NPC当前对应的剩余负载量的对应关系。各NPC可以周期性地上报自身的剩余负载量,PMU可以基于各NPC上报的自身的剩余负载量,周期性地更新该对应关系,使得PMU上始终维护了各NPC以及各NPC当前对应的剩余负载量。
然后,PMU可基于每一NPC上报的剩余负载量,确定各NPC的空闲程度。PMU上维护NPC、以及NPC当前对应的空闲程度的对应关系。
在确定该NPC的空闲程度时,PMU在该对应关系中,查找该NPC对应的空闲程度。
步骤B:PMU确定NPC与上述同一个NPC在该网络芯片上的距离。
在实现时,PMU上维护了各NPC的在网络芯片上的位置信息,PMU可以基于NPC的位置信息和上述同一个NPC的位置信息,确定出NPC和同一个NPC在该网络芯片上的距离。
例如,本申请以网络芯片的指定点(例如网络芯片的左下角顶点)作为原点,以相互垂直的两个指定方向分别作为X轴和Y轴(例如,以网络芯片的长边方向作为X轴,以网络芯片的短边方向作为Y轴)建立坐标系。基于此坐标系,PMU可以维护各个NPC在该坐标系中的位置坐标。
PMU从本地维护的各个NPC在该坐标系中的位置坐标中,确定出该NPC的位置坐标以及同一个NPC的位置坐标。PMU可以基于该NPC的位置坐标和同一个NPC的位置坐标确定出该NPC和同一个NPC在网络芯片上的距离。
步骤C:PMU基于该NPC的空闲程度、以及该NPC与同一个NPC在网络芯片上的距离,确定该NPC的优先级。
需要说明的是,NPC的优先级与距离呈负相关,优先级与空闲程度呈正相关。也就是说,距离越大,该NPC的优先级越小。空闲程度越大,NPC的优先级越大。
在一种可选的实现方式中,PMU可计算空闲程度与距离的比值,并基于比值以及预设系数,确定该NPC的优先级。
例如,在确定时,PMU可以基于如下公式确定出NPC的优先级。
Figure GDA0002579684730000121
其中,SPi为优先级;
Loadi为第i个NPC的空闲程度;
k为预设系数;
(X,Y)为上述同一个NPC的坐标;
(Xi,Yi)为上述第i个NPC的坐标。
当然,这里只是对“基于该NPC的空闲程度、以及该NPC与同一个NPC在网络芯片上的距离,确定该NPC的优先级”进行示例性地说明,PMU还可采用其他算法来确定NPC的优先级,只需要满足优先级与距离呈负相关,与空闲程度呈正相关即可。
由上述描述可以看出,一方面,由于PMU在确定同一个NPC空闲时,可以直接将第二存储地址发送给该同一个NPC,即存储首片数据和JD的NPC,使得该同一个NPC可以从自身对应的存储空间中获取JD,并基于JD中记录的第一存储地址,从自身对应的存储空间中获取首片数据。由于该同一NPC不需要通过链路交互就可以从自身对应的存储空间中获取到首片数据,所以极大地减低了对链路带宽的占用,而且上述同一个NPC是空闲的,故该NPC有足够的空闲来基于读取的首片数据处理数据报文,减小了处理时延。
另一方面,在第二存储地址对应的同一NPC不空闲时,PMU还可以依据各NPC的空闲程度、各NPC与该同一个NPC的距离,计算各NPC的优先级,并将第二存储地址发送给优先级大于优先级阈值的目标NPC。由于在计算NPC的优先级时,考虑了各NPC与同一个NPC的距离,使得选择出的目标NPC与存储首片数据和JD的NPC之间距离较近,进而使得选择出的NPC通过较短的链路与存储首片数据和JD的NPC交互,就可以获取首片数据的存储地址和首片数据,所以可以极大减少对于链路带宽的占用;此外,由于选择目标NPC时,还考虑了NPC的空闲程度,使得选择出的目标选择出的NPC有足够的空闲来基于读取的首片数据处理数据报文,减小了处理时延。
实现方式二:当第一存储地址、第二存储地址在同一个NPC对应的存储地址范围内时,任务处理条件为:判断当前各个NPC的优先级是否高于优先级阈值,则满足任务处理条件的目标NPC为优先级高于优先级阈值的NPC;其中,每一NPC的优先级为基于该NPC的空闲程度和该NPC与同一个NPC之间的距离确定出的,且该NPC的优先级与该NPC的空闲程度呈正相关,与距离呈负相关。
需要说明的是,方式二是在“第一存储地址和第二存储地址在同一NPC对应的存储地址范围内”这种情况下实现的。
在实现时,针对发送任务处理请求的多个NPC中的每一个NPC,或者针对网络芯片上包含的所有NPC中的每一NPC,PMU可以基于该NPC的空闲程度、该NPC与该同一NPC的距离,确定该NPC的优先级。
PMU可判断当前各NPC的优先级是否高于优先级阈值。若存在优先级高于优先级阈值的NPC,则将优先级高于优先级阈值的NPC作为符合任务处理条件的目标NPC。若不存在优先级高于优先级阈值的NPC,PMU可选择优先级最高的NPC作为满足任务处理条件的目标NPC,或者,PMU可将该同一个NPC作为满足任务处理条件的目标NPC。
或者,PMU在确定出各NPC的优先级后,PMU可直接依据各个NPC的优先级,选择优先级最高的NPC作为满足任务处理条件的目标NPC。
需要说明的是,方式二中的“PMU可以基于该NPC的空闲程度、该NPC与该同一NPC的距离,确定该NPC的优先级”可参见方式一中的介绍,这里不再赘述。
由上述描述可知,一方面,在本申请中,用于储存首片数据的第一存储地址和用于存储第一存储的地址的第二存储地址均对应同一NPC。另一方面,PMU在选择读取首片数据的目标NPC时,是基于各NPC的空闲程度和各NPC与上述同一个NPC之间的距离进行选择的,使得选择出的目标NPC与上述同一个NPC之间的链路较短。
通过上述两方面设置,使得选择出的目标NPC通过该较短链路与存储首片数据和JD的NPC交互,就可以获取首片数据的存储地址和首片数据,所以可以极大减少对于链路带宽的占用;此外,由于选择目标NPC时,还考虑了NPC的空闲程度,使得选择出的目标选择出的NPC有足够的空闲来基于读取的首片数据处理数据报文,减小了处理时延。
实现方式三:当第一存储地址、第二存储地址不在同一个NPC对应的存储地址范围内时,任务处理条件为:判断第一存储地址对应的NPC或者第二存储地址对应的NPC是否空闲;以及满足任务处理条件的目标NPC为判断结果为是的NPC。
需要说明的是,方式三是在“第一存储地址、第二存储地址不在同一个NPC对应的存储地址范围内”这一条件下实现的。
在该条件下,当PMU接收到NPC发送的任务处理请求时,PMU可确定第一存储地址对应的NPC是否空闲、以及PMU可确定第二存储地址对应的NPC是否空闲。
1)若第一存储地址对应的NPC和第二存储地址对应的NPC均空闲,则从第一存储地址对应的NPC和第二存储地址对应的NPC中,任选择一个NPC作为目标NPC。
2)若第一存储地址对应的NPC空闲以及第二存储地址对应的NPC不空闲,则将第一存储地址对应的NPC作为满足任务处理条件的目标NPC。若第一存储地址对应的NPC不空闲以及第二存储地址对应的NPC空闲,则将第二存储地址对应的NPC作为满足任务处理条件的目标NPC。
3)若第一存储地址对应的NPC和第二存储地址对应的NPC均不空闲,则在第一存储地址对应的NPC和第二存储地址对应的NPC选择一个NPC作为参考NPC。然后,PMU可确定当前各个NPC的优先级。其中,每一个NPC的优先级由该NPC的空闲程度和该NPC与该参考NPC之间的距离确定出的。PMU判断当前各NPC的优先级是否高于优先级阈值。若存在优先级高于优先级阈值的NPC,则将优先级高于优先级阈值的NPC作为符合任务处理条件的目标NPC。若不存在优先级高于优先级阈值的NPC,PMU可选择优先级最高的NPC作为满足任务处理条件的目标NPC,或者,PMU可将该第一存储地址对应的NPC或者第二存储地址对应的NPC作为满足任务处理条件的目标NPC。
可选地,还可以将第一存储地址对应的NPC作为第一参考NPC,并确定当前各个NPC的优先级,其中,每一个NPC的优先级由该NPC的空闲程度和该NPC与第一参考NPC之间的距离确定出的,然后将第二存储地址对应的NPC作为第二参考NPC,并确定当前各个NPC的优先级,其中,每一个NPC的优先级由该NPC的空闲程度和该NPC与第二参考NPC之间的距离确定出的。PMU综合所有优先级,判断当前各NPC的优先级是否高于优先级阈值,然后再执行3)中后续过程,此处不再详细描述。
需要说明的是“每一个NPC的优先级由该NPC的空闲程度和该NPC与该参考NPC之间的距离确定出的”的具体确定方式参见方式一种的描述,这里不再赘述。
由上述描述可知,PMU在选择满足任务处理条件的目标NPC时,会参考各NPC与存储首片数据的NPC或存储JD的NPC之间的距离,使得选择出的NPC通过该较短链路与存储首片数据和JD的NPC交互,就可以获取首片数据的存储地址和首片数据,所以可以极大减少对于链路带宽的占用,此外,由于选择目标NPC时,还考虑了NPC的空闲程度,使得选择出的目标NPC有足够的空闲来基于读取的首片数据处理数据报文,减小了处理时延。
下面通过步骤301至步骤309介绍下本方案的优选实施例。
参见图3,图3是本申请一示例性实施例示出的另一种首片数据处理方法的流程图。该方法可包括如下所示步骤。
步骤301:当RxDMA接收到数据报文1时,RxDMA可对数据报文1进行切片,并获取该数据报文1的首片数据。
步骤302:RxDMA向BMU发送针对首片数据的缓存申请请求。
步骤303:BMU为首片数据分配存储地址1和存储地址2,其中,分配的存储地址1和存储地址2在同一个NPC对应的存储地址范围内。假设,上述同一个NPC为NPC1,即存储地址1和存储地址2在NPC1对应的存储地址范围内。
步骤304:BMU向RxDMA发送存储地址1。
步骤305:RxDMA将首片数据写入至存储地址1所指示的存储空间。
步骤306:BMU将存储地址1和存储地址2发送至PMU。
步骤307:PMU基于存储地址1,生成任务处理标识JD。并将JD存储在存储地址2所指示的存储空间,并将存储地址2存储在预设的JOB队列。
其中,本申请不对步骤404与步骤406的先后顺序进行限定,两个步骤的先后顺序只要符合逻辑即可。
步骤308:当PMU508.在接收到多个NPC发送的任务处理请求时,PMU可针对各个NPC,PMU可基于每一NPC的空闲程度、以及该NPC与同一个NPC(即NPC1)的距离,确定该NPC的优先级。
步骤309:PMU在多个NPC中,选择优先级最高的NPC作为目标NPC,并将JOB队列中的第二存储地址发送给目标NPC,以由目标NPC基于第二存储地址读取上述JD,并基于上述JD获取首片数据,并根据首片数据处理数据报文。
在目标NPC处理完所述数据报文后,可根据处理结果更新上述首片数据和/或JD。然后,目标NPC可将首片数据回写至第一存储地址所指示的存储空间,以及将更新了的首片数据和/或JD回写至第二存储地址所指示的存储空间。
下面再通过具体地例子,对步骤308至309进行介绍。
假设,网络芯片的结构如图1所示。
假设PMU接收到分别来自于NPC0、NPC1、NPC2和NPC3的任务处理请求。
PMU可从JOB队列中读取存储地址,假设PMU读取到的存储地址为上述例子中的存储地址2。
PMU可确定存储地址2对应的NPC为NPC1。然后,PMU可基于NPC0的空闲程度、以及NPC0与NPC1的距离,计算NPC0的优先级0。PMU可基于NPC1的空闲程度、以及NPC1与NPC1的距离,计算NPC1的优先级1。PMU可基于NPC2的空闲程度、以及NPC2与NPC1的距离,计算NPC2的优先级2。PMU可基于NPC3的空闲程度、以及NPC3与NPC1的距离,计算NPC3的优先级3。
假设在这4个优先级中,优先级1最大,PMU则将存储地址2发送给NPC1。NPC1可基于存储地址2,在本地(即NPC1)对应的存储空间中读取JD。NPC1基于JD中记录的存储地址1,在本地对应的存储空间中读取首片数据,并基于首片数据对数据报文1进行处理。
若在这4个优先级中,优先级0最大,则PMU将存储地址2发送给NPC0。NPC0将存储地址2发送给NPC1的存储控制器,NPC1的存储控制器基于存储地址2,在本地(即NPC1)对应的存储空间中读取JD,并将JD返回给NPC0。NPC0从JD中读取存储地址,并将存储地址1发送给NPC1的存储控制器。NPC1的存储控制器基于存储地址1,在本地对应的存储空间中读取首片数据,并将该首片数据发送给NPC0,NPC0基于首片数据1对数据报文1进行处理。
由上述描述可知,一方面,在本申请中,用于储存首片数据的第一存储地址和用于存储第一存储的地址的第二存储地址均对应同一第一NPC。另一方面,PMU在选择读取首片数据的NPC时,是基于各NPC的空闲程度和各NPC与第一NPC之间的距离进行选择的,使得选择出的NPC与第一NPC之间的链路较短。
通过上述两方面设置,使得NPC通过该较短链路与存储首片数据和JD的NPC交互,就可以获取首片数据的存储地址和首片数据。相比现有的通过多条均较长的链路获取首片数据的存储地址和首片数据,由于本申请的链路较短,所以用于获取首片数据存储地址和首片数据的交互数据对于链路带宽的占用时间就更短,所以可以极大减少对于不必要带宽的占用,减少带宽的浪费。
基于同一发明构思,本申请还提供了与上述报文处理方法对应的报文处理装置。
参见图4,图4是本申请一示例性实施例示出的一种报文处理装置,该装置可设置在网络芯片的PMU上,所述网络芯片还包括:RxDMA、BMU和多个NPC,所述装置包括如下所示单元。
接收单元401,用于接收所述BMU发送的第一存储地址和第二存储地址,其中,所述第一存储地址和所述第二存储地址为所述BMU在接收到数据报文中的首片数据的缓存申请请求后分配的,所述第一存储地址用于存储所述首片数据;
存储单元402,用于根据所述第一存储地址生成所述首片数据的任务处理标识,并依据所述第二存储地址存储所述任务处理标识;
分发单元403,用于当接收到多个NPC发送的任务处理请求时,将所述第二存储地址分发给满足任务处理条件的目标NPC,由所述满足任务处理条件的目标NPC基于所述第二存储地址读取所述任务处理标识,并基于所述任务处理标识获取所述首片数据,并根据所述首片数据处理数据报文;
其中,所述任务处理条件与所述第一存储地址、所述第二存储地址是否在同一个NPC对应的存储地址范围内的结果相关。
可选的,当所述第一存储地址、所述第二存储地址在同一个NPC对应的存储地址范围内时,所述任务处理条件为:判断所述同一个NPC是否空闲;以及当所述同一个NPC空闲时,则所述满足任务处理条件的目标NPC为所述同一个NPC。
可选的,所述分发单元403,还用于当所述同一个NPC非空闲时,确定当前各个NPC的优先级,其中,每一NPC的优先级为基于该NPC的空闲程度和该NPC与所述同一个NPC之间的距离确定出的;判断当前各个NPC的优先级是否高于优先级阈值;若判断结果为是,则将所述第二存储地址分发给优先级高于优先级阈值的NPC,由所述高于优先级阈值的NPC基于第二存储地址读取所述任务处理标识,并基于所述任务处理标识获取所述首片数据,并根据所述首片数据处理所述数据报文。
可选的,当所述第一存储地址、所述第二存储地址在同一个NPC对应的存储地址范围内时,所述任务处理条件为:判断当前各个NPC的优先级是否高于优先级阈值,则所述满足任务处理条件的目标NPC为优先级高于优先级阈值的NPC;
其中,每一NPC的优先级为基于该NPC的空闲程度和该NPC与所述同一个NPC之间的距离确定出的,且该NPC的优先级与该NPC的空闲程度呈正相关,与所述距离呈负相关。
可选的,按照下述方法基于该NPC的空闲程度和该NPC与所述同一个NPC之间的距离确定该NPC的优先级:
计算所述空闲程度与所述距离之间的比值;
将所述比值与预设系数的乘积,确定为该NPC的优先级。
可选的,当所述第一存储地址、所述第二存储地址不在同一个NPC对应的存储地址范围内时,所述任务处理条件为:判断所述第一存储地址对应的NPC或者所述第二存储地址对应的NPC是否空闲;以及所述满足任务处理条件的目标NPC为判断结果为是的NPC。
参见图5,图5是本申请一示例性实施例示出的另一种报文处理装置,所述装置设置于BMU,所述网络芯片还包括:PMU、RxDMA和多个NPC,所述方法包括:
接收单元501,用于接收RxDMA发送的首片数据的缓存申请请求,其中,所述首片数据为所述RxDMA从接收到的数据报文中提取出的;
第一发送单元502,用于根据所述缓存申请请求,向所述RxDMA发送第一存储地址,以使所述RxDMA依据所述第一存储地址存储所述首片数据;
第二发送单元503,用于向PMU发送第一存储地址和第二存储地址,以使所述PMU根据所述第一存储地址生成所述首片数据的任务处理标识,并依据所述第二存储地址存储所述任务处理标识,当所述PMU接收到NPC发送的任务处理请求时,将所述第二存储地址分发给满足任务处理条件的目标NPC,由所述满足任务处理条件的目标NPC基于第二存储地址读取所述任务处理标识,并依据所述任务处理标识获取所述首片数据,并根据所述首片数据处理所述数据报文;
其中,所述任务处理条件与所述第一存储地址、所述第二存储地址是否在同一个NPC对应的存储地址范围内的结果相关。
此外,本申请还提供一种网络芯片,包括:处理器管理单元PMU、接收通路的网络直接内存存取RxDMA、缓存管理单元BMU和多个网络处理器组NPC;
所述RxDMA,用于从接收到的数据报文中提取首片数据,并向BMU发送首片数据的缓存申请请求;
所述BMU,用于根据所述缓存申请请求,向所述RxDMA发送第一存储地址,以使所述RxDMA依据所述第一存储地址存储所述首片数据,并向PMU发送第一存储地址和第二存储地址;
所述PMU,用于根据所述第一存储地址生成所述首片数据的任务处理标识,并依据所述第二存储地址存储所述任务处理标识,当接收到多个NPC发送的任务处理请求时,将所述第二存储地址分发给满足任务处理条件的目标NPC,由所述满足任务处理条件的目标NPC基于所述第二存储地址读取所述任务处理标识,并基于所述任务处理标识获取所述首片数据,并根据所述首片数据处理数据报文;
其中,所述任务处理条件与所述第一存储地址、所述第二存储地址是否在同一个NPC对应的存储地址范围内的结果相关。
可选的,当所述第一存储地址、所述第二存储地址在同一个NPC对应的存储地址范围内时,所述任务处理条件为:判断所述同一个NPC是否空闲;以及当所述同一个NPC空闲时,则所述满足任务处理条件的目标NPC为所述同一NPC。
可选的,当所述同一NPC非空闲时,所述PMU,还用于确定当前各个NPC的优先级,其中,每一NPC的优先级为基于该NPC的空闲程度和该NPC与所述同一个NPC之间的距离确定出的;判断当前各个NPC的优先级是否高于优先级阈值;若判断结果为是,则将所述第二存储地址分发给优先级高于优先级阈值的NPC,由所述高于优先级阈值的NPC基于第二存储地址读取所述任务处理标识,并基于所述任务处理标识获取所述首片数据,并根据所述首片数据处理所述数据报文。
可选的,当所述第一存储地址、所述第二存储地址在同一个NPC对应的存储地址范围内时,所述任务处理条件为:判断当前各个NPC的优先级是否高于优先级阈值,则所述满足任务处理条件的目标NPC为优先级高于优先级阈值的NPC;
其中,每一NPC的优先级为基于该NPC的空闲程度和该NPC与所述同一个NPC之间的距离确定出的,且该NPC的优先级与该NPC的空闲程度呈正相关,与所述距离呈负相关。
可选的,按照下述方法基于该NPC的空闲程度和该NPC与所述同一个NPC之间的距离确定该NPC的优先级:
计算所述空闲程度与所述距离之间的比值;
将所述比值与预设系数的乘积,确定为该NPC的优先级。
可选的,当所述第一存储地址、所述第二存储地址不在同一个NPC对应的存储地址范围内时,所述任务处理条件为:判断所述第一存储地址对应的NPC或者所述第二存储地址对应的NPC是否空闲;以及所述满足任务处理条件的目标NPC为判断结果为是的NPC。
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。

Claims (10)

1.一种报文处理方法,其特征在于,应用于网络芯片中的处理器管理单元PMU,所述网络芯片还包括:接收通路的网络直接内存存取RxDMA、缓存管理单元BMU和多个网络处理器组NPC,所述方法包括:
接收所述BMU发送的第一存储地址和第二存储地址,其中,所述第一存储地址和所述第二存储地址为所述BMU在接收到数据报文中的首片数据的缓存申请请求后分配的,所述第一存储地址用于存储所述首片数据;
根据所述第一存储地址生成所述首片数据的任务处理标识,并依据所述第二存储地址存储所述任务处理标识;
当接收到多个NPC发送的任务处理请求时,将所述第二存储地址分发给满足任务处理条件的目标NPC,由所述满足任务处理条件的目标NPC基于所述第二存储地址读取所述任务处理标识,并基于所述任务处理标识获取所述首片数据,并根据所述首片数据处理数据报文;
其中,所述任务处理条件与所述第一存储地址、所述第二存储地址是否在同一个NPC对应的存储地址范围内的结果相关。
2.根据权利要求1所述的方法,其特征在于,当所述第一存储地址、所述第二存储地址在同一个NPC对应的存储地址范围内时,所述任务处理条件为:判断所述同一个NPC是否空闲;以及当所述同一个NPC空闲时,则所述满足任务处理条件的目标NPC为所述同一个NPC。
3.根据权利要求2所述的方法,其特征在于,当所述同一个NPC非空闲时,则所述方法,还包括:
确定当前各个NPC的优先级,其中,每一NPC的优先级为基于该NPC的空闲程度和该NPC与所述同一个NPC之间的距离确定出的;
判断当前各个NPC的优先级是否高于优先级阈值;
若判断结果为是,则将所述第二存储地址分发给优先级高于优先级阈值的NPC,由所述高于优先级阈值的NPC基于第二存储地址读取所述任务处理标识,并基于所述任务处理标识获取所述首片数据,并根据所述首片数据处理所述数据报文。
4.根据权利要求1所述的方法,其特征在于,当所述第一存储地址、所述第二存储地址在同一个NPC对应的存储地址范围内时,所述任务处理条件为:判断当前各个NPC的优先级是否高于优先级阈值,则所述满足任务处理条件的目标NPC为优先级高于优先级阈值的NPC;
其中,每一NPC的优先级为基于该NPC的空闲程度和该NPC与所述同一个NPC之间的距离确定出的,且该NPC的优先级与该NPC的空闲程度呈正相关,与所述距离呈负相关。
5.根据权利要求3或4所述的方法,其特征在于,按照下述方法基于该NPC的空闲程度和该NPC与所述同一个NPC之间的距离确定该NPC的优先级:
计算所述空闲程度与所述距离之间的比值;
将所述比值与预设系数的乘积,确定为该NPC的优先级。
6.根据权利要求1所述的方法,其特征在于,当所述第一存储地址、所述第二存储地址不在同一个NPC对应的存储地址范围内时,所述任务处理条件为:判断所述第一存储地址对应的NPC或者所述第二存储地址对应的NPC是否空闲;以及所述满足任务处理条件的目标NPC为判断结果为是的NPC。
7.一种报文处理方法,其特征在于,所述方法应用于网络芯片中的缓存管理单元BMU,所述网络芯片还包括:处理器管理单元PMU、接收通路的网络直接内存存取RxDMA和多个网络处理器组NPC,所述方法包括:
接收RxDMA发送的首片数据的缓存申请请求,其中,所述首片数据为所述RxDMA从接收到的数据报文中提取出的;
根据所述缓存申请请求,向所述RxDMA发送第一存储地址,以使所述RxDMA依据所述第一存储地址存储所述首片数据;
向PMU发送第一存储地址和第二存储地址,以使所述PMU根据所述第一存储地址生成所述首片数据的任务处理标识,并依据所述第二存储地址存储所述任务处理标识,当所述PMU接收到NPC发送的任务处理请求时,将所述第二存储地址分发给满足任务处理条件的目标NPC,由所述满足任务处理条件的目标NPC基于第二存储地址读取所述任务处理标识,并依据所述任务处理标识获取所述首片数据,并根据所述首片数据处理所述数据报文;
其中,所述任务处理条件与所述第一存储地址、所述第二存储地址是否在同一个NPC对应的存储地址范围内的结果相关。
8.一种报文处理装置,其特征在于,所述装置设置于网络芯片中的处理器管理单元PMU,所述网络芯片还包括:接收通路的网络直接内存存取RxDMA、缓存管理单元BMU和多个网络处理器组NPC,所述装置包括:
接收单元,用于接收所述BMU发送的第一存储地址和第二存储地址,其中,所述第一存储地址和所述第二存储地址为所述BMU在接收到数据报文中的首片数据的缓存申请请求后分配的,所述第一存储地址用于存储所述首片数据;
存储单元,用于根据所述第一存储地址生成所述首片数据的任务处理标识,并依据所述第二存储地址存储所述任务处理标识;
分发单元,用于当接收到多个NPC发送的任务处理请求时,将所述第二存储地址分发给满足任务处理条件的目标NPC,由所述满足任务处理条件的目标NPC基于所述第二存储地址读取所述任务处理标识,并基于所述任务处理标识获取所述首片数据,并根据所述首片数据处理数据报文;
其中,所述任务处理条件与所述第一存储地址、所述第二存储地址是否在同一个NPC对应的存储地址范围内的结果相关。
9.一种报文处理装置,其特征在于,所述装置设置于网络芯片中的缓存管理单元BMU,所述网络芯片还包括:处理器管理单元PMU、接收通路的网络直接内存存取RxDMA和多个网络处理器组NPC,所述装置包括:
接收单元,用于接收RxDMA发送的首片数据的缓存申请请求,其中,所述首片数据为所述RxDMA从接收到的数据报文中提取出的;
第一发送单元,用于根据所述缓存申请请求,向所述RxDMA发送第一存储地址,以使所述RxDMA依据所述第一存储地址存储所述首片数据;
第二发送单元,用于向PMU发送第一存储地址和第二存储地址,以使所述PMU根据所述第一存储地址生成所述首片数据的任务处理标识,并依据所述第二存储地址存储所述任务处理标识,当所述PMU接收到NPC发送的任务处理请求时,将所述第二存储地址分发给满足任务处理条件的目标NPC,由所述满足任务处理条件的目标NPC基于第二存储地址读取所述任务处理标识,并依据所述任务处理标识获取所述首片数据,并根据所述首片数据处理所述数据报文;
其中,所述任务处理条件与所述第一存储地址、所述第二存储地址是否在同一个NPC对应的存储地址范围内的结果相关。
10.一种网络芯片,其特征在于,包括:处理器管理单元PMU、接收通路的网络直接内存存取RxDMA、缓存管理单元BMU和多个网络处理器组NPC;
所述RxDMA,用于从接收到的数据报文中提取首片数据,并向BMU发送首片数据的缓存申请请求;
所述BMU,用于根据所述缓存申请请求,向所述RxDMA发送第一存储地址,以使所述RxDMA依据所述第一存储地址存储所述首片数据,并向PMU发送第一存储地址和第二存储地址;
所述PMU,用于根据所述第一存储地址生成所述首片数据的任务处理标识,并依据所述第二存储地址存储所述任务处理标识,当接收到多个NPC发送的任务处理请求时,将所述第二存储地址分发给满足任务处理条件的目标NPC,由所述满足任务处理条件的目标NPC基于所述第二存储地址读取所述任务处理标识,并基于所述任务处理标识获取所述首片数据,并根据所述首片数据处理数据报文;
其中,所述任务处理条件与所述第一存储地址、所述第二存储地址是否在同一个NPC对应的存储地址范围内的结果相关。
CN201911184538.1A 2019-11-27 2019-11-27 一种报文处理方法、装置及网络芯片 Active CN110908939B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911184538.1A CN110908939B (zh) 2019-11-27 2019-11-27 一种报文处理方法、装置及网络芯片

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911184538.1A CN110908939B (zh) 2019-11-27 2019-11-27 一种报文处理方法、装置及网络芯片

Publications (2)

Publication Number Publication Date
CN110908939A CN110908939A (zh) 2020-03-24
CN110908939B true CN110908939B (zh) 2020-10-09

Family

ID=69819962

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911184538.1A Active CN110908939B (zh) 2019-11-27 2019-11-27 一种报文处理方法、装置及网络芯片

Country Status (1)

Country Link
CN (1) CN110908939B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111949568B (zh) * 2020-07-31 2023-07-21 新华三半导体技术有限公司 一种报文处理方法、装置及网络芯片
CN114615208B (zh) * 2022-03-09 2024-02-23 新华三半导体技术有限公司 一种反压信息传递、请求发送方法、装置及网络芯片

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102780620A (zh) * 2012-07-24 2012-11-14 中兴通讯股份有限公司 一种网络处理器和报文处理方法
CN105511954A (zh) * 2014-09-23 2016-04-20 华为技术有限公司 一种报文处理方法及装置
CN105635000A (zh) * 2015-12-30 2016-06-01 华为技术有限公司 一种报文存储转发方法和电路及设备
CN109218178A (zh) * 2017-07-05 2019-01-15 华为技术有限公司 一种报文处理方法及网络设备

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW201237632A (en) * 2010-12-21 2012-09-16 Ibm Buffer management scheme for a network processor

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102780620A (zh) * 2012-07-24 2012-11-14 中兴通讯股份有限公司 一种网络处理器和报文处理方法
CN105511954A (zh) * 2014-09-23 2016-04-20 华为技术有限公司 一种报文处理方法及装置
CN105635000A (zh) * 2015-12-30 2016-06-01 华为技术有限公司 一种报文存储转发方法和电路及设备
CN109218178A (zh) * 2017-07-05 2019-01-15 华为技术有限公司 一种报文处理方法及网络设备

Also Published As

Publication number Publication date
CN110908939A (zh) 2020-03-24

Similar Documents

Publication Publication Date Title
US9462077B2 (en) System, method, and circuit for servicing a client data service request
CN112269641B (zh) 一种调度方法、装置、电子设备及存储介质
US20050055694A1 (en) Dynamic load balancing resource allocation
US6738839B2 (en) Method and system for allocating logical paths between a host and a controller in a virtual data storage system
US20150163172A1 (en) Server switch integration in a virtualized system
CN101006727B (zh) 分布式多媒体服务器系统和多媒体信息发布方法
CN107291544B (zh) 任务调度的方法及装置、分布式任务执行系统
US20120324160A1 (en) Method for data access, message receiving parser and system
CN110908939B (zh) 一种报文处理方法、装置及网络芯片
CN105159782A (zh) 基于云主机为订单分配资源的方法和装置
CN107682417B (zh) 一种数据节点的任务分配方法和装置
US10305724B2 (en) Distributed scheduler
CN111045813B (zh) 一种任务分发系统及方法
WO2020143434A1 (zh) 读写请求处理方法、装置、电子设备以及存储介质
KR101226177B1 (ko) 멀티 프로세서 환경에서 효율적인 데이터 전송을 위한 방법및 시스템
CN102122268B (zh) 一种虚拟机内存分配访问方法、装置和系统
US11093291B2 (en) Resource assignment using CDA protocol in distributed processing environment based on task bid and resource cost
CN109756429A (zh) 带宽分配方法及设备
EP2913759A1 (en) Memory access processing method based on memory chip interconnection, memory chip, and system
CN115509644B (zh) 算力卸载方法、装置、电子设备和存储介质
US20220124151A1 (en) Task allocation among devices in a distributed data storage system
WO2017018978A1 (en) Scheduling jobs in a computing cluster
JP5351839B2 (ja) オーダ処理方法、プログラムおよびネットワークシステム
CN111404726B (zh) 一种日志处理方法、装置及系统
CN113438274A (zh) 数据传输方法、装置、计算机设备及可读存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant