CN109840145A - 一种多级调度方法、装置、网络芯片及存储介质 - Google Patents
一种多级调度方法、装置、网络芯片及存储介质 Download PDFInfo
- Publication number
- CN109840145A CN109840145A CN201910017391.0A CN201910017391A CN109840145A CN 109840145 A CN109840145 A CN 109840145A CN 201910017391 A CN201910017391 A CN 201910017391A CN 109840145 A CN109840145 A CN 109840145A
- Authority
- CN
- China
- Prior art keywords
- node
- team
- same level
- scheduler
- information
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请实施例公开了一种多级调度方法、装置、网络芯片及存储介质,其中,所述方法应用于网络芯片,所述网络芯片包括至少两个不同级别的调度器、每一级别的调度器对应至少一个用于数据传输的节点,所述方法包括:获取出队调度请求,从所述出队调度请求中,解析出本级节点的编号;根据所述出队调度请求或所述本级节点的编号,确定上一级节点的编号和上一级节点的优先级编号;根据所述本级节点的编号,从预设的第一存储器中确定需要调度的入队信息;根据所述需要调度的入队信息、所述上一级节点的编号和所述上一级节点的优先级编号,生成出队信息。
Description
技术领域
本申请实施例涉及计算机网络通信技术,涉及但不限于一种多级调度方法、装置、网络芯片及存储介质。
背景技术
在高密度网络芯片中,为了能够为指定的网络通信或者特定业务提供更好的服务,需要引入服务质量(Quality of Service,QoS)机制,其中,网络芯片是能够提供在通信网络中发送和接收数据逻辑(包括声音和视频)的微处理器。
当网络发生拥塞时,所有数据流都可能会被丢弃,支持QoS的设备能够针对某种类别的数据流赋予其不同级别的传输优先级,来标识其相对的重要程度。可以结合QoS机制的转发策略、拥塞避免等机制,为数据流提供相应的传输服务。
由于网络芯片对端口带宽具有一定的要求,譬如必须在预定个数的时钟周期内能够再次调度某个端口,无形中对多级调度的周期提出了要求。在调度级数较多的情况下,能否在预定个数的时钟周期内完成预选可能变得非常困难或者无法实现。
发明内容
有鉴于此,本申请实施例为解决现有技术中存在的至少一个问题而提供一种多级调度方法、装置、网络芯片及存储介质。
本申请实施例的技术方案是这样实现的:
第一方面,本申请实施例提供了一种多级调度方法,所述方法应用于网络芯片,所述网络芯片包括至少两个不同级别的调度器、每一级别的调度器对应至少一个用于数据传输的节点,所述方法包括:获取出队调度请求,从所述出队调度请求中,解析出本级节点的编号;根据所述出队调度请求或所述本级节点的编号,确定上一级节点的编号和上一级节点的优先级编号;根据所述本级节点的编号,从预设的第一存储器中确定需要调度的入队信息;根据所述需要调度的入队信息、所述上一级节点的编号和所述上一级节点的优先级编号,生成出队信息。
第二方面,本申请实施例提供了一种多级调度装置,所述装置应用于网络芯片中的至少两个不同级别的调度器,其中,每一级别的调度器对应的至少一个用于数据传输的节点,所述装置包括:第一解析单元,配置为获取出队调度请求,从所述出队调度请求中,解析出本级节点的编号;第一确定单元,配置为根据所述出队调度请求或所述本级节点的编号,确定上一级节点的编号和上一级节点的优先级编号;第二确定单元,配置为根据所述本级节点的编号,从预设的第一存储器中确定需要调度的入队信息;生成单元,配置为根据所述需要调度的入队信息、所述上一级节点的编号和所述上一级节点的优先级编号,生成出队信息。
第三方面,本申请实施例提供了一种网络芯片,所述网络芯片包括:至少两个不同级别的调度器、每一级别的调度器对应的至少一个用于数据传输的节点和配置为存储可执行指令的存储器,其中:所述调度器配置为执行存储的可执行指令,所述可执行指令配置为执行上述实施例提供的多级调度方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机可执行指令,该计算机可执行指令配置为执行上述实施例提供的多级调度方法。
本申请实施例中,通过根据多级调度设置多个独立的调度器,并设置相应的入队信息存储器,用来存储需要调度的入队信息,上一级的调度器能够根据相应的规则得到出队信息,而不用“逐级向下查找相应的节点”;如此,通过流水线的方式,将各级调度分离出来形成独立的调度器。只要设计的调度器能够满足设备在预设时钟周期的要求即可,能够扩展任意级数的调度,极大的提高了调度级数的可扩展性。
附图说明
图1为相关技术中三级调度QoS映射关系示意图;
图2为本申请实施例提供的实现多级调度方法流程示意图;
图3为本申请实施例提供的三级调度级联关系示意图;
图4为本申请实施例提供的调度器的原理结构示意图;
图5为本申请实施例提供的多级调度装置的组成结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请的具体技术方案做进一步详细描述。以下实施例用于说明本申请,但不用来限制本申请的范围。
图1为相关技术中三级调度QoS映射关系示意图,如图1所示,第一级调度11的成员数量为N,第二级调度12的成员数量为M,第三级调度13的成员数量为L,每一级调度的每一成员都会有X个优先级子节点(下一级节点)。设备中数据流的数量为K。数据流、相邻的调度级成员之间具有一定的映射关系。例如,第二级调度中的成员0、成员1和成员3分别映射到第一级调度中成员1的优先级1上。即,第一级调度中的成员1是第二级调度中的成员0、成员1和成员3的父节点(上一级节点)。第三级调度中的成员0、成员1和成员2分别映射到第二级调度中成员2的优先级1上。即,第三级调度中的成员0、成员1和成员2是第二级调度中成员2的子节点。这里,根据数据流的编号查找表项,可以得到其所对应的父节点编号和优先级等信息,数据流可以根据配置灵活地映射到任意一个第三级调度某个成员的某个优先级上。
其中,QoS指一个网络能够利用各种基础技术,为指定的网络通信提供更好的服务能力,是网络的一种安全机制,是用来解决网络延迟和阻塞等问题的一种技术。其对关键应用和多媒体应用十分必要。当网络过载或拥塞时,QoS能确保重要业务量不受延迟或丢弃,同时保证网络的高效运行。
相关技术中,当某个数据流有请求时,首先进行“预选操作”。“预选操作”为从数据流开始,逐级向上查找映射关系,并根据QoS策略挑选各级最高优先级的子节点,并更新到各级“调度信息表”中。“调度信息表”至少应包含该级中成员的最高优先级的可调度的子节点。根据该预选操作,最终得到第一级调度中某个成员中最高优先级的可调度的子节点。其中,最高优先级的子节点是预设的,当不同的数据流挂接到不同的节点上的优先级上时,父节点需要根据QoS策略,挑选一个数据流进行调度。
在执行调度操作时,系统会根据一定策略,例如第一级调度成员之间做加权循环调度算法(Weighted Round Robin,WRR),选择第一级调度中的某个成员。此时,查找该成员对应的“调度信息表”中记录的信息,得到该成员的子节点,并逐级向下,根据子节点的“调度信息表”,得到次级调度的子节点。依次类推并最终得到待调度的数据流的相关信息。之后,根据数据流的最新状态再逐级向上发起“预选操作”,更新各级的“调度信息表”。
其中,WRR加权循环所有业务队列服务,并且将优先权分配给较高优先级队列。在大多数情况下,相对低优先级,WRR将首先处理高优先级,但是当高优先级业务很多时,较低优先级的业务并没有被完全阻塞。WRR是一种较强的队列调度算法,它能够有效地区分队列中所有的业务。对于所有的业务流在排队等待调度的队列,WRR是根据每个队列配置的权值与所有的业务流在排队等待调度的队列的权值总和的比来平等地分配带宽。
因此,在处理多个用户的高优先等级的业务时,WRR确保每个用户都不会过度地占用网络带宽。而且WRR算法容易在硬件中实现。所以WRR算法能够实现带宽分享的公平性、恶意流的隔离能力和带宽的利用率等性能指标。
由于网络芯片对端口带宽具有一定的要求,譬如必须在J个时钟周期内能够再次调度某个端口,无形中对多级调度的周期提出了限定条件。在调度级数较多的情况下,能否在J个时钟周期内完成预选的调度,可能变得非常困难或者无法实现,即该方法存在调度级数可扩展的局限性。其中,J为正整数,在具体的芯片中,基于时钟主频、数据流带宽等因素影响,J可能是个比较小的正整数,例如J可以等于3。
可以看出,相关技术中,当调度第一级调度器时,需要逐级向下查找子节点,再逐级向上更新调度信息表操作,即一次重选所需的时间为所有级调度器所需时间之和。
为了解决相关技术中出现的问题,本申请实施例通过流水线的方式,将各级调度分离出来形成独立的调度器。在各级调度器中均包含“入队”和“出队”操作。“入队”时,将携带的“入队信息”写入相应的存储器中,同时更新调度待调度状态。“出队”时,根据一定策略选出最高优先级的子节点,读出对应的入队信息和映射表中的映射关系,组成“出队信息”发送给上一级节点。
本申请实施例提供一种多级调度方法,该方法应用于网络芯片,所述网络芯片包括至少两个不同级别的调度器、每一级别的调度器对应的至少一个用于数据传输的节点,该方法所实现的功能可以通过网络芯片中的节点调用程序代码来实现,当然,程序代码可以保存在存储器中。
图2为本申请实施例提供的实现多级调度方法流程示意图,如图2所示,该方法包括:
步骤S20,本级调度器获取出队调度请求,从所述出队调度请求中,解析出本级节点的编号。
这里,由于网络芯片中包括至少两个不同级别的调度器、每一级别的调度器对应的至少一个用于数据传输的节点,本申请中的本级调度器可以是网络芯片中任意一个调度器,本级调度器所对应的数据传输的节点,可以为本级调度器对应的任意一个节点,且本级节点表示的并不是一个特定的节点,而是指本级调度器所对应的任意一个或者多个节点。其中,出队调度请求为本级调度器自身发送的或者上一级调度器发送的,能够从本级调度器获取相应入队信息的请求,这里的出队调度请求至少包括本级调度器中本级节点的编号,还可以包括上一级节点的编号、上一级节点的优先级编号等信息。这里,本级节点是本级调度器所对应的节点,上一级节点是上一级调度器所对应的节点,上一级调度器是相对于本级调度器而言的。
在其他的实施例中,所述获取出队调度请求,包括:获取所述本级调度器自身发起的出队调度请求;或者,获取上一级调度器发送的出队调度请求。
这里,如果本级调度器满足预设条件,则可以自身发起出队调度请求。本申请实施例中,可以预先设置第二存储器,用于存储本级调度器中需要调度的入队信息所对应的节点编号。在其他的实施例中,如果第二存储器存储有需要调度的入队信息所对应的节点编号,那么本级调度器自身可以发起出队调度请求,且本级调度器能够从该出队调度请求中确定相应的本级节点的编号。或者,本级调度器获取上一级调度器发送的出队调度请求,当本级调度器接收到上一级调度器发送的出队调度请求时,本级调度器能够从出队调度请求中解析出相应的本级节点的编号。
步骤S21,本级调度器根据所述出队调度请求或所述本级节点的编号,确定上一级节点的编号和上一级节点的优先级编号。
这里,如果是本级调度器自身发起的出队调度请求,可以从该出队调度请求中确定相应的本级节点的编号,并根据该本级节点的编号从预设的映射表中获取上一级节点的编号和上一级节点的优先级编号。如果本级调度器获取的是上一级调度器发送的出队调度请求,则可以直接从上一级调度器发送的出队调度请求中解析出本级节点的编号、上一级节点的编号和上一级节点的优先级编号,或者根据出队调度请求中的本级节点的编号从预设的映射表中获取上一级节点的编号和上一级节点的优先级编号。
步骤S22,本级调度器根据所述本级节点的编号,从预设的第一存储器中确定需要调度的入队信息。
这里,入队信息至少包括下一级节点的编号、本节点的编号、本节点的优先级编号、报文长度、报文存储地址等信息。其中,报文存储地址用来在最高级调度出队后读取存储数据流完整信息的存储器,由于数据流完整信息非常大,为了优化芯片面积,可以预先设置存储数据流完整信息的存储器,并将数据流完整信息存储在该存储器中,在调度器中只需要将其存储地址调度出来,再根据该存储地址把完整的信息读出来即可。其中,报文长度用来在每一级调度出队后更新内部的数据结构,即更新调度器中的相关表项。
如果本级调度器为最次级的调度器,由于最次级的调度器没有对应的更低级的调度器,其所对应的是数据流,因此,最次级的调度器的入队信息中可以只包括数据流编号、报文长度、报文存储地址。
本申请实施例中,每一级调度器都对应一个第一存储器,用于存储该调度器中各个节点的编号与入队信息之间的关联关系,本级调度器可以根据本级节点的编号确定下一级节点的编号,并根据下一级节点的编号从本级调度器对应的第一存储器中确定需要调度的入队信息。在其他的实施例中,也可以只设置一个第一存储器,并在该第一存储器中存储所有调度器中所有节点的编号与入队信息之间的关联关系,任一调度器均可以从该第一存储器中获取任一节点的编号,及该节点编号对应的入队信息。
在其他的实施例中,由于第一存储器中不一定存储有需要调度的入队信息,需要先确定第一存储器中是否有需要调度的入队信息,当确定有需要调度的入队信息时,则根据本级节点的编号,从第一存储器中确定需要调度的入队信息,如果没有需要调度的入队信息,则表示在本级调度器中没有等待调度的信息。
步骤S23,根据所述需要调度的入队信息、所述上一级节点的编号和所述上一级节点的优先级编号,生成出队信息。
这里,出队信息至少包括入队信息中的信息、本级节点的编号、上一级节点的编号和上一级节点的优先级编号等。这里,可以根据本级节点的编号从预设的映射表中获取到上一级节点的编号和上一级节点的优先级编号,然后根据入队信息、上一级节点的编号和上一级节点的优先级编号组成出队信息。例如,第二级的成员10,可以查表知道自己属于第一级成员2的优先级3上。
在其他的实施例中,如果本级调度器不为最高级别的调度器,将所述出队信息发送至上一级节点,并向下一级调度器发送出队调度请求;如果所述本级调度器为最高级别的调度器,根据所述出队信息从预设的第三存储器中读取对应的数据流,并向下一级调度器发送出队调度请求。
这里,本级调度器并非特定的某一调度器,而是指该网络芯片中任意一个调度器,如果本级调度器不为最高级别的调度器,其必然有对应的上一级调度器,本级调度器会将上述出队信息发送至上一级调度器,并同时向下一级调度器发送出队调度请求,直至最高级别的调度器接收到对应的出队信息。
如果本级调度器为最高级别的调度器,本级调度器可以从接收到的出队信息中解析出报文存储地址,本级调度器根据该报文存储地址,从预设的第三存储器中读取数据流,并同时向下一级调度器发送出队调度请求。这里,第三存储器用于存储与所述报文存储地址对应的数据流。由于数据流完整信息非常大,为了优化芯片面积,可以预先设置第三存储器,在调度器中只需要将其存储地址调度出来,最终根据这个地址从第三存储器中把完整的信息读出来即可。
本申请实施例中,通过流水线的方式,将各级调度分离出来形成独立的调度器。只要设计的调度器能够满足设备在预设时钟周期的要求即可。能够扩展任意级数的调度,极大的提高了调度级数的可扩展性。
本申请实施例还供了另一信息处理方法,该方法包括:
步骤S101,本级调度器获取本级调度器自身发起出队调度请求时,从所述出队调度请求中,解析出本级节点的编号。
这里,如果第二存储器存储有需要调度的入队信息所对应的节点编号,即第二存储器不为空时,本级调度器自身可以发起出队调度请求,且本级调度器能够从该出队调度请求中确定相应的本级节点的编号。
本申请实施例中,预先设置有第二存储器,用于存储需要调度的入队信息所对应的节点编号,并通过设置待调度状态来表征该第二存储器中是否存储有本级节点的编号,在接收到入队调度请求的时候,会根据本级节点的编号确定本级节点的编号对应的待调度状态,根据待调度状态所处的状态来确定是否将本级节点的编号存储至第二存储器,并更新待调度状态。例如,如果根据本节点编号确定本级节点的编号对应的待调度状态置0,则将本级节点的编号存储至第二存储器中,并将待调度状态置1。
所述第二存储器用于存储本级节点中待调度的入队信息所对应的节点编号,其中,第二存储器可以为先进先出队列(Fist In First Out,FIFO)存储器。
步骤S102,本级调度器根据所述本级节点的编号,从预设的映射表中确定所述上一级节点的编号和所述上一级节点的优先级编号,所述映射表用于表征所述本级节点的编号、上一级节点的编号和上一级节点的优先级编号之间的关联关系。
通过上述步骤S101和步骤S102,本级调度器通过自身向上一级调度器发起出队调度请求,上一级调度器在接收到本级调度器发送的出队信息后,能够对根据该出队信息进行进一步处理,可以保证网络芯片高速率端口发送数据的连贯性,以满足其网络带宽需求。
步骤S103,本级调度器根据所述本级节点的编号,从预设的第一存储器中确定需要调度的入队信息。
步骤S104,本级调度器根据所述需要调度的入队信息、所述上一级节点的编号和所述上一级节点的优先级编号,生成出队信息。
本申请实施例还供了另一信息处理方法,该方法包括:
步骤S201,本级调度器获取上一级调度器发送出队调度请求时,从所述出队调度请求中,解析出本级节点的编号。
这里,如果本级调度器获取的是上一级调度器发送的出队调度请求,则可以直接从上一级调度器发送的出队调度请求中解析出本级节点的编号。
步骤S202,本级调度器从所述出队调度请求中解析出所述上一级节点的编号和所述上一级节点的优先级。
这里,本级调度器可以直接从出队调度请求中解析出上一级节点的编号和上一级节点的优先级编号,或者根据从出队调度请求中解析出来的本级节点的编号从预设的映射表中获取上一级节点的编号和上一级节点的优先级编号。
通过上述步骤S201和步骤S202,本级调度器能够从上一级调度器发送的出队调度请求中解析出相应的本级节点编号、上一级节点的编号和所述上一级节点的优先级,并根据入队信息组成相应的出队信息,能够减少数据传输的路径,进而缩短数据传输的周期。
步骤S203,本级调度器根据所述本级节点的编号,从预设的第一存储器中确定需要调度的入队信息。
步骤S204,本级调度器根据所述需要调度的入队信息、所述上一级节点的编号和所述上一级节点的优先级编号,生成出队信息。
本申请实施例还供了另一信息处理方法,该方法包括:
步骤S301,本级调度器获取入队调度请求,从所述入队调度请求中解析出入队信息,所述入队信息至少包括与本级节点的编号、下一级节点的编号和报文存储地址。
这里,入队信息还可以包括本节点的优先级编号和报文长度等信息。本级调度器可以从下一级调度器获取入队调度请求,并从入队调度请求中获取相应的入队信息。
步骤S302,本级调度器将所述入队信息存储至第一存储器,并用所述入队信息中的下一级节点的编号标识所述入队信息。
步骤S303,本级调度器获取出队调度请求,从所述出队调度请求中,解析出本级节点的编号。
步骤S304,本级调度器根据所述出队调度请求或所述本级节点的编号,确定上一级节点的编号和上一级节点的优先级编号。
步骤S305,本级调度器根据所述本级节点的编号,从预设的第一存储器中确定需要调度的入队信息。
步骤S306,本级调度器根据所述需要调度的入队信息、所述上一级节点的编号和所述上一级节点的优先级编号,生成出队信息。
本申请实施例还供了另一信息处理方法,该方法包括:
步骤S401,本级调度器获取入队调度请求,从所述入队调度请求中解析出入队信息,所述入队信息至少包括与本级节点的编号、下一级节点的编号和报文存储地址。
步骤S402,本级调度器将所述入队信息存储至第一存储器,并用所述入队信息中的下一级节点的编号标识所述入队信息。
步骤S403,本级调度器获取出队调度请求,从所述出队调度请求中,解析出本级节点的编号。
步骤S404,本级调度器根据所述出队调度请求或所述本级节点的编号,确定上一级节点的编号和上一级节点的优先级编号。
步骤S405,本级调度器如果确定所述第一存储器中存储有需要调度的入队信息,根据所述本级节点的编号,从预设的链表中,确定下一级节点对应的优先级编号和下一级节点的编号,所述链表用于存储所述本级节点的编号、所述优先级编号和所述下一级节点的编号。
在其他的实施例中,所述方法还包括:本级调度器根据第一预设规则确定所述下一级节点的优先级,并用优先级编号标识所述下一级节点的优先级;根据所述本级节点的编号、所述优先级编号和所述下一级节点的编号,创建链表。
这里,由于本级节点可能挂接多个下一级节点,可以通过创建链表的方式,表征本级节点的编号、下一级节点的优先级编号和下一级节点编号之间的关联关系,以通过本级节点的编号和下一级节点挂接在本级节点上的优先级确定相应的下一级节点编号,进而确定本级节点所对应的下一级节点。
步骤S406,本级调度器根据所述优先级编号,确定所述下一级节点的优先级,并对所述下一级节点的优先级进行排序。
步骤S407,本级调度器根据优先级最高的下一级节点的编号,从第一存储器中确定需要调度的入队信息。
步骤S408,本级调度器根据所述需要调度的入队信息、所述上一级节点的编号和所述上一级节点的优先级编号,生成出队信息。
本申请实施例还提供了一种实现网络芯片多级调度方法,主要包括以下步骤:
步骤1:基于多级调度设置多个独立的调度器。
步骤2:每一调度器中设置有两个或两个以上的入队通道。
相对应的,必须有两个或两个以上的出队通道。本级的调度器入队通道同下一级调度器的出队通道相连接,同理,本级调度器的出队通道同上一级调度器的入队通道相连接。
相关技术中,当最次级的调度器有新的请求时,逐级向上发起查找请求;当最高级调度器调度出某个成员时,先“逐级向下”查找数据流,再“逐级向上”更新状态。本申请实施例为了能够支持数据调度的处理能力,需要设置至少两个入队通道,如果只有一个入队通道,调度的性能将大幅下降。
步骤3:本级调度器获取下一级调度器发送的入队信息。
这里,入队信息中包括下一级节点编号、本级节点的编号、本级节点优先级、报文长度、报文存储地址等信息。其中,报文存储地址用来在最高级调度出队后读取存储数据流完整信息的存储器,由于数据流完整信息非常大,为了优化芯片面积,可以预先设置存储数据流完整信息的存储器,在调度器中只需要将其存储地址调度出来,最终根据这个地址再把完整的信息读出来即可。报文长度用来在每一级调度出队后更新内部的数据结构,即更新调度器中的相关表项。
由于最次级调度器对应的是数据流,没有更低级的调度器,因此,最次级的调度器的入队信息中只包括数据流编号、报文长度、报文存储地址即可。
步骤4:本级调度器接收入队调度请求,从入队调度请求中解析出入队信息,使用下一级节点的编号作为地址,将入队信息存储进第一存储器中;使用本级节点的编号和下一级节点的优先级编号作为地址,更新成员不空状态,即第一存储器为不空状态,记录本级调度中某个成员的某个优先级有调度请求。这里,成员不空状态用于记录本级调度中某个成员的某个优先级是否有调度请求,下一级节点的优先级编号为下一级节点挂接在本级节点的优先级编号。
步骤5:使用本级节点的编号和下一级节点的优先级编号作为索引,创建链表。在调度器中,某个节点的某个优先级可能挂接多个下一级节点。
步骤6:根据本节点编号索引待调度状态和流量整形状态。如果得到的待调度状态为0,流量整形状态为1则执行步骤7。
步骤7:将本级节点的编号缓存到FIFO存储器中等待调度,同时将本级节点的编号对应的待调度状态置1。
本申请实施例中,通过待调度状态的设定,使得本级调度器中,某个下一级节点只会有一个入队信息存储在第一存储器中。这样避免了基于本级节点的编号和下一级节点的优先级作为索引创建链表的基础上,还要基于下一级节点编号再创建下一级节点对应的链表的操作,大幅简化了入队信息的存储方式,且可以使得第一存储器的深度只需要和下一级节点总数一致。
步骤8:当FIFO存储器不空,或有出队调度请求时,将发起本级调度器的读操作。本级调度器的读控制模块将根据FIFO存储器中的节点编号或出队调度请求中的节点编号,索引成员不为空状态和流量整形状态。
如果索引得到的成员不为空状态和流量整形状态都为1,则表示该节点编号有对应的信息可以出队;如果成员不空状态为0,流量整形状态为1表示没有成员需要调度;成员不空状态为1,流量整形状态为0表示有成员但不可以调度。当FIFO存储器中的节点编号或出队调度请求中的节点编号所对应的信息都可以出队时,优先选择出队调度请求对应的信息出队。
以本级调度器中的本级节点的编号有对应的信息要出队为例,挑选两个可以出队的本级节点的编号,根据预定的QoS调度策略,选择出本级节点的编号下某个优先级,并根据本级节点的编号和下一级节点在本级节点的编号的优先级编号,得到链表中的某个下一级节点编号。最后以下一级节点编号索引第一存储器,得到入队时存储的入队信息。
步骤9:使用本级节点的编号索引预设的映射表,结合步骤8得到的入队信息,组成全新的出队信息,并发送给上一级调度器。其中,预设的映射表是一个表项,里面指示本级节点要挂接的上一级节点编号和本级节点挂接在上一级节点的优先级。
步骤10:使用步骤9得到的出队信息,立即更新本级调度器的相关表项,表项内容和QoS策略有关。例如,将出队信息中的报文长度发送给流量整形模块,计算并更新流量整形状态等。入队信息和出队信息中包含的内容,可视QoS调度策略,灵活增加或者减少。
步骤11:本级节点接收出队调度请求。
步骤12:读控制模块中的流量整形请求,可视QoS调度策略,灵活增加。如果调度器支持流量整形的功能,则在系统重新加载本调度器某个节点的流量整形状态时,发起流量整形请求。此时需要根据对应的流量整形编号索引待调度状态和成员不为空状态。如果待调度状态为0,成员不空状态为1,则将流量整形编号缓存至FIFO存储器等待调度,同时将流量整形编号对应的待调度状态置1。
本级调度器的某个本级节点,下面可以挂接多个下一级节点。初始化时,待调度状态为0。当第一个下一级节点入队的时候,此时待调度状态为0,可以将该下一级节点编号缓存至FIFO存储器等待调度,同将待调度状态为1。之后该本级节点下面的其他下一级节点再入队时,不再将该下一级节点编号缓存至FIFO存储器等待调度。
这里,流量整形的作用是限制流出某一网络的某一连接的流量与突发,使这类报文以比较均匀的速度向外发送。流量整形通常使用缓冲区和令牌桶来完成,当报文的发送速度过快时,首先在缓冲区进行缓存,在令牌桶的控制下再均匀地发送这些被缓冲的报文。
例如,可以根据流量整形控制数据的带宽,家里网络10M、50M、100M等都是通过该技术实现的。假设1秒钟内系统会更新100次流量整形的表项,每次+1M的授权。那么总的来看,就是100M的网络带宽。调度器每次调度一个成员,都要减掉其包长,如果在系统授权更新的间隔里,调度器调度走了超过1M,则改变流量整形的状态,不再调度该成员,直到下次系统再+1M的授权。
这里有个问题,如果某个成员流量整形状态不满足预设条件,导致其无法调度了。后续,如果该成员没有新的数据请求,那么这个成员即便等到下次系统再+1M的授权,依然无法调度。
为了解决这个问题,需要使用“流量整形编号”去查询调度器中所有的成员(系统+1M授权本身就是遍历所有成员的过程)是否有有效的成员(即“成员不空状态”),如果有就要重新发起一次调度的请求。
步骤13:根据步骤8,如果根据本级节点的编号索引成员不空状态的值为0,即上一级节点发起出队调度请求时,发现底下没有其他下一级节点了,说明该编号在本级调度器中没有数据等待调度。此时将该编号对应的待调度状态清0。当QoS策略使用流量整形时,如果成员不空状态1,但流量整形状态为0,表示有成员但不可以调度,同样要将待调度状态清0。
之后,如果该节点又有下一级节点入队,则可以将该节点编号缓存至FIFO存储器中等待调度。在生成出队信息之后,检查该节点编号下面所有优先级是否还有调度请求,即检查该节点编号下面所有优先级对应的链表是否都为空。如果都为空,则将“成员不空状态”清0。
本申请实施例中,以3级调度为例,将多个调度器的入队通道、出队通道互相连接,上一级出队调度请求(父节点读请求)和下一级出队调度请求(子节点读请求)连续发送,形成完整的多级调度装置,如图3所示。当第三级调度器30中某个下一级节点(即数据流)出队时,立即更新该下一级节点的状态,同时将包含有最底层数据流的关键信息的出队信息发送给第二级调度器31。逐级往上,在第一级调度器32的某个节点的入队信息中,就可以得到所属该成员最高优先级的数据流的关键信息(例如该数据流数据存储地址等)。
图4为本申请实施例提供的调度器的原理结构示意图,如图4所述,入队信息0和入队信息1可以通过入队通道0和入队通道1进行传输,将入队信息0和入队信息1存入第一存储器40,用入队信息中的节点编号标识相应的入队信息,更新成员不空状态,即第一存储器为不空状态,记录本级调度中某个成员的某个优先级有调度请求,根据本级节点的编号和下一级节点的优先级编号作为索引,创建链表41。
在入队的时候,可以从入队调度请求0和入队调度请求1中解析出入队信息0和入队信息1,从入队信息0和入队信息1中解析出相应的节点编号,根据相应的节点编号索引待调度状态和流量整形状态,如果得到的待调度状态为0,将本级节点的编号缓存到FIFO存储器42中等待调度,同时将本级节点的编号对应的待调度状态置1。本申请实施例中,可以将报文长度发送给流量整形模块43,计算并更新流量整形状态等。其中,流量整形请求可视QoS调度策略,灵活增加。如果调度器支持流量整形的功能,则在系统重新加载本调度器某个节点的流量整形状态后,发起流量整形调度请求。此时需要根据对应的流量整形编号索引成员不空状态、待调度状态和流量整形状态。如果成员不空状态为1,待调度状态为0,流量整形状态为1,则将流量整形编号缓存FIFO存储器等待调度,同时将流量整形编号对应的待调度状态置1。本申请实施例中,即便重新加载了流量整形状态,其流量整形状态仍然可能是0。例如,系统每次都是+100授权,上一次调度的时候调度了一个200Byte的报文。那么系统要加至少两次授权才能将流量整形状态置1。
当FIFO存储器42不空,或有出队调度请求时,将发起本级调度器的读操作。本级调度器的读控制模块将根据FIFO存储器42中的节点编号或出队调度请求中的节点编号,索引成员不为空状态和流量整形状态。如果索引得到的成员不为空状态和流量整形状态都为1,则表示该节点编号有对应的信息可以出队;如果成员不空状态为0,流量整形状态为1表示没有成员需要调度;成员不空状态为1,流量整形状态为0表示有成员但不可以调度。当FIFO存储器中的节点编号或出队调度请求中的节点编号所对应的信息都可以出队时,优先选择出队调度请求对应的信息出队。
以本级调度器中的本级节点的编号有对应的信息要出队为例,挑选两个可以出队的本级节点的编号,根据预定的QoS调度策略,选择出本级节点的编号下某个优先级,并根据本级节点的编号和下一级节点在本级节点的编号的优先级编号,得到链表中的某个下一级节点编号。最后以下一级节点编号索引第一存储器,得到入队时存储的入队信息。
使用本级节点的编号索引预设的映射关系表(映射表)44,结合相应的入队信息,组成全新的出队信息,并发送给上一级调度器。
本申请实施例中,当系统根据一定策略(通常是第一级调度成员之间做WRR),选择第一级调度器中的某个节点。此时,查找该节点入队信息中记录的内容,得到最高优先级数据流的关键信息。之后,产生一次出队调度请求,驱动其最高优先级的子节点(第二级调度器)再送一个出队信息上来并重新入队,从而完成数据的连续调度。
本申请实施例采用流水线的方式,将各级调度分离出来形成独立的调度器,只需要保证在J个时钟周期内完成任意一级调度的“入队”和“出队”即可。从而克服在J个时钟周期内完成预选可能变得非常困难或者无法实现的问题,可以扩展任意级数的调度,极大的提高了QoS调度级数的可扩展。
基于前述的实施例,本申请实施例提供一种多级调度装置,该装置所包括的各单元,都可以通过计算机设备中的处理器来实现;当然也可通过的逻辑电路实现;在实施的过程中,处理器可以为中央处理器(CPU)、微处理器(MPU)、数字信号处理器(DSP)或现场可编程门阵列(FPGA)等。
图5为本申请实施例提供的多级调度装置的组成结构示意图,所述装置包括:
第一解析单元50,配置为获取出队调度请求,从所述出队调度请求中,解析出本级节点的编号;
第一确定单元51,配置为根据所述出队调度请求或所述本级节点的编号,确定上一级节点的编号和上一级节点的优先级编号;
第二确定单元52,配置为根据所述本级节点的编号,从预设的第一存储器中确定需要调度的入队信息;
生成单元53,配置为根据所述需要调度的入队信息、所述上一级节点的编号和所述上一级节点的优先级编号,生成出队信息。
在其他的实施例中,所述解析单元,还配置为:获取所述本级调度器自身发起的出队调度请求;或者,获取上一级调度器发送的出队调度请求。
在其他的实施例中,所述第二确定单元,还配置为:所述本级调度器自身发起出队调度请求时,根据所述本级节点的编号,从预设的映射表中确定所述上一级节点的编号和所述上一级节点的优先级编号,所述映射表用于表征所述本级节点的编号、上一级节点的编号和上一级节点的优先级编号之间的关联关系。
在其他的实施例中,所述第二确定单元,还配置为:所述上一级调度器发送出队调度请求时,从所述出队调度请求中解析出所述上一级节点的编号和所述上一级节点的优先级。
在其他的实施例中,所述装置还包括:发送单元,配置为如果本级调度器不为最高级别的调度器,将所述出队信息发送至上一级节点,并向下一级调度器发送出队调度请求;读取单元,配置为如果所述本级调度器为最高级别的调度器,根据所述出队信息从预设的第三存储器中读取对应的数据流,并向下一级调度器发送出队调度请求。
在其他的实施例中,所述装置还包括:第二解析单元,配置为获取入队调度请求,从所述入队调度请求中解析出入队信息,所述入队信息至少包括与本级节点的编号、下一级节点的编号和报文存储地址;存储单元,配置为将所述入队信息存储至第一存储器,并用所述入队信息中的下一级节点的编号标识所述入队信息。
在其他的实施例中,所述装置还包括:请求单元,配置为如果第二存储器存储有需要调度的入队信息所对应的节点编号,所述本级调度器自身发起出队调度请求。
在其他的实施例中,所述第一确定单元,还配置为:如果确定所述第一存储器中存储有需要调度的入队信息,根据所述本级节点的编号,从预设的链表中,确定下一级节点对应的优先级编号和下一级节点的编号,所述链表用于存储所述本级节点的编号、所述优先级编号和所述下一级节点的编号;根据所述优先级编号,确定所述下一级节点的优先级,并对所述下一级节点的优先级进行排序;根据优先级最高的下一级节点的编号,从第一存储器中确定需要调度的入队信息。
在其他的实施例中,所述装置还包括:标识单元,配置为根据第一预设规则确定所述下一级节点的优先级,并用优先级编号标识所述下一级节点的优先级;构建单元,配置为根据所述本级节点的编号、所述优先级编号和所述下一级节点的编号,创建链表。
需要说明的是,本申请实施例中,如果以软件功能模块的形式实现上述多级调度方法,并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台服务器执行本申请各个实施例所述方法的全部或部分。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read Only Memory,ROM)、磁碟或者光盘等各种可以存储程序代码的介质。这样,本申请实施例不限制于任何特定的硬件和软件结合。
对应地,本申请实施例提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述实施例提供的多级调度方法中的步骤。
对应地,本申请实施例提供一种网络芯片,所述网络芯片包括:至少两个不同级别的调度器、每一级别的调度器对应的至少一个用于数据传输的节点和配置为存储可执行指令的存储器,其中:
所述调度器配置为执行存储的可执行指令,所述可执行指令配置为执行上述实施例提供的多级调度方法中的步骤。
本申请装置实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本申请装置实施例中未披露的技术细节,请参照本申请方法实施例的描述而理解。
这里需要指出的是:以上存储介质和设备实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本申请存储介质和设备实施例中未披露的技术细节,请参照本申请方法实施例的描述而理解。
存储器配置为存储由节点可执行的指令和应用,还可以缓存待节点以及网络芯片中各模块待处理或已经处理的数据(例如,图像数据、音频数据、语音通信数据和视频通信数据),可以通过闪存(FLASH)或随机访问存储器(Random Access Memory,RAM)实现。
当然,本申请实施例中的装置还可有其他类似的协议交互实现案例,在不背离本申请精神及其实质的情况下,本领域的技术人员当可根据本申请实施例做出各种相应的改变和变形,但这些相应的改变和变形都应属于本申请方法所附的权利要求的保护范围。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用硬件实施例、软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的设备。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令设备的制造品,该指令设备实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
应理解,说明书通篇中提到的“一个实施例”或“一实施例”意味着与实施例有关的特定特征、结构或特性包括在本申请的至少一个实施例中。因此,在整个说明书各处出现的“在一个实施例中”或“在一实施例中”未必一定指相同的实施例。此外,这些特定的特征、结构或特性可以任意适合的方式结合在一个或多个实施例中。应理解,在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个模块或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或模块的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
上述作为分离部件说明的模块可以是、或也可以不是物理上分开的,作为模块显示的部件可以是、或也可以不是物理模块;既可以位于一个地方,也可以分布到多个网络模块上;可以根据实际的需要选择其中的部分或全部模块来实现本实施例方案的目的。
以上所述,仅为本申请的实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (12)
1.一种多级调度方法,其特征在于,所述方法应用于网络芯片,所述网络芯片包括至少两个不同级别的调度器、每一级别的调度器对应至少一个用于数据传输的节点,所述方法包括:
获取出队调度请求,从所述出队调度请求中,解析出本级节点的编号;
根据所述出队调度请求或所述本级节点的编号,确定上一级节点的编号和上一级节点的优先级编号;
根据所述本级节点的编号,从预设的第一存储器中确定需要调度的入队信息;
根据所述需要调度的入队信息、所述上一级节点的编号和所述上一级节点的优先级编号,生成出队信息。
2.根据权利要求1所述的方法,其特征在于,所述获取出队调度请求,包括:
获取所述本级调度器自身发起的出队调度请求;或者,
获取上一级调度器发送的出队调度请求。
3.根据权利要求2所述的方法,其特征在于,所述本级调度器自身发起出队调度请求时,对应地,所述根据所述本级节点的编号,确定上一级节点的编号和上一级节点的优先级编号,包括:
根据所述本级节点的编号,从预设的映射表中确定所述上一级节点的编号和所述上一级节点的优先级编号,所述映射表用于表征所述本级节点的编号、上一级节点的编号和上一级节点的优先级编号之间的关联关系。
4.根据权利要求2所述的方法,其特征在于,所述上一级调度器发送出队调度请求时,对应地,所述根据所述出队调度请求,确定上一级节点的编号和上一级节点的优先级,包括:
从所述出队调度请求中解析出所述上一级节点的编号和所述上一级节点的优先级。
5.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
如果本级调度器不为最高级别的调度器,将所述出队信息发送至上一级节点,并向下一级调度器发送出队调度请求;
如果所述本级调度器为最高级别的调度器,根据所述出队信息从预设的第三存储器中读取对应的数据流,并向下一级调度器发送出队调度请求。
6.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
获取入队调度请求,从所述入队调度请求中解析出入队信息,所述入队信息至少包括与本级节点的编号、下一级节点的编号和报文存储地址;
将所述入队信息存储至第一存储器,并用所述入队信息中的下一级节点的编号标识所述入队信息。
7.根据权利要求2所述的方法,其特征在于,所述方法还包括:
如果第二存储器存储有需要调度的入队信息所对应的节点编号,所述本级调度器自身发起出队调度请求。
8.根据权利要求6所述的方法,其特征在于,所述根据所述本级节点的编号,从预设的第一存储器中确定需要调度的入队信息,包括:
如果确定所述第一存储器中存储有需要调度的入队信息,根据所述本级节点的编号,从预设的链表中,确定下一级节点对应的优先级编号和下一级节点的编号,所述链表用于存储所述本级节点的编号、所述优先级编号和所述下一级节点的编号;
根据所述优先级编号,确定所述下一级节点的优先级,并对所述下一级节点的优先级进行排序;
根据优先级最高的下一级节点的编号,从第一存储器中确定需要调度的入队信息。
9.根据权利要求8所述的方法,其特征在于,所述方法还包括:
根据第一预设规则确定所述下一级节点的优先级,并用优先级编号标识所述下一级节点的优先级;
根据所述本级节点的编号、所述优先级编号和所述下一级节点的编号,创建链表。
10.一种多级调度装置,其特征在于,所述装置应用于网络芯片中的至少两个不同级别的调度器,其中,每一级别的调度器对应的至少一个用于数据传输的节点,所述装置包括:
第一解析单元,配置为获取出队调度请求,从所述出队调度请求中,解析出本级节点的编号;
第一确定单元,配置为根据所述出队调度请求或所述本级节点的编号,确定上一级节点的编号和上一级节点的优先级编号;
第二确定单元,配置为根据所述本级节点的编号,从预设的第一存储器中确定需要调度的入队信息;
生成单元,配置为根据所述需要调度的入队信息、所述上一级节点的编号和所述上一级节点的优先级编号,生成出队信息。
11.一种网络芯片,其特征在于,所述网络芯片包括:至少两个不同级别的调度器、每一级别的调度器对应的至少一个用于数据传输的节点和配置为存储可执行指令的存储器,其中:
所述调度器配置为执行存储的可执行指令,所述可执行指令配置为执行上述权利要求1至9任一项提供的多级调度方法。
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机可执行指令,该计算机可执行指令配置为执行上述权利要求1至9任一项提供的多级调度方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910017391.0A CN109840145B (zh) | 2019-01-08 | 2019-01-08 | 一种多级调度方法、装置、网络芯片及存储介质 |
PCT/CN2019/117685 WO2020143308A1 (zh) | 2019-01-08 | 2019-11-12 | 一种多级调度方法、装置、网络芯片及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910017391.0A CN109840145B (zh) | 2019-01-08 | 2019-01-08 | 一种多级调度方法、装置、网络芯片及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109840145A true CN109840145A (zh) | 2019-06-04 |
CN109840145B CN109840145B (zh) | 2021-09-07 |
Family
ID=66883700
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910017391.0A Active CN109840145B (zh) | 2019-01-08 | 2019-01-08 | 一种多级调度方法、装置、网络芯片及存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN109840145B (zh) |
WO (1) | WO2020143308A1 (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020143308A1 (zh) * | 2019-01-08 | 2020-07-16 | 盛科网络(苏州)有限公司 | 一种多级调度方法、装置、网络芯片及存储介质 |
CN111966595A (zh) * | 2020-08-13 | 2020-11-20 | 安徽芯纪元科技有限公司 | 一种软件调试系统内芯片定位方法及调试报文传输方法 |
CN112433839A (zh) * | 2020-12-16 | 2021-03-02 | 盛科网络(苏州)有限公司 | 实现网络芯片高速调度的方法、设备及存储介质 |
CN112559400A (zh) * | 2020-12-03 | 2021-03-26 | 南京盛科网络有限公司 | 多级调度装置、方法、网络芯片及计算机可读存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102594654A (zh) * | 2011-01-17 | 2012-07-18 | 中兴通讯股份有限公司 | 一种队列调度的方法和装置 |
CN102769566A (zh) * | 2012-07-13 | 2012-11-07 | 中兴通讯股份有限公司 | 一种多级调度系统配置、变更方法和装置 |
CN105207952A (zh) * | 2014-06-12 | 2015-12-30 | 中兴通讯股份有限公司 | 一种分层服务质量队列限速方法和装置 |
US20160142331A1 (en) * | 2014-11-14 | 2016-05-19 | Xpliant | Packet scheduling using hierarchical scheduling process with priority propagation |
CN106330710A (zh) * | 2015-07-01 | 2017-01-11 | 中兴通讯股份有限公司 | 数据流调度方法及装置 |
CN106485347A (zh) * | 2016-09-21 | 2017-03-08 | 哈尔滨理工大学 | 缓冲工序提前迁移的二车间柔性综合调度方法 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101621460B (zh) * | 2008-06-30 | 2011-11-30 | 中兴通讯股份有限公司 | 一种分组调度方法和装置 |
CN101594302B (zh) * | 2009-07-01 | 2011-08-03 | 华为技术有限公司 | 数据出队的方法及装置 |
CN102326369B (zh) * | 2011-08-04 | 2014-04-30 | 华为技术有限公司 | 队列调度方法和装置 |
CN102355422B (zh) * | 2011-10-17 | 2014-07-23 | 苏州迈科网络安全技术股份有限公司 | 多核并行无锁的qos流量控制方法 |
US9304817B2 (en) * | 2013-11-25 | 2016-04-05 | Xerox Corporation | Method and apparatus for a user-driven priority based job scheduling in a data processing platform |
CN104639461B (zh) * | 2014-12-31 | 2018-04-27 | 北京华为数字技术有限公司 | 一种业务数据的调度方法、装置及系统 |
CN109840145B (zh) * | 2019-01-08 | 2021-09-07 | 苏州盛科通信股份有限公司 | 一种多级调度方法、装置、网络芯片及存储介质 |
-
2019
- 2019-01-08 CN CN201910017391.0A patent/CN109840145B/zh active Active
- 2019-11-12 WO PCT/CN2019/117685 patent/WO2020143308A1/zh active Application Filing
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102594654A (zh) * | 2011-01-17 | 2012-07-18 | 中兴通讯股份有限公司 | 一种队列调度的方法和装置 |
CN102769566A (zh) * | 2012-07-13 | 2012-11-07 | 中兴通讯股份有限公司 | 一种多级调度系统配置、变更方法和装置 |
CN105207952A (zh) * | 2014-06-12 | 2015-12-30 | 中兴通讯股份有限公司 | 一种分层服务质量队列限速方法和装置 |
US20160142331A1 (en) * | 2014-11-14 | 2016-05-19 | Xpliant | Packet scheduling using hierarchical scheduling process with priority propagation |
CN106330710A (zh) * | 2015-07-01 | 2017-01-11 | 中兴通讯股份有限公司 | 数据流调度方法及装置 |
CN106485347A (zh) * | 2016-09-21 | 2017-03-08 | 哈尔滨理工大学 | 缓冲工序提前迁移的二车间柔性综合调度方法 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020143308A1 (zh) * | 2019-01-08 | 2020-07-16 | 盛科网络(苏州)有限公司 | 一种多级调度方法、装置、网络芯片及存储介质 |
CN111966595A (zh) * | 2020-08-13 | 2020-11-20 | 安徽芯纪元科技有限公司 | 一种软件调试系统内芯片定位方法及调试报文传输方法 |
CN111966595B (zh) * | 2020-08-13 | 2024-04-05 | 安徽芯纪元科技有限公司 | 一种软件调试系统内芯片定位方法及调试报文传输方法 |
CN112559400A (zh) * | 2020-12-03 | 2021-03-26 | 南京盛科网络有限公司 | 多级调度装置、方法、网络芯片及计算机可读存储介质 |
CN112433839A (zh) * | 2020-12-16 | 2021-03-02 | 盛科网络(苏州)有限公司 | 实现网络芯片高速调度的方法、设备及存储介质 |
WO2022127873A1 (zh) * | 2020-12-16 | 2022-06-23 | 苏州盛科通信股份有限公司 | 实现网络芯片高速调度的方法、设备及存储介质 |
CN112433839B (zh) * | 2020-12-16 | 2024-04-02 | 苏州盛科通信股份有限公司 | 实现网络芯片高速调度的方法、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN109840145B (zh) | 2021-09-07 |
WO2020143308A1 (zh) | 2020-07-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109840145A (zh) | 一种多级调度方法、装置、网络芯片及存储介质 | |
US10341260B2 (en) | Early queueing network device | |
US8230110B2 (en) | Work-conserving packet scheduling in network devices | |
JP3872716B2 (ja) | パケット出力制御装置 | |
CA2575869C (en) | Hierarchal scheduler with multiple scheduling lanes | |
US20140075036A1 (en) | Queue Scheduling Method and Apparatus | |
US8553543B2 (en) | Traffic shaping method and device | |
JP6535253B2 (ja) | 複数のリンクされるメモリリストを利用する方法および装置 | |
WO2002062013A2 (en) | Methods and systems providing fair queuing and priority scheduling to enhance quality of service in a network | |
US10447608B2 (en) | Packet scheduling using hierarchical scheduling process with priority propagation | |
CN106612236B (zh) | 众核网络处理器及其微引擎的报文调度方法、系统 | |
US8339949B2 (en) | Priority-aware hierarchical communication traffic scheduling | |
US10110515B2 (en) | Packet scheduling using hierarchical scheduling process | |
RU2643666C2 (ru) | Способ и устройство для управления авторизацией виртуальной очереди вывода, а также компьютерный носитель информации | |
CN114500401B (zh) | 一种应对突发流量的资源调度方法和系统 | |
EP2939378B1 (en) | Method and network element for packet job scheduler in data processing based on workload self-learning | |
US8032543B2 (en) | Sorting apparatus and method | |
CN104022965B (zh) | 一种报文出队调度的方法和设备 | |
CN1518296A (zh) | 一种支持多业务的综合队列调度的实现方法 | |
US7474662B2 (en) | Systems and methods for rate-limited weighted best effort scheduling | |
JP2005174286A (ja) | リンク・リスト・プロセッサを持つメモリ管理システム | |
JP2005236669A (ja) | 通信品質制御方法およびその通信品質制御装置 | |
US6904056B2 (en) | Method and apparatus for improved scheduling technique | |
Guesmi et al. | Design of priority-based active queue management for a high-performance IP switch | |
CN117221248A (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 | ||
CB02 | Change of applicant information |
Address after: Unit 13 / 16, 4th floor, building B, Xinghan 5, Suzhou Industrial Park, Suzhou, Jiangsu 215021 Applicant after: Suzhou Shengke Communication Co.,Ltd. Address before: Unit 13 / 16, 4th floor, building B, Xinghan 5, Suzhou Industrial Park, Suzhou, Jiangsu 215021 Applicant before: CENTEC NETWORKS (SU ZHOU) Co.,Ltd. |
|
CB02 | Change of applicant information | ||
GR01 | Patent grant | ||
GR01 | Patent grant |