CN110830388A - 一种数据调度方法、装置、网络设备及计算机存储介质 - Google Patents

一种数据调度方法、装置、网络设备及计算机存储介质 Download PDF

Info

Publication number
CN110830388A
CN110830388A CN201810905206.7A CN201810905206A CN110830388A CN 110830388 A CN110830388 A CN 110830388A CN 201810905206 A CN201810905206 A CN 201810905206A CN 110830388 A CN110830388 A CN 110830388A
Authority
CN
China
Prior art keywords
scheduling
data
fifo
queue
target
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
Application number
CN201810905206.7A
Other languages
English (en)
Other versions
CN110830388B (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.)
Nanjing ZTE New Software Co Ltd
Original Assignee
ZTE Corp
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 ZTE Corp filed Critical ZTE Corp
Priority to CN201810905206.7A priority Critical patent/CN110830388B/zh
Publication of CN110830388A publication Critical patent/CN110830388A/zh
Application granted granted Critical
Publication of CN110830388B publication Critical patent/CN110830388B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/62Queue scheduling characterised by scheduling criteria
    • H04L47/6245Modifications to standard FIFO or LIFO
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/62Queue scheduling characterised by scheduling criteria
    • H04L47/625Queue scheduling characterised by scheduling criteria for service slots or service orders
    • H04L47/6275Queue scheduling characterised by scheduling criteria for service slots or service orders based on priority

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明实施例公开了一种数据调度方法,包括:接收带宽请求,所述带宽请求携带有传输带宽;根据当前的至少两个FIFO与队列之间的映射关系确定所述FIFO的调度优先级;根据所述FIFO与队列之间的映射关系以及所述FIFO的调度优先级执行数据调度,直至获得满足所述传输带宽的调度数据;发出所述调度数据。本发明实施例还公开了一种数据调度装置、网络设备及计算机存储介质。

Description

