CN112532531A - 一种报文调度方法及装置 - Google Patents
一种报文调度方法及装置 Download PDFInfo
- Publication number
- CN112532531A CN112532531A CN202011260946.3A CN202011260946A CN112532531A CN 112532531 A CN112532531 A CN 112532531A CN 202011260946 A CN202011260946 A CN 202011260946A CN 112532531 A CN112532531 A CN 112532531A
- Authority
- CN
- China
- Prior art keywords
- output interface
- queue
- message
- information
- scheduling
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 41
- 230000005540 biological transmission Effects 0.000 claims description 19
- 238000004590 computer program Methods 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 8
- 238000012545 processing Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 6
- 101100011863 Arabidopsis thaliana ERD15 gene Proteins 0.000 description 2
- 101150021084 CID2 gene Proteins 0.000 description 2
- 101100191082 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) GLC7 gene Proteins 0.000 description 2
- 101100274406 Schizosaccharomyces pombe (strain 972 / ATCC 24843) cid1 gene Proteins 0.000 description 2
- 230000000903 blocking effect Effects 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
- H04L47/62—Queue scheduling characterised by scheduling criteria
- H04L47/622—Queue service order
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
- H04L47/62—Queue scheduling characterised by scheduling criteria
- H04L47/6245—Modifications to standard FIFO or LIFO
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请公开了一种报文调度方法及装置。应用于包含多核CPU和多个输出接口的转发设备中的调度芯片,每个核存在对应的报文发送队列,每个输出接口对应的输出接口队列被进一步划分为对应于各个核的输出接口子队列,包括:从任一核对应的报文发送队列获取待转发报文对应的报文信息;依据待转发报文对应的目标输出接口,将报文信息存入目标输出接口的输出接口队列中对应于任一核的输出接口子队列中;在针对任一输出接口队列进行报文调度时,对任一输出接口队列中的各个输出接口子队列所含的报文信息进行等量的读取;通过任一输出接口队列对应的输出接口,输出已读取的报文信息所对应的待转发报文。
Description
技术领域
本申请涉及报文调度领域,特别是涉及一种报文调度方法及装置。
背景技术
现如今,多核技术已经成为处理器技术发展的主要方向。随着多核技术中处理器核数量的增加,给报文调度设计带来极大的挑战,所以需要一种合理的报文调度方式来解决该问题,从而满足整个系统性能提升的需求。
目前,常见的报文调度分配技术通过为每个CPU核分配独立的发送队列,报文处理完成后通过各发送队列将报文发送到外围设备进行输出接口的调度分发,从而实现报文的输出。由于每个CPU核独立使用一个缓存发送队列,同一个发送缓存队列里存储的报文可能发往各个出接口,不同的缓存队列里的报文又可能发往同一个出接口,所以调度设备很难解决报文输出头堵塞的问题,一旦某个出接口调度超出了接口性能,就会对其他接口的输出性能造成影响,从而降低了网络设备的整体处理性能。
发明内容
有鉴于此,本申请提供了一种报文调度方法及装置,技术方案如下:
根据本申请的第一方面,提出一种报文调度方法,应用于转发设备中的调度芯片,转发设备中还包含多核CPU和多个输出接口,每个核存在对应的报文发送队列,每个输出接口对应的输出接口队列被进一步划分为对应于各个核的输出接口子队列。该方法包括:
从任一核对应的报文发送队列获取待转发报文对应的报文信息;
依据所述待转发报文对应的目标输出接口,将所述报文信息存入所述目标输出接口的输出接口队列中对应于所述任一核的输出接口子队列中;
在针对任一输出接口队列进行报文调度时,对所述任一输出接口队列中的各个输出接口子队列所含的报文信息进行等量的读取;
通过所述任一输出接口队列对应的输出接口,输出已读取的报文信息所对应的待转发报文。
可选的,每个报文发送队列被进一步划分为对应于各个输出接口的报文发送子队列,还包括:
从所述任一核对应的报文发送队列获取所述报文信息时,确定所述报文信息所处的报文发送子队列;
将确定出的报文发送子队列对应的输出接口作为所述目标输出接口。
可选的,还包括:
计算各个输出接口队列的存储状态,并将处于非空状态的输出接口队列的输出接口信息存入调度队列等待调度;
依据所述调度队列中的输出接口信息,对相应的输出接口队列进行调度。
可选的,还包括:
从所述调度队列中读取任一输出接口信息,所述任一输出接口信息对应于特定输出接口和特定输出接口队列;
当不存在针对所述特定输出接口队列的反压信息时,对所述特定输出接口队列进行读取操作;其中,所述反压信息用于表明所述特定输出接口发生报文输出阻塞;
当存在针对所述特定输出接口队列的反压信息时,将所述特定输出接口队列存入反压等待队列,待所述反压信息解除后,对所述特定输出接口队列进行读取操作。
可选的,还包括:
在针对所述特定输出接口队列的读取操作完成后,更新所述特定输出接口队列;
当所述更新操作完成后,若所对应的所述特定输出接口队列非空,将所述特定输出接口队列所对应的输出接口信息继续存入所述调度队列。
可选的,所述对所述输出接口队列中的各输出接口子队列进行预设等量报文信息的读取操作,包括:
对所述输出接口队列中的各输出接口子队列进行预设相同个数报文信息的读取操作;或
对所述输出接口队列中的各输出接口子队列进行预设同等长度报文信息的读取操作。
可选的,所述报文信息包括:所述待转发报文的报文内容;或,所述报文信息包括:所述待转发报文的报文内容在所述转发设备的内存中的报文存储地址;所述通过所述任一输出接口队列对应的输出接口,输出已读取的报文信息所对应的待转发报文,包括:
通过DMA传输方式从所述内存中读取所述报文存储地址所对应的报文内容,并通过所述任一输出接口队列对应的输出接口输出所述报文内容。
根据本申请的第二方面,提出一种报文调度装置,应用于转发设备中的调度芯片,转发设备中还包含多核CPU和多个输出接口,每个核存在对应的报文发送队列,每个输出接口对应的输出接口队列被进一步划分为对应于各个核的输出接口子队列。该装置包括:
接收模块,从任一核对应的报文发送队列获取待转发报文对应的报文信息;
存储模块,依据所述待转发报文对应的目标输出接口,将所述报文信息存入所述目标输出接口的输出接口队列中对应于所述任一核的输出接口子队列中;
读取模块,在针对任一输出接口队列进行报文调度时,对所述任一输出接口队列中的各个输出接口子队列所含的报文信息进行的等量读取;
输出模块,通过所述任一输出接口队列对应的输出接口,输出已读取的报文信息所对应的待转发报文。
根据本申请的第三方面,提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上述实施例中任一方法所述的步骤。
根据本申请的第四方面,提供一种电子设备,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为实现如上述实施例中任一项所述的方法。
由上述实施例可知,本申请通过从各CPU核对应的报文发送队列中获取报文信息,并依据目标输出接口将报文信息分别存储到各输出接口所对应的输出接口队列中,然后对调度的任一输出接口队列进行等量报文的读取,最后将读取的报文从对应接口输出,可以实现CPU各个核之间的公平调度,解决报文发送队列的头堵塞问题,从而保证设备能始终具备良好的处理性能。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
此处的附图被并入说明书中并构成本申请的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
图1是本申请提供的一种系统架构图;
图2是本申请提供的一种报文调度方法的实施例流程图;
图3是报文调度方法中网络设备内的相关结构图;
图4是网络设备将每个报文发送队列进一步划分为对应于各个输出接口的报文发送子队列后的相关结构图;
图5是报文信息在输出接口队列中的存储示意图;
图6是对输出接口队列进行调度操作的具体操作步骤;
图7是针对任一输出接口是否存在报文输出阻塞的情况的具体操作步骤;
图8是对任一输出接口队列读取操作完成后的后续具体操作步骤;
图9是一种报文调度电子设备示意结构图;
图10是一种报文调度装置的实施例框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
图1是本申请提供的一种转发设备的系统架构图,该转发设备中主要包含CPU、调度芯片与多个输出接口1~m,其中调度芯片是一种可以承担CPU报文调度功能的辅助芯片。CPU将报文处理完成后,将报文发送至调度芯片,由调度芯片进行报文的调度操作,并最终由对应输出接口进行输出。本申请中的调度芯片可以是FPGA芯片,也可以是其他具有相同或相近功能的辅助芯片,在此处不做详细列举。
基于上述系统架构,本申请提出一种可应用于转发设备中的调度芯片的报文调度方法,用于将转发设备中CPU的报文转发功能卸载到辅助芯片上,从而减轻CPU的运行负担。
图2是本申请提供的一种报文调度方法的实施例流程图,该报文调度方法可以运用于网络设备,网络设备可以是交换机、路由器等具有报文转发功能的转发设备。该方法可以包括以下步骤:
在步骤201中,从任一核对应的报文发送队列获取待转发报文对应的报文信息。
在一实施例中,网络设备中的调度芯片从CPU中获取需要转发调度的待转发报文所对应的报文信息。CPU具有多个核,且各个核都有其对应的报文发送队列用以临时存储需要转发的报文;报文发送队列对应的写入地址,可以位于网络设备中的内存空间,也可以位于同样具有存储功能的任意存储单元内的存储空间,本申请并不对此进行限制。各报文发送队列与各CPU核一一对应,可以防止多个CPU核共享同一报文发送队列时,由于不同CPU核在同一时间可能读取到同一个写入地址而出现的访问冲突的问题。报文信息可以是待转发报文的报文内容;或者,待转发报文的报文内容可以存储在内存或其他存储单元的存储空间,而上述的报文信息为报文内容在上述存储空间内的存储地址或其他任意可用于表征该报文内容的信息,使得在后续步骤中可以根据报文信息获取相应的报文内容。
在一实施例中,每个CPU核直接将自身产生的待转发报文的报文内容存入相应的报文发送队列中,而不论该待转发报文需要由哪一输出接口进行输出。例如图3所示,CPU中包括Core1~Core n共n个CPU核,Core1对应于报文发送队列1、Core2对应于报文发送队列2……Core n对应于报文发送队列n。以Core1为例,每当Core1产生一条待转发报文时,该待转发报文需要通过输出接口1~输出接口m中的某一输出接口进行输出,Core1将该待转发报文的报文信息存入报文发送队列1,这些报文信息按照存入顺序依次排列,且排列顺序与对应于哪一输出接口无关。为了方便区分各报文发送队列的报文信息,报文信息中可以带有报文发送队列标识,比如报文发送队列1对应的报文发送队列标识可以为QID1,那么报文发送队列1所含的每一报文信息可以包含QID1,而报文发送队列2对应的报文发送队列标识可以为QID2,那么报文发送队列2所含的每一报文信息可以包含QID2,使得调度芯片可以据此区分来自不同报文发送队列的报文信息。为了方便确定查找报文信息对应将要发送的输出接口,报文信息中可以带有输出接口标识,比如输出接口1对应的输出接口标识可以为CID1,那么由输出接口1所输出的每一报文信息可以包含CID1,而输出接口2对应的输出接口标识可以为CID2,那么由输出接口2所输出的每一报文信息可以包含CID2,由此来使得调度芯片可以据此区分不同报文信息将要发往的输出接口。
在一实施例中,每一CPU核对应的报文发送队列,进一步被划分为分别对应于各个输出接口的报文发送子队列,那么每个CPU核在向报文发送队列存入待转发报文的报文信息时,需要根据该待转发报文对应的输出接口,将报文信息存入对应于该输出接口的报文发送子队列。那么,调度芯片从报文发送队列中获取报文信息时,只需要根据报文信息所在的报文发送子队列,即可确定该报文信息对应于哪一输出接口,而无需在报文信息中添加如上文所述的输出接口标识,可以减小报文信息的数据量,从而相应降低数据交互时的数据传输量。例如图4所示,CPU中包括Core1~Core n共n个CPU核,Core1对应于报文发送队列1、Core2对应于报文发送队列2……Core n对应于报文发送队列n。各报文发送队列分别被划分为与输出接口1~输出接口m一一对应的m个报文发送子队列:如报文发送队列1中包含报文发送子队列11~1m,报文发送队列2中包含报文发送子队列21~2m……报文发送队列n中包含报文发送子队列n1~nm。以报文发送队列1为例,如果从报文发送子队列11中读取待转发报文的报文信息,则确定该待转发报文需要由输出接口1进行输出;如果从报文发送子队列12中读取待转发报文的报文信息,则确定该待转发报文需要由输出接口2进行输出……如果从报文发送子队列1m中读取待转发报文的报文信息,则确定该待转发报文需要由输出接口m进行输出。
在步骤202中,依据待转发报文对应的目标输出接口,将报文信息存入目标输出接口的输出接口队列中对应于任一核的输出接口子队列中。
在一实施例中,网络设备中的调度芯片在获取到需要转发调度的报文信息后,需要将报文信息临时存储等待调度分发。存储方式可以为:设置与输出接口相对应个数的输出接口队列,并与各输出接口一一对应;在任一输出接口队列中依据报文信息在获取时的报文发送队列的不同(即CPU核的不同)将输出接口队列进一步划分为各输出接口子队列。当调度芯片获取到报文信息后,会依据报文信息中的报文发送队列信息和输出接口信息将报文信息存入对应的输出接口子队列中。例如图5所示,针对输出接口1~m可以分别创建一一对应的m个输出接口队列,比如输出接口1对应的输出接口队列1、输出接口2对应的输出接口队列2……输出接口m对应的输出接口队列m;以及,进一步将输出接口队列1~m中的每个输出接口队列划分为一一对应于Core 1~Core n的n个输出接口子队列。以输出接口队列1为例,可以将该输出接口队列1划分为输出接口子队列11~n1,使得当来自报文发送队列1(即Core 1)的报文信息被写入输出接口队列1时,该报文信息被具体写入Core 1对应的输出接口子队列11;当来自报文发送队列2(即Core 2)的报文信息被写入输出接口队列1时,该报文信息被具体写入Core 2对应的输出接口子队列21……当来自报文发送队列n(即Core n)的报文信息被写入输出接口队列1时,该报文信息被具体写入Core n对应的输出接口子队列n1。
在步骤203中,在针对任一输出接口队列进行报文调度时,对任一输出接口队列中的各个输出接口子队列所含的报文信息进行等量读取。
在一实施例中,调度芯片对任一输出接口进行输出操作,则需要对输出接口所对应的输出接口队列进行读取。由于各输出接口队列中的各输出接口子队列与CPU中的各个核一一对应,那么在进行读取操作时只需通过对相应输出接口队列中的各输出接口子队列进行等量读取操作,就可以实现对每个核的待转发报文的等量读取,保证各CPU核的待转发报文能够实现公平调度。
在一实施例中,调度芯片对输出接口队列进行等量读取操作时,等量读取的具体等量定义为预设相同个数的报文信息。预设相同个数可以是该输出接口队列的一列输出接口子队列信息,也可以是该输出接口队列的两列或两列以上输出接口子队列信息,每列输出接口子队列信息都包含有一个报文信息;具体操作如图5所示,可以对任一输出接口队列进行1列的单列读取,也可以对任一输出接口队列进行1列和2列的两列读取,多列读取操作可以此类推,具体等量读取数值可由系统预先设定或由人为预先设定。
在一实施例中,调度芯片对输出接口队列进行等量读取操作时,等量读取的具体等量定义为预设同等长度的报文信息。预设同等长度的报文信息为预先设定的若干个字节长度的报文信息,或其他计算机数据长度单位表示的报文信息;预设同等长度的报文信息可以是一个报文信息内的部分报文信息,也可以是包含有一个或多个报文信息,即同等长度的定义仅与输出接口队列所存储的待转发报文的报文信息的长度有关,而与报文信息的数量无关,具体等量读取数值可由系统预先设定或由人为预先设定。
在一实施例中,调度芯片对输出接口队列进行等量读取时,当输出接口队列中仅有部分输出接口子队列中存在报文信息时,跳过空输出接口子队列,仅对非空输出接口子队列进行等量读取。
在步骤204中,通过任一输出接口队列对应的输出接口,输出已读取的报文信息所对应的待转发报文。
在一实施例中,当调度芯片对任一输出接口队列进行等量读取操作后,将通过输出接口队列所对应的输出接口,对所读取的报文信息所对应的报文内容进行输出操作。
在一实施例中,调度芯片读取的报文信息中包含待转发报文的报文内容,调度芯片将待转发报文中的报文内容直接进行输出操作。
在一实施例中,调度芯片读取的报文信息中仅包含待转发报文的报文内容在转发设备的内存中的报文存储地址。调度芯片在读取到报文信息后,若想输出报文内容,则需通过DMA(Direct Memory Access,直接存储器访问)传输方式,从内存中读取报文存储地址所对应的报文内容,并通过对应的输出接口输出报文内容。由于报文存储地址一般相较于报文内容的所占用空间更小,所以在进行报文内容的输出操作之前,可以使用报文存储地址代替报文内容进行调度操作,并在调度完成后采用DMA传输方式直接输出报文存储地址所对应的报文内容,降低了转发设备因调度处理待转发报文所对应的报文内容时,报文内容所占用空间过大造成的处理压力。
上述实施例中,网络设备通过将CPU的报文调度功能卸载到调度芯片中,减轻了CPU的操作负担;调度芯片通过获取CPU的待转发报文所对应的报文信息,对报文信息进行临时存储和等量读取操作,并通过相应输出接口进行输出,实现CPU各个核之间的公平调度,同时通过将待转发报文临时存储至输出接口对应的输出接口队列中,解决了各报文发送队列因某一输出接口阻塞,无法对相应输出接口的待转发报文进行读取,使得后续其他输出接口的待转发报文也无法读取而产生的头堵塞问题,从而保证了网络设备的处理性能最优。
为对本发明进行进一步说明,提供下列实施例:
图6是对输出接口队列进行调度操作的具体操作步骤,具体操作步骤如下:
在步骤601中,计算各输出接口队列的存储状态,并将处于非空状态的输出接口队列的输出接口标识存入调度队列等待调度。
在一实施例中,当调度芯片检测到任一输出接口队列非空时,即任一输出接口队列的任一输出接口子队列存在待转发报文时,将该输出接口队列的输出接口标识存入调度队列,等待调度芯片的顺序调度。调度芯片对输出接口队列的非空检测操作可以是周期性的操作,具体操作周期可由系统预先设定或由人为预先设定。
在步骤602中,依据调度队列中的输出接口信息,对相应的输出接口队列进行调度。
在一实施例中,调度芯片对调度队列进行顺序调度,依次读取调度队列中的输出接口标识,并对读取的输出接口标识所对应的输出接口队列进行调度操作。
上述实施例中,调度芯片通过对各输出接口队列进行非空检测来判断该输出接口队列是否需要进行调度,并将非空输出接口队列的标识存入调度队列等待顺序调度,避免了设备因轮询等访问方式判断各输出接口队列是否存在待转发报文时造成的设备处理资源浪费。
考虑到调度完成后,将读取的待转发报文所对应的报文内容进行对应输出接口的输出操作时,对应输出接口可能因报文输出量已超出输出接口带宽,造成输出接口阻塞,使得待转发报文读取后无法输出的问题,提出针对任一输出接口是否存在报文输出阻塞的情况时的具体操作步骤,如图7所示,具体操作步骤如下:
在步骤701中,从调度队列中读取对应于特定输出接口和特定输出接口队列的任一输出接口信息。
在一实施例中,调度芯片从调度队列中读取输出接口标识,该任一输出接口标识对应于特定输出接口和特定输出接口队列。
在步骤702中,判断读取的特定输出接口队列是否存在反压信息。
在一实施例中,调度芯片判断是否有对应于当前需要调度的输出接口队列的反压信息,反压信息用于表示当前需要调度的输出接口队列所对应的输出接口存在输出阻塞的情况。若不存在反压信息,则转向步骤403;若存在反压信息,则转向步骤404。
在步骤703中,对特定输出接口队列进行读取操作。
在一实施例中,调度芯片经反压信息判断得知特定输出接口队列所对应的输出接口不存在输出阻塞的情况,可以进行报文的输出操作,则对特定输出接口进行读取操作,等待下一步的输出。
在步骤704中,将特定输出接口队列存入反压等待队列,待反压信息解除后,对特定输出接口队列进行读取操作。
在一实施例中,调度芯片经反压信息判断得知特定输出接口队列所对应的输出接口存在输出阻塞的情况,所以暂不能进行报文的读取操作,需要等待输出阻塞情况消除后再次读取。针对具有输出阻塞的输出接口所对应的输出接口队列无法直接读取的问题,设定反压等待队列,该队列用于存放具有反压信息的输出队列标识,并在检测到特定输出接口的反压信息解除后,重新对特定输出接口队列进行读取操作;或在检测到特定输出接口的反压信息解除后,重新将特定输出接口队列标识放入调度队列重新等待调度。
上述实施例中,调度芯片在读取输出接口队列时,通过判断该输出接口有无反压信息来得知该输出接口是否存在输出阻塞的情况,若存在反压信息则将该输出接口队列标识存入反压等待队列来暂缓对该输出接口队列的读取操作,避免了因输出接口阻塞,使得读取后的报文内容无法被及时输出而影响到设备的其他操作。
考虑到对任一输出接口队列的读取操作完成后,还需要对该输出接口队列进行相应的处理操作,提出针对任一输出接口队列读取操作完成后的后续具体操作步骤,如图8所示,具体操作步骤如下:
在步骤801中,在针对特定输出接口队列的读取操作完成后,更新特定输出接口队列。
在一实施例中,调度芯片对任一输出接口队列的读取操作完成后,对该输出接口队列进行更新操作,更新操作用于清除已读取的报文信息,便于调度芯片进行其他操作和防止调度芯片进行重复读取操作。
在步骤802中,更新操作完成后,若所对应的特定输出接口队列非空,将特定输出接口队列对应的输出接口信息继续存入调度队列。
在一实施例中,调度芯片对任一输出接口队列进行读取操作后,若该输出接口队列仍表现为非空状态,即表明该输出接口队列中仍存在需要读取的报文信息,将该输出接口队列所对应的输出接口标识继续存入调度队列等待下次调度操作,省去了调度芯片需要再次对该输出接口队列进行非空计算的步骤。
如前述报文调度方法实施例相对应,本申请还提供了报文调度装置的实施例。
图9是一示例性实施例提供的一种设备的示意结构图。如图9所示,在硬件层面,该设备包括CPU处理器901、内部总线902、输出接口903、调度芯片904、内存905、非易失性存储器906,当然还可能包括其他业务所需要的硬件。CPU处理器901和调度芯片904从非易失性存储器906中读取对应的计算机程序到内存905中然后运行,在逻辑层面上形成报文调度装置。当然,除了软件实现方式之外,本说明书一个或多个实施例并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或者逻辑器件。
请参考图10,在软件实施方式中,该报文调度装置可以包括:
接收单元1001,被配置为从任一核对应的报文发送队列获取待转发报文对应的报文信息;
存储单元1002,被配置为依据所述待转发报文对应的目标输出接口,将所述报文信息存入所述目标输出接口的输出接口队列中对应于所述任一核的输出接口子队列中;
读取单元1003,被配置为在针对任一输出接口队列进行报文调度时,对所述任一输出接口队列中的各个输出接口子队列所含的报文信息进行等量读取;
输出单元1004,被配置为通过所述任一输出接口对列对应的输出接口,输出已读取的报文信息所对应的待转发报文。
可选的,每个报文发送队列被进一步划分为对应于各个输出接口的报文发送子队列,所述装置还包括:
接收确定单元1101,被配置为从所述任一核对应的报文发送队列获取所述报文信息时,确定所述报文信息所处的报文发送子队列;
输出确定单元1102,被配置为将确定出的报文发送子队列对应的输出接口作为所述目标输出接口。
可选的,所述装置还包括:
计算单元1201,被配置为计算各个输出接口队列的存储状态,并将处于非空状态的输出接口队列的输出接口信息存入调度队列等待调度;
调度单元1202,被配置为依据所述调度队列中的输出接口信息,对相应的输出接口队列进行调度。
可选的,所述装置还包括:
读取子单元1301,被配置为从所述调度队列中读取任一输出接口信息,所述任一输出接口信息对应于特定输出接口和特定输出接口队列;
非反压读取单元1302,被配置为当不存在针对所述特定输出接口队列的反压信息时,对所述特定输出接口队列进行读取操作;其中,所述反压信息用于表明所述特定输出接口发生报文输出阻塞;
反压等待单元1303,被配置为当存在针对所述特定输出接口队列的反压信息时,将所述特定输出接口队列存入反压等待队列,待所述反压信息解除后,对所述特定输出接口队列进行读取操作。
可选的,所述装置还包括:
队列更新单元1401,被配置为在针对所述特定输出接口队列的读取操作完成后,更新所述特定输出接口队列;
继续调度单元1402,被配置为当所述更新操作完成后,若所对应的所述特定输出接口队列非空,将所述特定输出接口队列所对应的输出接口信息继续存入所述调度队列。
可选的,所述读取单元1003具体用于:
对所述任一输出接口队列中的各输出接口子队列进行预设相同个数报文信息的读取操作。
可选的,所述读取单元1003具体用于:
对所述任一输出接口队列中的各输出接口子队列进行预设同等长度报文信息的读取操作。
可选的,所述报文信息包括:所述待转发报文的报文内容;或者,所述报文信息包括:所述待转发报文的报文内容在所述转发设备的内存中的报文存储地址;所述通过所述任一输出接口队列对应的输出接口,输出已读取的报文信息所对应的待转发报文,所述装置还包括:
DMA输出单元1501,被配置为通过DMA传输方式从所述内存中读取所述报文存储地址所对应的报文内容,并通过所述任一输出接口队列对应的输出接口输出所述报文内容。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本公开方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,既可以理解并实施。
相应的,本申请还提供一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器,上述指令可由装置的处理器执行以完成上述任一实施例中所述的方法。例如,所述非临时性计算机可读存储介质可以是只读存储器(ROM)、随机存取存储器(RAM)、只读光盘只读存储器(CD-ROM)、磁带、软盘和光数据存储设备等。
相应的,本申请还提供一种电子设备,其中包括有处理器和用于存储处理器可执行指令的存储器,上述处理器被配置为实现如上述方法中任一实施例所述的方法。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由下面的权利要求指出。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求来限制。
Claims (10)
1.一种报文调度方法,其特征在于,应用于转发设备中的调度芯片,所述转发设备中还包含多核CPU和多个输出接口,每个核存在对应的报文发送队列,每个输出接口对应的输出接口队列被进一步划分为对应于各个核的输出接口子队列;所述方法包括:
从任一核对应的报文发送队列获取待转发报文对应的报文信息;
依据所述待转发报文对应的目标输出接口,将所述报文信息存入所述目标输出接口的输出接口队列中对应于所述任一核的输出接口子队列中;
在针对任一输出接口队列进行报文调度时,对所述任一输出接口队列中的各个输出接口子队列所含的报文信息进行等量读取;
通过所述任一输出接口队列对应的输出接口,输出已读取的报文信息所对应的待转发报文。
2.根据权利要求1所述的方法,其特征在于,每个报文发送队列被进一步划分为对应于各个输出接口的报文发送子队列,所述方法还包括:
从所述任一核对应的报文发送队列获取所述报文信息时,确定所述报文信息所处的报文发送子队列;
将确定出的报文发送子队列对应的输出接口作为所述目标输出接口。
3.根据权利要求1所述的方法,其特征在于,还包括:
计算各个输出接口队列的存储状态,并将处于非空状态的输出接口队列的输出接口信息存入调度队列等待调度;
依据所述调度队列中的输出接口信息,对相应的输出接口队列进行调度。
4.根据权利要求3所述的方法,其特征在于,还包括:
从所述调度队列中读取任一输出接口信息,所述任一输出接口信息对应于特定输出接口和特定输出接口队列;
当不存在针对所述特定输出接口队列的反压信息时,对所述特定输出接口队列进行读取操作;其中,所述反压信息用于表明所述特定输出接口发生报文输出阻塞;
当存在针对所述特定输出接口队列的反压信息时,将所述特定输出接口队列存入反压等待队列,待所述反压信息解除后,对所述特定输出接口队列进行读取操作。
5.根据权利要求4所述的方法,其特征在于,还包括:
在针对所述特定输出接口队列的读取操作完成后,更新所述特定输出接口队列;
当所述更新操作完成后,若所对应的所述特定输出接口队列非空,将所述特定输出接口队列所对应的输出接口信息继续存入所述调度队列。
6.根据权利要求1所述的方法,其特征在于,所述对所述任一输出接口队列中的各个输出接口子队列所含的报文信息进行等量读取,包括:
对所述任一输出接口队列中的各输出接口子队列进行预设相同个数报文信息的读取操作;或
对所述任一输出接口队列中的各输出接口子队列进行预设同等长度报文信息的读取操作。
7.根据权利要求1所述的方法,其特征在于,
所述报文信息包括:所述待转发报文的报文内容;或者,
所述报文信息包括:所述待转发报文的报文内容在所述转发设备的内存中的报文存储地址;所述通过所述任一输出接口队列对应的输出接口,输出已读取的报文信息所对应的待转发报文,包括:
通过DMA传输方式从所述内存中读取所述报文存储地址所对应的报文内容,并通过所述任一输出接口队列对应的输出接口输出所述报文内容。
8.一种报文调度装置,其特征在于,应用于转发设备中的调度芯片,所述转发设备中还包含多核CPU和多个输出接口,每个核存在对应的报文发送队列,每个输出接口对应的输出接口队列被进一步划分为对应于各个核的输出接口子队列;所述装置包括:
接收模块,从任一核对应的报文发送队列获取待转发报文对应的报文信息;
存储模块,依据所述待转发报文对应的目标输出接口,将所述报文信息存入所述目标输出接口的输出接口队列中对应于所述任一核的输出接口子队列中;
读取模块,在针对任一输出接口队列进行报文调度时,对所述任一输出接口队列中的各个输出接口子队列所含的报文信息进行等量读取;
输出模块,通过所述任一输出接口队列对应的输出接口,输出已读取的报文信息所对应的待转发报文。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-7中任一项所述方法的步骤。
10.一种电子设备,其特征在于,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为实现如权利要求1-7中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011260946.3A CN112532531B (zh) | 2020-11-12 | 2020-11-12 | 一种报文调度方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011260946.3A CN112532531B (zh) | 2020-11-12 | 2020-11-12 | 一种报文调度方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112532531A true CN112532531A (zh) | 2021-03-19 |
CN112532531B CN112532531B (zh) | 2022-09-30 |
Family
ID=74981277
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011260946.3A Active CN112532531B (zh) | 2020-11-12 | 2020-11-12 | 一种报文调度方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112532531B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114564420A (zh) * | 2022-01-19 | 2022-05-31 | 中国电子科技集团公司第十研究所 | 多核处理器共享并行总线的方法 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030081549A1 (en) * | 2001-11-01 | 2003-05-01 | International Business Machines Corporation | Weighted fair queue serving plural output ports |
CN101035067A (zh) * | 2007-01-25 | 2007-09-12 | 华为技术有限公司 | 一种基于输出队列的流控实现方法及装置 |
CN105991473A (zh) * | 2015-03-30 | 2016-10-05 | 杭州迪普科技有限公司 | 一种数据流转发方法及装置 |
CN108259355A (zh) * | 2014-12-30 | 2018-07-06 | 华为技术有限公司 | 一种报文转发方法和装置 |
US20180365176A1 (en) * | 2017-06-15 | 2018-12-20 | Mellanox Technologies, Ltd. | Shared processing of a packet flow by multiple cores |
CN109688069A (zh) * | 2018-12-29 | 2019-04-26 | 杭州迪普科技股份有限公司 | 一种处理网络流量的方法、装置、设备及存储介质 |
CN109962859A (zh) * | 2017-12-26 | 2019-07-02 | 北京华为数字技术有限公司 | 一种报文调度方法及设备 |
CN110768915A (zh) * | 2019-10-31 | 2020-02-07 | 杭州迪普科技股份有限公司 | 一种分流方法及装置 |
CN111277514A (zh) * | 2020-01-21 | 2020-06-12 | 新华三技术有限公司合肥分公司 | 一种报文队列分配方法、报文转发方法及相关装置 |
CN111526097A (zh) * | 2020-07-03 | 2020-08-11 | 新华三半导体技术有限公司 | 一种报文调度方法、装置及网络芯片 |
-
2020
- 2020-11-12 CN CN202011260946.3A patent/CN112532531B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030081549A1 (en) * | 2001-11-01 | 2003-05-01 | International Business Machines Corporation | Weighted fair queue serving plural output ports |
CN101035067A (zh) * | 2007-01-25 | 2007-09-12 | 华为技术有限公司 | 一种基于输出队列的流控实现方法及装置 |
CN108259355A (zh) * | 2014-12-30 | 2018-07-06 | 华为技术有限公司 | 一种报文转发方法和装置 |
CN105991473A (zh) * | 2015-03-30 | 2016-10-05 | 杭州迪普科技有限公司 | 一种数据流转发方法及装置 |
US20180365176A1 (en) * | 2017-06-15 | 2018-12-20 | Mellanox Technologies, Ltd. | Shared processing of a packet flow by multiple cores |
CN109962859A (zh) * | 2017-12-26 | 2019-07-02 | 北京华为数字技术有限公司 | 一种报文调度方法及设备 |
CN109688069A (zh) * | 2018-12-29 | 2019-04-26 | 杭州迪普科技股份有限公司 | 一种处理网络流量的方法、装置、设备及存储介质 |
CN110768915A (zh) * | 2019-10-31 | 2020-02-07 | 杭州迪普科技股份有限公司 | 一种分流方法及装置 |
CN111277514A (zh) * | 2020-01-21 | 2020-06-12 | 新华三技术有限公司合肥分公司 | 一种报文队列分配方法、报文转发方法及相关装置 |
CN111526097A (zh) * | 2020-07-03 | 2020-08-11 | 新华三半导体技术有限公司 | 一种报文调度方法、装置及网络芯片 |
Non-Patent Citations (1)
Title |
---|
宋俊德、战晓苏: "《3G原理、系统与应用》", 30 September 2008 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114564420A (zh) * | 2022-01-19 | 2022-05-31 | 中国电子科技集团公司第十研究所 | 多核处理器共享并行总线的方法 |
CN114564420B (zh) * | 2022-01-19 | 2023-08-18 | 中国电子科技集团公司第十研究所 | 多核处理器共享并行总线的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN112532531B (zh) | 2022-09-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20050223131A1 (en) | Context-based direct memory access engine for use with a memory system shared by devices associated with multiple input and output ports | |
US8516163B2 (en) | Hardware-based concurrent direct memory access (DMA) engines on serial rapid input/output SRIO interface | |
US7716391B2 (en) | Data transfer apparatus, data transfer method, and program | |
US8155134B2 (en) | System-on-chip communication manager | |
CN112328533A (zh) | 多核处理系统及其核间通信方法、存储介质 | |
CN109857342B (zh) | 一种数据读写方法及装置、交换芯片及存储介质 | |
CN103064807A (zh) | 多通道直接存储器存取控制器 | |
CN105162724A (zh) | 一种数据入队与出队方法及队列管理单元 | |
US20050257012A1 (en) | Storage device flow control | |
CN112532531B (zh) | 一种报文调度方法及装置 | |
EP1891503B1 (en) | Concurrent read response acknowledge enhanced direct memory access unit | |
CA2399186C (en) | Data transfer apparatus and data transfer method | |
US20200163082A1 (en) | Transmission device, communication device, communication system, transmission method, and computer program product | |
CN106254270A (zh) | 一种队列管理方法及装置 | |
CN112328520B (zh) | 一种pcie设备、基于pcie设备的数据传输方法和系统 | |
CN116955247B (zh) | 一种缓存描述符管理装置及其方法、介质、芯片 | |
US12010045B2 (en) | Packet processing device and packet processing method | |
US20080147906A1 (en) | DMA Transferring System, DMA Controller, and DMA Transferring Method | |
CN107911317B (zh) | 一种报文调度方法及装置 | |
CN117499351A (zh) | 报文转发装置及方法、通信芯片及网络设备 | |
CN115801814A (zh) | 一种基于串口双fifo缓冲区结构的数据传输方法、系统及存储介质 | |
WO2022120722A1 (zh) | 资源调度装置、数字信号处理器和可移动平台 | |
CN110764707A (zh) | 数据处理方法及装置 | |
CN111124987B (zh) | 一种基于pcie的数据传输控制系统和方法 | |
JP3044653B2 (ja) | ゲートウェイ装置 |
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 |