一种数据调度方法、装置、网络设备及计算机存储介质
技术领域
本发明涉及通信领域,尤其涉及一种数据调度方法、装置、网络设备及计算机存储介质。
背景技术
在大部分网络应用中,数据转发通常采用多队列模式以满足服务质量(QoS,Quality of Service)要求。QoS指网络能够利用各种基础技术,为指定的网络通信提供更好的服务能力,是网络的一种安全机制,可用来解决网络延迟和阻塞等问题。在正常情况下,如果网络只用于特定的无时间限制的应用系统,比如Web应用、或E-mail设置等,则不需要QoS。但是,QoS对多媒体等关键应用就十分必要。因为,当网络过载或拥塞时,QoS能确保重要业务降低延迟,减少丢弃,同时保证网络的高效运行。
其中,队列是一片基于存储转发的缓冲区,报文遵循先进先出。对于网络数据转发设备的上行方向,可根据服务类别(COS,Class of Service)对数据业务进行分类而指定到不同队列,以按照队列调度模式进行调度出队列。在网络数据转发设备的上行方向,不同优先级的数据流在严格优先级(SP,Strict Priority)调度模式下基于上行带宽进行调度,并在传输数据达到带宽要求时终止数据传输,此时相应的传输队列开始缓冲数据。然而,通常在响应带宽请求之前会采用先入先出(FIFO,First Input First Output)队列来缓存网络数据,而当网络出现拥塞时,FIFO中会存储部分低优先级数据,导致高优先级数据时延增大。
发明内容
为解决现有存在的技术问题,本发明实施例提供一种能够有效减小高优先级数据时延的数据调度方法、装置、网络设备及计算机存储介质。
为达到上述目的,本发明实施例的技术方案是这样实现的:
第一方面,本发明实施例提供了一种数据调度方法,包括:
接收带宽请求,所述带宽请求携带有传输带宽;
根据当前的至少两个FIFO与队列之间的映射关系确定所述FIFO的调度优先级;
根据所述FIFO与队列之间的映射关系以及所述FIFO的调度优先级执行数据调度,直至获得满足所述传输带宽的调度数据;
发出所述调度数据。
上述方案中,所述根据当前的至少两个FIFO与队列之间的映射关系确定所述FIFO的调度优先级之前,该方法还包括:
接收携带有FIFO数量的配置指令;
根据所述FIFO数量以及设置的队列数量确定所述FIFO与队列之间的映射关系。
上述方案中,所述根据所述FIFO与队列之间的映射关系以及所述FIFO的调度优先级执行数据调度,直至获得满足所述传输带宽的调度数据,包括:
以调度优先级最高的FIFO作为初始的目标调度FIFO;
根据所述传输带宽对所述目标调度FIFO进行数据调度,获取当前已调度数据;
确定对所述目标调度FIFO进行数据调度完成后获得的当前已调度数据不满足所述传输带宽时,根据所述FIFO的调度优先级依次选取下一调度优先级的FIFO作为更新的目标调度FIFO,并返回所述根据所述传输带宽对所述目标调度FIFO进行数据调度,获取当前已调度数据的步骤。
上述方案中,所述根据所述传输带宽对所述当前目标FIFO进行数据调度,获取当前已调度数据,包括:
根据所述传输带宽对所述目标调度FIFO内的数据进行数据调度,确定对所述目标调度FIFO内的数据进行数据调度完成后获得的当前已调度数据不满足所述传输带宽时,以所述当前目标FIFO对应的队列中调度优先级最高的队列作为初始的目标队列;
从所述目标队列中读取数据至所述目标调度FIFO内,并根据所述传输带宽对所述目标调度FIFO内的数据进行数据调度,获得更新的当前已调度数据;
确定在对所述目标队列中的数据读取完后获得的当前已调度数据仍不满足所述传输带宽时,根据所述当前目标FIFO对应的队列的调度优先级依次选取下一调度优先级的队列作为更新后的目标队列,并返回所述从所述目标队列中读取数据至所述目标调度FIFO,并根据所述传输带宽对所述目标调度FIFO内的数据进行数据调度,获得更新的当前已调度数据的步骤。
上述方案中,所述确定对所述目标调度FIFO进行数据调度完成,包括:
检测当前从所述目标调度FIFO内调度出的数据的位置标识是否与设置的所述目标调度FIFO内数据终点的位置标识相同;
若相同,则确定对所述目标调度FIFO进行数据调度完成。
上述方案中,所述发出所述调度数据之后,该方法还包括:
确定带宽请求结束后,从所述FIFO对应的队列中根据对应的所述队列的调度优先级从高到低的顺序读取数据至对应的所述FIFO。
上述方案中,所述根据当前的至少两个FIFO与队列之间的映射关系确定所述FIFO的调度优先级,包括:
确定数据调度模式为时延模式时,根据当前的至少两个FIFO与队列之间的映射关系确定所述FIFO的调度优先级。
第二方面,本发明实施例提供了一种数据调度装置,包括:
接收模块,用于接收带宽请求,所述带宽请求携带有传输带宽;
处理模块,用于根据当前的至少两个FIFO与队列之间的映射关系确定所述FIFO的调度优先级;
数据调度模块,用于根据所述FIFO与队列之间的映射关系以及所述FIFO的调度优先级执行数据调度,直至获得满足所述传输带宽的调度数据;
发送模块,用于发出所述调度数据。
上述方案中,
所述接收模块,还用于接收携带有FIFO数量的配置指令;
所述处理模块,还用于根据所述FIFO数量以及设置的队列数量确定所述FIFO与队列之间的映射关系。
上述方案中,所述数据调度模块,具体用于:
以调度优先级最高的FIFO作为初始的目标调度FIFO;
根据所述传输带宽对所述目标调度FIFO进行数据调度,获取当前已调度数据;
确定对所述目标调度FIFO进行数据调度完成后获得的当前已调度数据不满足所述传输带宽时,根据所述FIFO的调度优先级依次选取下一调度优先级的FIFO作为更新的目标调度FIFO,并返回所述根据所述传输带宽对所述目标调度FIFO进行数据调度,获取当前已调度数据的步骤。
上述方案中,所述数据调度模块,具体用于:
根据所述传输带宽对所述目标调度FIFO内的数据进行数据调度,确定对所述目标调度FIFO内的数据进行数据调度完成后获得的当前已调度数据不满足所述传输带宽时,以所述当前目标FIFO对应的队列中调度优先级最高的队列作为初始的目标队列;
从所述目标队列中读取数据至所述目标调度FIFO内,并根据所述传输带宽对所述目标调度FIFO内的数据进行数据调度,获得更新的当前已调度数据;
确定在对所述目标队列中的数据读取完后获得的当前已调度数据仍不满足所述传输带宽时,根据所述当前目标FIFO对应的队列的调度优先级依次选取下一调度优先级的队列作为更新后的目标队列,并返回所述从所述目标队列中读取数据至所述目标调度FIFO,并根据所述传输带宽对所述目标调度FIFO内的数据进行数据调度,获得更新的当前已调度数据的步骤。
上述方案中,所述数据调度模块,具体用于:
检测当前从所述目标调度FIFO内调度出的数据的位置标识是否与设置的所述目标调度FIFO内数据终点的位置标识相同;
若相同,则确定对所述目标调度FIFO进行数据调度完成。
上述方案中,所述数据调度模块,还用于确定带宽请求结束后,从所述FIFO对应的队列中根据对应的所述队列的调度优先级从高到低的顺序读取数据至对应的所述FIFO。
上述方案中,所述处理模块,具体用于:
确定数据调度模式为时延模式时,根据当前的至少两个FIFO与队列之间的映射关系确定所述FIFO的调度优先级。
第三方面,本发明实施例提供了一种网络设备,所述网络设备包括:处理器和用于存储能够在处理器上运行的计算机程序的存储器;其中,所述处理器用于运行所述计算机程序时,执行第一方面所述方法的步骤。
第四方面,本发明实施例提供了一种计算机存储介质,所述计算机存储介质中存储有计算机程序,所述计算机程序被处理器执行时实现如第一方面所述方法的步骤。
上述实施例所提供的数据调度方法、装置、网络设备及计算机存储介质,接收携带有传输带宽的带宽请求,根据当前的至少两个FIFO与队列之间的映射关系确定所述FIFO的调度优先级;根据所述FIFO与队列之间的映射关系以及所述FIFO的调度优先级执行数据调度,直至获得满足所述传输带宽的调度数据;发出所述调度数据。如此,通过设置多个FIFO以及根据所述多个FIFO与队列之间的映射关系确定所述FIFO的调度优先级,在数据调度时,优先对调度优先级高的FIFO进行调度,即通过FIFO的调度优先级确保能够始终优先调度高优先级数据,从而有效地减小了高优先级数据时延。
附图说明
图1为网络不拥塞情况下数据流A的入队列与出队列的示意图;
图2为网络拥塞情况下数据流A和数据流B的入队列与出队列的示意图;
图3为网络拥塞情况下FIFO中数据占用的示意图;
图4为本发明一实施例中数据调度方法的流程示意图;
图5为本发明一实施例中根据所述FIFO与队列之间的映射关系以及所述FIFO的调度优先级执行数据调度的流程示意图;
图6为本发明一实施例中根据所述传输带宽对所述目标调度FIFO进行数据调度,获取当前已调度数据的流程示意图;
图7为本发明一实施例中数据调度装置的结构示意图;
图8为本发明一实施例中队列与FIFO之间的映射关系示意图;
图9为本发明另一实施例中队列与FIFO之间的映射关系示意图;
图10为本发明又一实施例中队列与FIFO之间的映射关系示意图;
图11为本发明另一实施例中数据调度方法的流程示意图;
图12为本发明另一实施例中数据调度装置的结构示意图;
图13为本发明一实施例中网络设备的结构示意图。
具体实施方式
以下结合说明书附图及具体实施例对本发明技术方案做进一步的详细阐述。除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中在本发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本发明。本文所使用的术语“和/或”包括一个或多个相关的所列项目的任意的和所有的组合。
图1为网络不拥塞情况下数据流A的入队列与出队列的示意图,流量为8M的数据流A通过队列Q7调度,传输带宽为10M。在网络传输带宽充足的情况下,数据流A通过队列Q7被及时调度出去,此时数据流A的时延只受到硬件处理时间及传输带宽响应的影响,数据流A的时延为理论时延。
图2为网络拥塞情况下数据流A和数据流B的入队列与出队列的示意图,流量为8M的数据流A通过队列Q7调度,流量为8M数据流B通过队列Q0调度,且队列Q7的调度优先级高于队列Q0。当上行传输带宽小于数据流量时,比如上行传输带宽为10M,此时存在数据拥塞,即在队列调度情况下,数据流A的时延为理论时延,数据流B由于受传输带宽限制,存在队列缓存尾部丢弃,所以数据流B的时延无法用理论值计算。
图3为网络拥塞情况下FIFO中数据占用的示意图,流量为8M的数据流A通过队列Q7调度,流量为8M的数据流B通过队列Q0调度,且队列Q7的调度优先级高于队列Q0。如果网络接口在转发过程中不启用FIFO机制,只有在带宽请求时才从双倍速率同步动态随机存储器(DDR,Double Data Rate)中读取缓存数据,势必会影响上行网络接口吞吐量,所以现有大部分网络设备上行转发接口中都存在FIFO。当网络存在过载或者拥塞时,若上行传输带宽大于数据流A且小于数据流A与数据流B之和,比如上行传输带宽为10M,数据流A在一个带宽周期被调度出去后,数据流B被拥塞,所以在下个带宽周期到来之前,数据流B的部分数据被缓存在FIFO中。在下个带宽周期到来后,FIFO中的数据流B首先会被转发到网络接口,此时数据流A只有在FIFO中的数据流B被转发完才能被再次向网络接口转发,从而产生时延。数据流A的时延受FIFO深度的影响,FIFO越深,数据流A的时延越大,但是FIFO太浅又会影响上行吞吐量。因此,极有必要提供一种能够有效减小高优先级数据时延的数据调度方法。
参见图4,为本发明实施例提供的一种数据调度方法,包括以下步骤:
S101:接收带宽请求,所述带宽请求携带有传输带宽;
本实施例中,所述数据调度方法应用于网络设备,所述网络设备包括用户终端、局端设备等,所述用户终端可以是诸如计算机、手机等设备,所述局端设备可以是光线路终端、路由器等设备。当数据转发方向为用户终端至局端设备即为上行方向时,则用户终端接收局端设备发送的带宽请求;当数据转发方向为局端设备至用户终端即为下行方向时,则局端设备接收用户终端发送的带宽请求。所述传输带宽为在单位时间内能传输的最大数据量,所述单位时间可以根据实际需要进行设置,比如所述单位时间可以是一秒钟,这里不作具体限定。所述带宽请求的表示方式可以是信号、或报文等。
S102:根据当前的至少两个FIFO与队列之间的映射关系确定所述FIFO的调度优先级;
这里,所述FIFO的数量可以是默认设置的,也可以是根据实际需要动态调整后获得的。由于队列的数量是固定的,当FIFO的数量改变时,每个FIFO对应的队列以及该FIFO对应的队列的数量也会相应发生改变。也就是说,所述FIFO与队列之间的映射关系可以是根据默认的FIFO的数量确定的,也可以是根据调整后获得的FIFO的数量确定的。此外,队列的数量通常是预设设置的,在FIFO的数量相同时,每个FIFO对应的队列的数量可以相同,也可以不相同。本实施例中,以每个FIFO对应的队列的数量相同为例,每个FIFO对应的队列数量为队列总数量与FIFO的数量的比值。由于每个队列本身具有调度优先级,则根据FIFO与队列之间的映射关系,可以确定FIFO的调度优先级。例如,假设有Q1、Q2、Q3、Q4共四个队列,且调度优先级从高到低依次为Q1、Q2、Q3、Q4,若有FIFO1、FIFO2共两个FIFO,且每个FIFO对应的队列的数量相同的原则可以确定,FIFO1、FIFO2分别对应两个队列,其中,队列Q1和Q2与FIFO1相映射,队列Q3和Q4与FIFO2相映射,根据与FIFO1对应的队列Q1和Q2的优先级高于与FIFO2对应的队列Q3和Q4的优先级,可以确定FIFO1的调度优先级高于FIFO2的调度优先级。
在一可选的实施例中,步骤S102:所述根据当前的至少两个FIFO与队列之间的映射关系确定所述FIFO的调度优先级之前,该方法还可以包括:
接收携带有FIFO数量的配置指令;
根据所述FIFO数量以及设置的队列数量确定所述FIFO与队列之间的映射关系。
这里,接收携带有FIFO数量的配置指令可以是指网络设备获取用户通过参数设置界面输入的带有FIFO数量的配置指令,如,网络设备可以将可调整FIFO数量的界面通过显示屏幕等界面进行显示,并接收在用户选择FIFO数量后生成的携带有FIFO数量的配置指令。由于队列的数量通常是固定的,因此根据FIFO数量可确定每个FIFO对应的队列,即确定FIFO与队列之间的映射关系。如此,根据接收到的配置指令中所携带的FIFO数量,动态调整FIFO与队列之间的映射关系,以灵活对数据进行调度,进一步降低高优先级数据时延。
在一可选的实施例中,步骤S102:所述根据当前的至少两个FIFO与队列之间的映射关系确定所述FIFO的调度优先级,可以包括:
确定数据调度模式为时延模式时,根据当前的至少两个FIFO与队列之间的映射关系确定所述FIFO的调度优先级。
这里,可以将现有数据调度模式称为通用模式,如本申请图1至图3中所示,直接通过数据流入队列和出列队的方式进行调度以及通过设置一个FIFO与多个队列对应的方式进行调度的数据调度模式,而将在网络拥塞下的数据调度模式称为时延模式,如本申请实施例所提供的采用至少两个FIFO并建立所述至少两个FIFO与队列之间的映射关系,此外,根据FIFO对应的队列的调度优先级,每个FIFO具有不同的调度优先级,根据所述FIFO与队列之间的映射关系以及所述FIFO的调度优先级执行数据调度的数据调度模式。所述确定数据调度模式为时延模式,可以是接收到携带有时延模式的配置指令。此外,所述确定数据调度模式为时延模式,也可以是检测到默认的数据调度模式为时延模式。由于队列的数量是固定的,当FIFO的数量确定以后,根据每个队列本身的调度优先级以及FIFO与队列之间的映射关系,可以确定FIFO的调度优先级。如此,可以根据需求自主设置数据调度模式,灵活进行数据调度。
S103:根据所述FIFO与队列之间的映射关系以及所述FIFO的调度优先级执行数据调度,直至获得满足所述传输带宽的调度数据;
具体地,网络设备根据所述FIFO与队列之间的映射关系、以及根据所述FIFO与队列之间的映射关系所确定的所述FIFO的调度优先级执行数据调度,直至获得满足所述传输带宽的调度数据。
在一可选的实施例中,请参阅图5,步骤S103,根据所述FIFO与队列之间的映射关系以及所述FIFO的调度优先级执行数据调度,直至获得满足所述传输带宽的调度数据,可以包括:
步骤S1031:以调度优先级最高的FIFO作为初始的目标调度FIFO;
具体地,根据调度优先级从高到低的顺序,将具有最高调度优先级的FIFO作为初始的目标调度FIFO。
步骤S1032:根据所述传输带宽对所述目标调度FIFO进行数据调度,获取当前已调度数据;
具体地,以所述传输带宽为基准,对所述目标调度FIFO内的数据以及与所述目标调度FIFO对应的队列中的数据进行调度,获取当前已调度数据。这里,所述当前已调度数据表示在一次带宽请求中截至当前已累计通过数据调度所获得的数据。
在一可选的实施例中,请参阅图6,步骤S1032,根据所述传输带宽对所述目标调度FIFO进行数据调度,获取当前已调度数据,包括:
步骤S2031:对目标调度FIFO内的数据进行调度,获取当前已调度数据;
具体地,按照先进先出的顺序对目标调度FIFO内的数据依次进行调度,获取当前已调度数据。
步骤S2032:确定当前已调度数据不满足所述传输带宽时,检查是否调度完所述目标调度FIFO内的数据,若是,则执行步骤S2033,否则返回步骤S2031;
具体地,确定对目标调度FIFO内的数据进行调度后得到的当前已调度数据不满足所述传输带宽时,检查是否调度完所述目标调度FIFO内的数据,即检查是否完成对所述目标调度FIFO内的数据的调度,若已调度完所述目标调度FIFO内的数据,则执行步骤S2033;若未调度完所述目标调度FIFO内的数据,则返回执行步骤S2031。
步骤S2033:以目标调度FIFO对应的队列中调度优先级最高的队列作为初始的目标队列;
这里,当已调度完所述目标调度FIFO内的数据而对应获得的当前已调度数据不满足所述传输带宽时,按照目标调度FIFO对应的队列的调度优先级选取调度优先级最高的队列作为目标队列而继续执行数据调度,从而确保高优先级数据优先获得调度。
步骤S2034:从所述目标队列中读取数据至所述目标调度FIFO内,并继续对所述目标调度FIFO内的数据进行调度,获得更新的当前已调度数据;
具体地,将所述目标队列中的数据依次读取至所述目标调度FIFO内,并按照先进先出的顺序继续对目标调度FIFO内的数据进行调度,获取更新的当前已调度数据。
步骤S2035:确定当前已调度数据不满足所述传输带宽时,检查是否读取完所述目标队列中的数据,若是,则执行步骤S2036,否则返回步骤S2034;
这里,所述检查是否读取完所述目标队列中的数据可以是获取目标队列中的剩余数据量,判断目标队列中的剩余数据量是否等于零,若目标队列中的剩余数据量等于零,说明已读取完所述目标队列中的数据,即已调度完所述目标队列中的数据;若目标队列中的剩余数据量大于零,说明未读取完所述目标队列中的数据,即未调度完所述目标队列中的数据。
步骤S2036:根据所述目标FIFO对应的队列的调度优先级依次选取下一调度优先级的队列作为更新后的目标队列,返回步骤S2034。
这里,当已调度完所述目标调度FIFO内的数据而对应获得的当前已调度数据不满足所述传输带宽时,按照目标调度FIFO对应的队列的调度优先级依次选取下一调度优先级的队列作为目标队列而继续执行数据调度,确保高优先级数据优先获得调度。
如此,当调度完目标调度FIFO内的数据后,按照调度优先级从高到低的顺序对所述目标调度FIFO对应的队列中的数据进行调度,确保高优先级数据优先获得调度,有效降低了高优先级数据时延。
步骤S1033:检查获得的当前已调度数据是否满足所述传输带宽,若是,则执行步骤S1036,否则执行步骤S1034;
具体地,检查获得的当前已调度数据是否满足所述传输带宽,若所述当前已调度数据满足所述传输带宽,则执行步骤S1036;若所述当前已调度数据不满足所述传输带宽,则执行步骤S1034。
步骤S1034:检查是否对所述目标调度FIFO完成数据调度,若是,则执行步骤S1035,否则返回步骤S1032;
具体地,检查是否对所述目标调度FIFO完成数据调度,若对所述目标调度FIFO完成数据调度,则执行步骤S1034;若对所述目标调度FIFO未完成数据调度,则继续执行步骤S1032。
这里,可以通过检测当前从所述目标调度FIFO内调度出的数据的位置标识是否与设置的所述目标调度FIFO内数据终点的位置标识相同,来检查是否对所述目标调度FIFO完成数据调度,若当前从所述目标调度FIFO内调度出的数据的位置标识与设置的所述目标调度FIFO内数据终点的位置标识相同,说明对所述目标调度FIFO进行数据调度完成,否则说明对所述目标调度FIFO进行数据调度未完成。
步骤S1035:根据所述FIFO的调度优先级依次选取下一调度优先级的FIFO作为更新的目标调度FIFO,返回步骤S1032;
这里,当对调度优先级最高的FIFO完成数据调度而获得的当前已调度数据不满足所述传输带宽时,按照FIFO的调度优先级依次选取下一调度优先级的FIFO执行数据调度,从而确保高优先级数据优先获得调度,以降低高优先级数据时延。
步骤S1036:结束当前的数据调度。
这里,当获取的当前已调度数据满足所述传输带宽,则结束针对当前的带宽请求的数据调度。
步骤S104:发出所述调度数据。
具体地,当数据转发方向为用户终端至局端设备即为上行方向时,则用户终端向局端设备发送所述调度数据;当数据转发方向为局端设备至用户终端即为下行方向时,则局端设备向用户终端发送所述调度数据,结束带宽请求。
综上,本实施例提供的数据调度方法,通过设置多个FIFO以及根据所述多个FIFO与队列之间的映射关系确定所述FIFO的调度优先级,在数据调度时优先对调度优先级高的FIFO进行调度,即通过FIFO的调度优先级确保能够始终优先调度高优先级数据,从而有效地减小了高优先级数据时延。
在一可选的实施例中,步骤S104:发出所述调度数据之后,该方法还可以包括:
确定带宽请求结束后,从所述FIFO对应的队列中根据对应的所述队列的调度优先级从高到低的顺序读取数据至对应所述FIFO。
这里,由于根据所述FIFO与队列之间的映射关系以及所述FIFO的调度优先级执行数据调度后,将使得被调度的FIFO内的数据为空或者只剩余部分数据,即被调度的FIFO内的剩余数据小于被调度的FIFO的深度,因此,从所述FIFO对应的队列中根据对应的所述队列的调度优先级从高到低的顺序读取数据至所述FIFO,以确保所述FIFO内的数据等于所述FIFO的深度。例如,假设有Q1、Q2、Q3、Q4四个队列,且调度优先级从高到低依次为Q1、Q2、Q3、Q4,若有FIFO1、FIFO2两个FIFO,且队列Q1和Q2与FIFO1相映射,队列Q3和Q4与FIFO2相映射,若在数据调度完成后FIFO1内只剩余少量数据,则先将Q1中的数据读取至FIFO1中,当Q1中的数据被读取完后FIFO1内的数据仍然小于FIFO1的深度时,则再将Q2中的数据读取至FIFO1中,直至FIFO1内的数据等于FIFO1的深度。
如此,通过及时将被调度的FIFO对应的队列中的数据读取至被调度的FIFO内,从而在后续接收到带宽请求时能够快速进行数据调度。
下面通过具体示例对本发明实施例作进一步详细说明,如7所示,为本发明实施例提供的一种数据调度装置,包括:控制模块11和FIFO调度模块12;其中,控制模块11负责FIFO存储访问及FIFO到队列之间的映射关系的划分;FIFO调度模块12负责FIFO的调度。由于在网络数据转发设备中,队列调度、FIFO只能保证数据包在带宽内快速响应数据的发送,而并不能解决网络拥塞情况下,高优先级数据转发时延变大的问题。本发明实施例提供的数据调度装置通过控制模块11和FIFO调度模块12可以有效的降低在网络拥塞情况下高优先级数据报文转发时延。
所述控制模块11具有以下功能:1)在不改变原有设备FIFO设计思路的前提下,增加上行队列FIFO模式配置,包括通用模式和时延模式。其中,通用模式为配置多个队列共用一个FIFO,时延模式为配置多个FIFO,而一个队列或多个队列共享一个FIFO。2)在不增加片上同步动态随机存储器大小的情况下,增加FIFO总大小控制及队列与FIFO之间的映射关系。假设FIFO总深度为X,在有Q0、Q1、Q2、Q3、Q4、Q5、Q6、Q7共8个队列以及有FIFO0、FIFO1共两个FIFO的情况下,其中Q为Queue的简写,如图8所示,可以配置前4个队列即Q0~Q3共用FIFO0、后4个队列即Q4~Q7共用FIFO1,此时FIFO0、FIFO1的深度都为X/2。在有Q0、Q1、Q2、Q3、Q4、Q5、Q6、Q7共8个队列以及有FIFO0、FIFO1、FIFO2、FIFO3共四个FIFO的情况下,如图9所示,可以配置Q0~Q1共用FIFO0、Q2~Q3共用FIFO1、Q4~Q5共用FIFO2、Q6~Q7共用FIFO3,此时FIFO0、FIFO1、FIFO2、FIFO3的深度都为X/4。这样在队列要求不高的情况下,可以更充分的使用FIFO,节省资源。此外,最多可以配置8个队列各占用一个FIFO,每个队列占用FIFO大小为FIFO总大小/队列个数。例如,假设FIFO总深度为X,在有Q0、Q1、Q2、Q3、Q4、Q5、Q6、Q7共8个队列以及有FIFO0、FIFO1、FIFO2、FIFO3、FIFO4、FIFO5、FIFO6、FIFO7共八个FIFO的情况下,如图10所示,可以配置Q0用FIFO0、Q1用FIFO1、Q2用FIFO2、Q3用FIFO3、Q4用FIFO4、Q5用FIFO5、Q6用FIFO6、Q7用FIFO7,此时FIFO0、FIFO1、FIFO2、FIFO3、FIFO4、FIFO5、FIFO6、FIFO7的深度都为X/8。其中,FIFO调度器可以为所述FIFO调度模块12所包含的实现FIFO调度的一功能模块。
所述FIFO调度模块12包括队列调度子模块,该队列调度子模块也可称为队列调度器,负责队列数据调度,队列数据调度采用SP方式。所述FIFO调度模块12具有以下功能:1)具有一FIFO调度器,该FIFO调度器在时延模式下有效;2)接收带宽请求信号,根据传输带宽进行数据调度;3)增加FIFO到队列调度器之间的接口,当FIFO为空时,通过队列调度子模块读取相应队列数据到对应的FIFO。
基于上述数据调度装置,如11所示,为本发明实施例提供的一种数据调度方法,包括以下步骤:
S201:接收带宽请求;
具体地,FIFO调度模块12接收上行网络接口带宽请求。这里,所述带宽请求中携带有传输带宽。
S202:数据调度模式判断,若数据调度模式为时延模式,则执行步骤S203,若数据调度模式为通用模式,则执行步骤S210;
这里,当控制模块11确定数据调度模式为时延模式时,执行步骤S203;当控制模块11确定数据调度模式为通用模式时,执行步骤S210。
S203:读取FIFO映射关系;
具体地,当控制模块11确定数据调度模式为时延模式时,触发FIFO调度模块12从控制模块11中读取当前队列与FIFO之间的映射关系。
S204:根据FIFO映射关系执行FIFO调度;
这里,FIFO调度模块12根据队列与FIFO之间的映射关系判断当前有几个FIFO,根据队列的调度优先级和队列与FIFO之间的映射关系确定FIFO的调度优先级,然后根据FIFO的调度优先级从高到低的顺序执行FIFO调度。本实施例中,以FIFO0优先级最低,FIFOx优先级最高为例,x为当前FIFO个数减一。
S205:判断调度优先级最高的FIFO是否为空,若是,则执行步骤S206,否则执行步骤S204;
具体地,FIFO调度模块12首先对调度优先级最高的FIFO内的数据进行调度,获取已调度数据,当已调度数据不满足传输带宽时,判断调度优先级最高的FIFO内的数据是否已被调度完,若是,则执行步骤S206,否则执行步骤S204。
S206:对高优先级队列进行调度;
具体地,FIFO调度模块12通过队列调度子模块从调度优先级最高的FIFO对应的队列中具有最高调度优先级的队列中读取数据至调度优先级最高的FIFO内,并继续对调度优先级最高的FIFO内的数据进行调度。
S207:判断高优先级队列是否为空,若是,则执行步骤S208,否则执行步骤S209;
具体地,FIFO调度模块12确定已调度数据不满足传输带宽时,判断最高调度优先级的队列内的数据是否已被读取完,若是,则执行步骤S208,否则执行步骤S209;
S208:读取低优先级FIFO的数据;
具体地,FIFO调度模块12按照调度优先级最高的FIFO对应的队列的调度优先级依次选取下一调度优先级的队列,并通过队列调度子模块从该队列中读取数据至调度优先级最高的FIFO内,并继续对调度优先级最高的FIFO内的数据进行调度。
S209:继续读取高优先级队列的数据;
具体地,FIFO调度模块12继续通过队列调度子模块从调度优先级最高的FIFO对应的队列中具有最高调度优先级的队列中读取数据至调度优先级最高的FIFO内,并继续对调度优先级最高的FIFO内的数据进行调度。
S210:从FIFO中读取数据;
具体地,当FIFO调度模块12确定数据调度模式为通用模式时,从FIFO中读取数据。
S211:执行通用模式调度;
具体地,FIFO调度模块12执行通用模式调度。
S212:带宽请求结束;
具体地,当FIFO调度模块12确定已调度数据满足传输带宽时,结束数据调度,响应带宽请求结束。
S213:根据入向数据流填充FIFO和队列;
具体地,FIFO调度模块12通过队列调度子模块根据入向数据流填充FIFO和队列,以等待下一次带宽请求到来后执行数据调度。
下面根据在时延模式下队列(Queue)与FIFO之间的映射关系分别对上述步骤S204至步骤S209以及步骤S212至步骤S213进行阐述。
(一)、请再次参阅图8,当Queue0~Queue3映射到FIFO0,Queue4~Queue7映射到FIFO1时,FIFO调度模块12执行FIFO调度过程如下:
1)根据传输带宽及FIFO1的深度,从FIFO1中读取数据。当传输带宽大于FIFO1的深度时,例如传输带宽为10KByte,而FIFO1只有8KByte,则认为FIFO1中数据会被读取完,否则判定FIFO1中数据未被读取完,即在传输带宽小于FIFO1的深度时,此时在FIFO1中只读取满足传输带宽的Byte数。
2)当读取完FIFO1中的数据后,已读取的数据不满足传输带宽,则此时队列调度子模块继续读取Queue7~Queue4中的数据到FIFO1中。这里,队列调度子模块根据队列SP调度方式分别读取Queue7~Queue4中的数据。
3)通过队列调度子模块判断Queue7~Queue4中数据是否被全部调度出去。
4)如果Queue7~Queue4中还有缓存数据,则通过队列调度子模块根据队列SP调度方式继续读取Queue7~Queue4中的数据到FIFO1中,直到读够一个传输带宽的数据为止。
5)如果Queue7~Queue4中的数据被读取完,则读取FIFO0中的数据。
6)通过FIFO1及Queue7~Queue4、FIFO0及Queue3~Queue0中读取传输带宽的Byte数后,结束带宽请求,FIFO调度模块12结束FIFO的调度。
7)在带宽请求结束后,FIFO调度模块12通过队列调度子模块从各自映射的Queue中读取数据保存至相应的FIFO中,等待下个周期的带宽数据请求。
(二)、请再次参阅图9,当Queue0~Queue1映射到FIFO0,Queue2~Queue3映射到FIFO1,Queue4~Queue5映射到FIFO2,Queue6~Queue7映射到FIFO3时,FIFO调度模块12执行FIFO调度过程如下:
8)根据传输带宽及FIFO3的深度,从FIFO3中读取数据。当传输带宽大于FIFO3的深度时,例如传输带宽为10KByte,而FIFO3中只有4KByte,则认为FIFO3中的数据会被读取完,否则判定FIFO3中的数据未被读取完,即在传输带宽小于FIFO3深度时,此时在FIFO3中只读取满足传输带宽的Byte数。
9)当读取完FIFO3中的数据后,已读取的数据不满足传输带宽,则此时通过队列调度子模块继续读取Queue7~Queue6中的数据到FIFO3中。这里,队列调度子模块根据队列SP调度方式分别读取Queue7~Queue6中的数据。
10)通过队列调度子模块判断Queue7~Queue6中的数据是否全部被调度出去;
11)如果Queue7~Queue6中还有缓存数据,则通过队列调度子模块根据队列SP调度方式继续读取Queue7~Queue6中的数据到FIFO3中,直到读够一个传输带宽的数据为止。
12)如果Queue7~Queue6中的数据被读取完,则读取FIFO2中的数据;如果FIFO2中的数据被读取完,则读取Queue5~Queue4中的数据;如果Queue5~Queue4中的数据读取完,则读取FIFO1中的数据;如果FIFO1中的数据被读取完,则读取Queue3~Queue2中的数据;如果Queue3~Queue2中的数据被读取完,则读取FIFO0中的数据;如果FIFO0中的数据被读取完,则调度Queue1~Queue0中的数据。
13)通过FIFO3及Queue7~Queue6、FIFO2及Queue5~Queue4、FIFO1及Queue3~Queue2、FIFO0及Queue1~Queue0中读取满足传输带宽的Byte数后,结束带宽请求,FIFO调度模块12结束FIFO的调度。
14)在带宽请求结束后,FIFO调度模块12通过队列调度子模块从各自映射的Queue中读取数据保存至相应的FIFO中,等待下个周期的带宽数据请求。
(三)、请再次参阅图10,当Queue0映射到FIFO0,Queue1映射到FIFO1,Queue2映射到FIFO2,Queue3映射到FIFO3,Queue4映射到FIFO4,Queue5映射到FIFO5,Queue6映射到FIFO6,Queue7映射到FIFO7时,即每个Queue映射一个FIFO时,FIFO调度模块12执行FIFO调度过程如下:
15)根据传输带宽及FIFO7的深度,从FIFO7中读取数据;
这里,若传输带宽大于FIFO7的深度,则认为FIFO7中的数据会被读取完;若传输带宽小于FIFO7的深度,此时在FIFO7中只读取满足传输带宽的Byte数。例如,假设传输带宽为10KByte,而FIFO7中只有2KByte,则认为FIFO7中数据会被读取完。
16)当读取完FIFO7中的数据后,此时通过队列调度子模块读取Queue7中的数据到FIFO7中。
18)判断Queue7中的数据是否全部读取完,如果Queue7中还有缓存数据,则将Queue7中的数据读取到FIFO7中,直到读够一个传输带宽的数据为止;如果Queue7中的数据被读取完,则读取FIFO6中的数据,FIFO6中的数据读取完则读取Queue6中的数据,如此循环,直到读够一个传输带宽的数据为止。
19)通过每个FIFO及对应的Queue中读取传输带宽的Byte数后,结束带宽请求,FIFO调度模块12结束FIFO的调度。
20)在带宽请求结束后,FIFO调度模块12通过队列调度子模块从各自映射的Queue中读取数据保存至相应的FIFO中,等待下个周期的带宽数据请求。
另一方面,本发明实施例还提供了一种数据调度装置,如图12所示,包括:
接收模块20,用于接收带宽请求,所述带宽请求携带有传输带宽;
处理模块21,用于根据当前的至少两个FIFO与队列之间的映射关系确定所述FIFO的调度优先级;
数据调度模块22,用于根据所述FIFO与队列之间的映射关系以及所述FIFO的调度优先级执行数据调度,直至获得满足所述传输带宽的调度数据;
发送模块23,用于发出所述调度数据。
综上,本实施例提供的数据调度装置,通过设置多个FIFO以及根据所述多个FIFO与队列之间的映射关系确定所述FIFO的调度优先级,在数据调度时优先对调度优先级高的FIFO进行调度,即通过FIFO的调度优先级确保能够始终优先调度高优先级数据,从而有效地减小了高优先级数据时延。
在一可选的实施例中,
所述接收模块20,还用于接收携带有FIFO数量的配置指令;
所述处理模块21,还用于根据所述FIFO数量以及设置的队列数量确定所述FIFO与队列之间的映射关系。
如此,根据接收到的配置指令中所携带的FIFO数量,动态调整FIFO与队列之间的映射关系,以灵活对数据进行调度,进一步降低高优先级数据时延。
在一可选的实施例中,所述数据调度模块22,具体用于:
以调度优先级最高的FIFO作为初始的目标调度FIFO;
根据所述传输带宽对所述目标调度FIFO进行数据调度,获取当前已调度数据;
确定对所述目标调度FIFO进行数据调度完成后获得的当前已调度数据不满足所述传输带宽时,根据所述FIFO的调度优先级依次选取下一调度优先级的FIFO作为更新的目标调度FIFO,并返回所述根据所述传输带宽对所述目标调度FIFO进行数据调度,获取当前已调度数据的步骤。
如此,确保高优先级数据优先获得调度,以降低高优先级数据时延。
在一可选的实施例中,所述数据调度模块22,具体用于:
根据所述传输带宽对所述目标调度FIFO内的数据进行数据调度,确定对所述目标调度FIFO内的数据进行数据调度完成后获得的当前已调度数据不满足所述传输带宽时,以所述当前目标FIFO对应的队列中调度优先级最高的队列作为初始的目标队列;
从所述目标队列中读取数据至所述目标调度FIFO内,并根据所述传输带宽对所述目标调度FIFO内的数据进行数据调度,获得更新的当前已调度数据;
确定在对所述目标队列中的数据读取完后获得的当前已调度数据仍不满足所述传输带宽时,根据所述当前目标FIFO对应的队列的调度优先级依次选取下一调度优先级的队列作为更新后的目标队列,并返回所述从所述目标队列中读取数据至所述目标调度FIFO,并根据所述传输带宽对所述目标调度FIFO内的数据进行数据调度,获得更新的当前已调度数据的步骤。
如此,当调度完目标调度FIFO内的数据后,按照调度优先级从高到低的顺序对所述目标调度FIFO对应的队列中的数据进行调度,确保高优先级数据优先获得调度,有效降低了高优先级数据时延。
在一可选的实施例中,所述数据调度模块22,具体用于:
检测当前从所述目标调度FIFO内调度出的数据的位置标识是否与设置的所述目标调度FIFO内数据终点的位置标识相同;
若相同,则确定对所述目标调度FIFO进行数据调度完成。
在一可选的实施例中,所述数据调度模块22,还用于确定带宽请求结束后,从所述FIFO对应的队列中根据对应的所述队列的调度优先级从高到低的顺序读取数据至对应的所述FIFO。
如此,通过及时将被调度的FIFO对应的队列中的数据读取至被调度的FIFO内,从而在后续接收到带宽请求时能够快速进行数据调度。
在一可选的实施例中,所述处理模块21,具体用于:
确定数据调度模式为时延模式时,根据当前的至少两个FIFO与队列之间的映射关系确定所述FIFO的调度优先级。
如此,可以根据需求自主设置数据调度模式,灵活进行数据调度。
本发明实施例提供了一种网络设备,如图13所示,该网络设备包括:至少一个处理器310和用于存储能够在处理器310上运行的计算机程序的存储器311;其中,图13中示意的处理器310并非用于指代处理器310的个数为一个,而是仅用于指代处理器310相对其他器件的位置关系,在实际应用中,处理器310的个数可以为一个或多个;同样,图13中示意的存储器311也是同样的含义,即仅用于指代存储器311相对其他器件的位置关系,在实际应用中,存储器311的个数可以为一个或多个。
其中,所述处理器310用于运行所述计算机程序时,执行如下步骤:
接收带宽请求,所述带宽请求携带有传输带宽;
根据当前的至少两个FIFO与队列之间的映射关系确定所述FIFO的调度优先级;
根据所述FIFO与队列之间的映射关系以及所述FIFO的调度优先级执行数据调度,直至获得满足所述传输带宽的调度数据;
发出所述调度数据。
在一可选的实施例中,所述处理器310还用于运行所述计算机程序时,执行如下步骤:
接收携带有FIFO数量的配置指令;
根据所述FIFO数量以及设置的队列数量确定所述FIFO与队列之间的映射关系。
在一可选的实施例中,所述处理器310还用于运行所述计算机程序时,执行如下步骤:
以调度优先级最高的FIFO作为初始的目标调度FIFO;
根据所述传输带宽对所述目标调度FIFO进行数据调度,获取当前已调度数据;
确定对所述目标调度FIFO进行数据调度完成后获得的当前已调度数据不满足所述传输带宽时,根据所述FIFO的调度优先级依次选取下一调度优先级的FIFO作为更新的目标调度FIFO,并返回所述根据所述传输带宽对所述目标调度FIFO进行数据调度,获取当前已调度数据的步骤。
在一可选的实施例中,所述处理器310还用于运行所述计算机程序时,执行如下步骤:
根据所述传输带宽对所述目标调度FIFO内的数据进行数据调度,确定对所述目标调度FIFO内的数据进行数据调度完成后获得的当前已调度数据不满足所述传输带宽时,以所述当前目标FIFO对应的队列中调度优先级最高的队列作为初始的目标队列;
从所述目标队列中读取数据至所述目标调度FIFO内,并根据所述传输带宽对所述目标调度FIFO内的数据进行数据调度,获得更新的当前已调度数据;
确定在对所述目标队列中的数据读取完后获得的当前已调度数据仍不满足所述传输带宽时,根据所述当前目标FIFO对应的队列的调度优先级依次选取下一调度优先级的队列作为更新后的目标队列,并返回所述从所述目标队列中读取数据至所述目标调度FIFO,并根据所述传输带宽对所述目标调度FIFO内的数据进行数据调度,获得更新的当前已调度数据的步骤。
在一可选的实施例中,所述处理器310还用于运行所述计算机程序时,执行如下步骤:
检测当前从所述目标调度FIFO内调度出的数据的位置标识是否与设置的所述目标调度FIFO内数据终点的位置标识相同;
若相同,则确定对所述目标调度FIFO进行数据调度完成。
在一可选的实施例中,所述处理器310还用于运行所述计算机程序时,执行如下步骤:
确定带宽请求结束后,从所述FIFO对应的队列中根据对应的所述队列的调度优先级从高到低的顺序读取数据至对应的所述FIFO。
在一可选的实施例中,所述处理器310还用于运行所述计算机程序时,执行如下步骤:
确定数据调度模式为时延模式时,根据当前的至少两个FIFO与队列之间的映射关系确定所述FIFO的调度优先级。
该网络设备还包括:至少一个网络接口312。该终端中的各个组件通过总线系统313耦合在一起。可理解,总线系统313用于实现这些组件之间的连接通信。总线系统313除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图13中将各种总线都标为总线系统313。
其中,存储器311可以是易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(ROM,Read Only Memory)、可编程只读存储器(PROM,Programmable Read-Only Memory)、可擦除可编程只读存储器(EPROM,Erasable Programmable Read-Only Memory)、电可擦除可编程只读存储器(EEPROM,Electrically Erasable Programmable Read-Only Memory)、磁性随机存取存储器(FRAM,ferromagnetic random access memory)、快闪存储器(Flash Memory)、磁表面存储器、光盘、或只读光盘(CD-ROM,Compact Disc Read-Only Memory);磁表面存储器可以是磁盘存储器或磁带存储器。易失性存储器可以是随机存取存储器(RAM,Random AccessMemory),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(SRAM,Static Random Access Memory)、同步静态随机存取存储器(SSRAM,Synchronous Static Random Access Memory)、动态随机存取存储器(DRAM,Dynamic Random Access Memory)、同步动态随机存取存储器(SDRAM,SynchronousDynamic Random Access Memory)、双倍数据速率同步动态随机存取存储器(DDRSDRAM,Double Data Rate Synchronous Dynamic Random Access Memory)、增强型同步动态随机存取存储器(ESDRAM,Enhanced Synchronous Dynamic Random Access Memory)、同步连接动态随机存取存储器(SLDRAM,SyncLink Dynamic Random Access Memory)、直接内存总线随机存取存储器(DRRAM,Direct Rambus Random Access Memory)。本发明实施例描述的存储器311旨在包括但不限于这些和任意其它适合类型的存储器。
本发明实施例中的存储器311用于存储各种类型的数据以支持网络设备的操作。这些数据的示例包括:用于在网络设备上操作的任何计算机程序,如操作系统和应用程序;联系人数据;电话簿数据;消息;图片;视频等。其中,操作系统包含各种系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务。应用程序可以包含各种应用程序,例如媒体播放器(Media Player)、浏览器(Browser)等,用于实现各种应用业务。这里,实现本发明实施例方法的程序可以包含在应用程序中。
本实施例还提供了一种计算机存储介质,例如包括存储有计算机程序的存储器311,上述计算机程序可由网络设备中的处理器310执行,以完成前述方法所述步骤。计算机存储介质可以是FRAM、ROM、PROM、EPROM、EEPROM、Flash Memory、磁表面存储器、光盘、或CD-ROM等存储器;也可以是包括上述存储器之一或任意组合的各种设备,如移动电话、计算机、平板设备、个人数字助理等。
一种计算机存储介质,所述计算机存储介质中存储有计算机程序,所述计算机程被处理器运行时,执行如下步骤:
接收带宽请求,所述带宽请求携带有传输带宽;
根据当前的至少两个FIFO与队列之间的映射关系确定所述FIFO的调度优先级;
根据所述FIFO与队列之间的映射关系以及所述FIFO的调度优先级执行数据调度,直至获得满足所述传输带宽的调度数据;
发出所述调度数据。
在一可选的实施例中,所述计算机程序被处理器运行时,还执行如下步骤:
接收携带有FIFO数量的配置指令;
根据所述FIFO数量以及设置的队列数量确定所述FIFO与队列之间的映射关系。
在一可选的实施例中,所述计算机程序被处理器运行时,还执行如下步骤:
以调度优先级最高的FIFO作为初始的目标调度FIFO;
根据所述传输带宽对所述目标调度FIFO进行数据调度,获取当前已调度数据;
确定对所述目标调度FIFO进行数据调度完成后获得的当前已调度数据不满足所述传输带宽时,根据所述FIFO的调度优先级依次选取下一调度优先级的FIFO作为更新的目标调度FIFO,并返回所述根据所述传输带宽对所述目标调度FIFO进行数据调度,获取当前已调度数据的步骤。
在一可选的实施例中,所述计算机程序被处理器运行时,还执行如下步骤:
根据所述传输带宽对所述目标调度FIFO内的数据进行数据调度,确定对所述目标调度FIFO内的数据进行数据调度完成后获得的当前已调度数据不满足所述传输带宽时,以所述当前目标FIFO对应的队列中调度优先级最高的队列作为初始的目标队列;
从所述目标队列中读取数据至所述目标调度FIFO内,并根据所述传输带宽对所述目标调度FIFO内的数据进行数据调度,获得更新的当前已调度数据;
确定在对所述目标队列中的数据读取完后获得的当前已调度数据仍不满足所述传输带宽时,根据所述当前目标FIFO对应的队列的调度优先级依次选取下一调度优先级的队列作为更新后的目标队列,并返回所述从所述目标队列中读取数据至所述目标调度FIFO,并根据所述传输带宽对所述目标调度FIFO内的数据进行数据调度,获得更新的当前已调度数据的步骤。
在一可选的实施例中,所述计算机程序被处理器运行时,还执行如下步骤:
检测当前从所述目标调度FIFO内调度出的数据的位置标识是否与设置的所述目标调度FIFO内数据终点的位置标识相同;
若相同,则确定对所述目标调度FIFO进行数据调度完成。
在一可选的实施例中,所述计算机程序被处理器运行时,还执行如下步骤:
确定带宽请求结束后,从所述FIFO对应的队列中根据对应的所述队列的调度优先级从高到低的顺序读取数据至对应的所述FIFO。
在一可选的实施例中,所述计算机程序被处理器运行时,还执行如下步骤:
确定数据调度模式为时延模式时,根据当前的至少两个FIFO与队列之间的映射关系确定所述FIFO的调度优先级。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。本发明的保护范围应以所述权利要求的保护范围以准。

Claims (10)

1.一种数据调度方法,其特征在于,所述方法包括:
接收带宽请求,所述带宽请求携带有传输带宽;
根据当前的至少两个FIFO与队列之间的映射关系确定所述FIFO的调度优先级;
根据所述FIFO与队列之间的映射关系以及所述FIFO的调度优先级执行数据调度,直至获得满足所述传输带宽的调度数据;
发出所述调度数据。
2.根据权利要求1所述的方法,其特征在于,所述根据当前的至少两个FIFO与队列之间的映射关系确定所述FIFO的调度优先级之前,还包括:
接收携带有FIFO数量的配置指令;
根据所述FIFO数量以及设置的队列数量确定所述FIFO与队列之间的映射关系。
3.根据权利要求1所述的方法,其特征在于,所述根据所述FIFO与队列之间的映射关系以及所述FIFO的调度优先级执行数据调度,直至获得满足所述传输带宽的调度数据,包括:
以调度优先级最高的FIFO作为初始的目标调度FIFO;
根据所述传输带宽对所述目标调度FIFO进行数据调度,获取当前已调度数据;
确定对所述目标调度FIFO进行数据调度完成后获得的当前已调度数据不满足所述传输带宽时,根据所述FIFO的调度优先级依次选取下一调度优先级的FIFO作为更新的目标调度FIFO,并返回所述根据所述传输带宽对所述目标调度FIFO进行数据调度,获取当前已调度数据的步骤。
4.根据权利要求3所述的方法,其特征在于,所述根据所述传输带宽对所述当前目标FIFO进行数据调度,获取当前已调度数据,包括:
根据所述传输带宽对所述目标调度FIFO内的数据进行数据调度,确定对所述目标调度FIFO内的数据进行数据调度完成后获得的当前已调度数据不满足所述传输带宽时,以所述当前目标FIFO对应的队列中调度优先级最高的队列作为初始的目标队列;
从所述目标队列中读取数据至所述目标调度FIFO内,并根据所述传输带宽对所述目标调度FIFO内的数据进行数据调度,获得更新的当前已调度数据;
确定在对所述目标队列中的数据读取完后获得的当前已调度数据仍不满足所述传输带宽时,根据所述当前目标FIFO对应的队列的调度优先级依次选取下一调度优先级的队列作为更新后的目标队列,并返回所述从所述目标队列中读取数据至所述目标调度FIFO,并根据所述传输带宽对所述目标调度FIFO内的数据进行数据调度,获得更新的当前已调度数据的步骤。
5.根据权利要求3所述的方法,其特征在于,所述确定对所述目标调度FIFO进行数据调度完成,包括:
检测当前从所述目标调度FIFO内调度出的数据的位置标识是否与设置的所述目标调度FIFO内数据终点的位置标识相同;
若相同,则确定对所述目标调度FIFO进行数据调度完成。
6.根据权利要求1所述的方法,其特征在于,所述发出所述调度数据之后,还包括:
确定带宽请求结束后,从所述FIFO对应的队列中根据对应的所述队列的调度优先级从高到低的顺序读取数据至对应的所述FIFO。
7.根据权利要求1所述的方法,其特征在于,所述根据当前的至少两个FIFO与队列之间的映射关系确定所述FIFO的调度优先级,包括:
确定数据调度模式为时延模式时,根据当前的至少两个FIFO与队列之间的映射关系确定所述FIFO的调度优先级。
8.一种数据调度装置,其特征在于,包括:
接收模块,用于接收带宽请求,所述带宽请求携带有传输带宽;
处理模块,用于根据当前的至少两个FIFO与队列之间的映射关系确定所述FIFO的调度优先级;
数据调度模块,用于根据所述FIFO与队列之间的映射关系以及所述FIFO的调度优先级执行数据调度,直至获得满足所述传输带宽的调度数据;
发送模块,用于发出所述调度数据。
9.一种网络设备,其特征在于,所述网络设备包括处理器和用于存储能够在处理器上运行的计算机程序的存储器;其中,
所述处理器用于运行所述计算机程序时,执行权利要求1至7中任一项所述数据调度方法的步骤。
10.一种计算机存储介质,其特征在于,所述计算机存储介质中存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述数据调度方法的步骤。
CN201810905206.7A 2018-08-09 2018-08-09 一种数据调度方法、装置、网络设备及计算机存储介质 Active CN110830388B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810905206.7A CN110830388B (zh) 2018-08-09 2018-08-09 一种数据调度方法、装置、网络设备及计算机存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810905206.7A CN110830388B (zh) 2018-08-09 2018-08-09 一种数据调度方法、装置、网络设备及计算机存储介质

Publications (2)

Publication Number Publication Date
CN110830388A true CN110830388A (zh) 2020-02-21
CN110830388B CN110830388B (zh) 2023-05-30

Family

ID=69541029

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810905206.7A Active CN110830388B (zh) 2018-08-09 2018-08-09 一种数据调度方法、装置、网络设备及计算机存储介质

Country Status (1)

Country Link
CN (1) CN110830388B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111669339A (zh) * 2020-05-25 2020-09-15 武汉大学 智慧能源站站控层业务优先级划分及pdwrr队列调度方法
CN111865838A (zh) * 2020-07-21 2020-10-30 深圳市风云实业有限公司 一种信号的多通道数据传输系统
CN113259267A (zh) * 2021-06-28 2021-08-13 江苏省质量和标准化研究院 一种社会信用代码的关联信息传送系统与方法
CN114900476A (zh) * 2022-05-09 2022-08-12 中国联合网络通信集团有限公司 一种数据传输方法、装置、网络设备及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101754057A (zh) * 2009-12-11 2010-06-23 杭州钦钺科技有限公司 一种应用于epon终端系统基于绝对优先级的数据调度方法
CN101964758A (zh) * 2010-11-05 2011-02-02 南京邮电大学 一种基于区分服务的队列调度方法
CN104079501A (zh) * 2014-06-05 2014-10-01 深圳市邦彦信息技术有限公司 一种基于多优先级的队列调度方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101754057A (zh) * 2009-12-11 2010-06-23 杭州钦钺科技有限公司 一种应用于epon终端系统基于绝对优先级的数据调度方法
CN101964758A (zh) * 2010-11-05 2011-02-02 南京邮电大学 一种基于区分服务的队列调度方法
CN104079501A (zh) * 2014-06-05 2014-10-01 深圳市邦彦信息技术有限公司 一种基于多优先级的队列调度方法

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111669339A (zh) * 2020-05-25 2020-09-15 武汉大学 智慧能源站站控层业务优先级划分及pdwrr队列调度方法
CN111669339B (zh) * 2020-05-25 2022-02-15 武汉大学 智慧能源站站控层业务优先级划分及pdwrr队列调度方法
CN111865838A (zh) * 2020-07-21 2020-10-30 深圳市风云实业有限公司 一种信号的多通道数据传输系统
CN113259267A (zh) * 2021-06-28 2021-08-13 江苏省质量和标准化研究院 一种社会信用代码的关联信息传送系统与方法
CN113259267B (zh) * 2021-06-28 2021-11-12 江苏省质量和标准化研究院 一种社会信用代码的关联信息传送系统与方法
CN114900476A (zh) * 2022-05-09 2022-08-12 中国联合网络通信集团有限公司 一种数据传输方法、装置、网络设备及存储介质

Also Published As

Publication number Publication date
CN110830388B (zh) 2023-05-30

Similar Documents

Publication Publication Date Title
CN110830388B (zh) 一种数据调度方法、装置、网络设备及计算机存储介质
US20050047425A1 (en) Hierarchical scheduling for communications systems
CA2575869C (en) Hierarchal scheduler with multiple scheduling lanes
EP0617361B1 (en) Scheduling method and apparatus for a communication network
JP3715098B2 (ja) 通信ネットワークにおけるパケットの配送装置とその方法
US7626993B2 (en) Transmission device and method, recording medium, program, and control device
US20070070895A1 (en) Scaleable channel scheduler system and method
US5619502A (en) Static and dynamic scheduling in an asynchronous transfer mode communication network
EP0688485A1 (en) Scheduling and admission control policy for a continuous media server
Ramakrishnan et al. Operating system support for a video-on-demand file service
WO2020134425A1 (zh) 一种数据处理方法、装置、设备及存储介质
US7209489B1 (en) Arrangement in a channel adapter for servicing work notifications based on link layer virtual lane processing
CA2697994C (en) Method and apparatus for data processing using queuing
US7477636B2 (en) Processor with scheduler architecture supporting multiple distinct scheduling algorithms
CN101465794B (zh) 一种分组调度方法和设备
US7474662B2 (en) Systems and methods for rate-limited weighted best effort scheduling
US6973036B2 (en) QoS scheduler and method for implementing peak service distance using next peak service time violated indication
WO2022174444A1 (zh) 一种数据流传输方法、装置及网络设备
CN114401235B (zh) 一种队列管理中重载处理方法、系统、介质、设备及应用
CN115766582A (zh) 流量控制方法、装置和系统、介质和计算机设备
EP1684475A1 (en) Weighted Fair Queuing (WFQ) method and system for jitter control
US7583678B1 (en) Methods and apparatus for scheduling entities using a primary scheduling mechanism such as calendar scheduling filled in with entities from a secondary scheduling mechanism
CN117579577B (zh) 基于时间敏感网络的数据帧转发方法、装置及计算机设备
GB2283152A (en) Audio transmission over a computer network
CN117749726A (zh) Tsn交换机输出端口优先级队列混合调度方法和装置

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
TR01 Transfer of patent right

Effective date of registration: 20230927

Address after: No.189, Ningdan Road, Yuhuatai District, Nanjing City, Jiangsu Province, 210012

Patentee after: Nanjing Zhongxing New Software Co.,Ltd.

Address before: 518057 Ministry of justice, Zhongxing building, South Science and technology road, Nanshan District hi tech Industrial Park, Shenzhen, Guangdong

Patentee before: ZTE Corp.

TR01 Transfer of patent right