CN105409170A - 自一个调度输出队列出列多个封包及/或使用过调度来调度输出队列的封包输出控制器以及相关方法 - Google Patents
自一个调度输出队列出列多个封包及/或使用过调度来调度输出队列的封包输出控制器以及相关方法 Download PDFInfo
- Publication number
- CN105409170A CN105409170A CN201480004897.3A CN201480004897A CN105409170A CN 105409170 A CN105409170 A CN 105409170A CN 201480004897 A CN201480004897 A CN 201480004897A CN 105409170 A CN105409170 A CN 105409170A
- Authority
- CN
- China
- Prior art keywords
- package
- scheduling
- output
- queue
- output queue
- 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.)
- Pending
Links
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/50—Queue scheduling
- H04L47/56—Queue scheduling implementing delay-aware scheduling
-
- 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
- H04L47/6235—Variable service order
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
一种封包输出控制器,包含调度器及出列设备。调度器执行单一调度操作以调度输出队列,其中输出队列自与输出端口相关联的多个输出队列中选出。出列设备自由单一调度操作所决定的调度输出队列出列多个封包。另一种封包输出控制器,包含调度器及出列设备。调度器执行多个调度操作,其中每一调度操作调度自与输出端口相关联的多个输出队列中选出的输出队列。调度器执行当前调度操作,而不管由先前调度操作决定的调度输出队列的封包传输的状态。出列设备在由先前调度操作决定的调度输出队列的封包传输完成之后,自由当前调度操作决定的调度输出队列出列至少一封包。
Description
【相关申请的交叉引用】
本申请要求申请日为2013年4月26日,美国临时申请号为61/816,251,以及申请日为2014年4月17日,美国申请号为14/254,893的美国申请案的优先权,上述申请案的内容一并并入本申请。
【技术领域】
本发明的实施例有关于转发封包,更具体来说,有关于自一个调度输出队列出列多个封包及/或使用过调度(over-scheduling)来调度输出队列的封包输出控制器以及相关方法。
【背景技术】
网络交换机(networkswitch)是链接不同电子设备的计算机网络设备。举例来说,网络交换机接收与其连接的源电子设备所产生的输入封包,并将从已接收的封包导出的输出封包传输至一个或多个目的电子设备,其中所述已接收的封包原本是由一个或多个目的电子设备接收。一般来说,网络交换机具有封包缓冲器用于缓冲自输入端口(ingressport)接收的封包的封包数据,以及将储存在封包缓冲器的封包通过输出端口(egressport)转发。
关于待通过相同输出端口转发的入口封包(ingresspacket),入口封包来自连接不同输入端口的源电子设备。从而,网络交换器可创建用于多个入口封包的多个输出队列,其中多个入口封包分别自不同输入端口接收。举例来说,对应于相同输出端口的多个输出队列的每一个可简单的通过储存封包的封包标示(identifier,简写为ID)来创建,以记录封包链接表(packetlinkedlist),其中封包链接表用于指示实际储存在封包缓冲器中的封包的输出顺序。由于存在多个输出队列,需要调度器来执行多个调度操作,每一个调度操作用于做出一个输出队列决定,以指示哪一个输出队列被授权输出一个封包到输出端口。
通常,单一调度操作所需的处理时间应当短于最小封包传输时间(例如,64字节封包的传输时间)以获取所需线速率(linerate)。当线速率变得更高时,最小封包传输时间相应变得更短。举例来说,当网络交换器用于10千兆以太网(GigabitEthernet,简写为10GbE)环境时,最小封包传输时间可为67.2ns(纳秒);当网络交换器用于40千兆以太网(40GbE)环境时,最小封包传输时间可为16.8ns(纳秒);当网络交换器用于100千兆以太网(100GbE)环境时,最小封包传输时间可为6.72ns(纳秒)。若自通过一个输出队列决定选择的输出队列中出列的一个封包的封包传输已经完成,而且调度器未能及时作出另一输出队列决定,输出端口的线速率可由于没有封包传输而降低。从而,关于高速网络应用,如何设计满足严格的调度时间限制(timingconstraint)的网络交换器对业内设计者来说是一个挑战。
【发明内容】
依据本发明的范例性实施例,自一个调度输出队列出列多个封包及/或使用过调度来调度输出队列的封包输出控制器以及相关方法被提出来解决上述问题。
依据本发明的第一个方面,一种范例的封包输出控制器被揭露。范例的封包输出控制器包含调度器及出列设备。调度器执行单一调度操作以调度输出队列,其中输出队列自与输出端口相关联的多个输出队列中选出。出列设备自由单一调度操作所决定的调度输出队列出列多个封包。
依据本发明的第二个方面,另一种范例的封包输出控制器被揭露。范例的封包输出控制器包含调度器及出列设备。调度器执行多个调度操作,其中每一调度操作调度自与输出端口相关联的多个输出队列中选出的输出队列,其中调度器执行当前调度操作,而不管由先前调度操作决定的调度输出队列的封包传输的最终状态。出列设备在由先前调度操作决定的调度输出队列的封包传输完成之后,自由当前调度操作决定的调度输出队列出列至少一封包。
依据本发明的第三个方面,一种范例的封包输出方法被揭露。范例的封包输出方法包含执行单一调度操作以调度输出队列,其中输出队列自与输出端口相关联的多个输出队列中选出;以及自由单一调度操作所决定的该调度输出队列出列多个封包。
依据本发明的第四个方面,另一种范例的封包输出方法被揭露。范例的封包输出方法包含执行多个调度操作,其中每一调度操作调度自与输出端口相关联的多个输出队列中选出的输出队列,其中不管由先前调度操作决定的调度输出队列的封包传输的最终状态,当前调度操作被执行;以及在由先前调度操作决定的调度输出队列的封包传输完成之后,自由当前调度操作决定的调度输出队列出列至少一封包。
本领域技术人员在读完下述利用不同附图展示的较佳实施例的详细描述之后,将了解本发明的上述及其他目的。
【附图说明】
图1是依据本发明第一实施例的网络交换器的示意图。
图2为依据本发明一个实施例的释放调度时间限制的第一解决方案的时序图。
图3为依据本发明一个实施例的封包输出方法的流程示意图。
图4是依据本发明第二实施例的网络交换器的示意图。
图5为依据本发明一个实施例的释放调度时间限制的第二解决方案的时序图。
图6为依据本发明第三实施例的网络交换器的示意图。
图7为依据本发明另一实施例的封包输出方法的流程示意图。
图8为依据本发明第四实施例的网络交换机的示意图。
【具体实施方式】
在说明书及权利要求书当中使用了某些词汇来指称特定的组件。所属领域中的技术人员应可理解,制造商可能会用不同的名词来称呼同样的组件。本说明书及权利要求书并不以名称的差异来作为区分组件的方式,而是以组件在功能上的差异来作为区分的基准。在通篇说明书及权利要求书当中所提及的「包含」是开放式的用语,故应解释成「包含但不限定于」。另外,「耦接」一词在此包含任何直接及间接的电气连接手段。因此,若文中描述第一装置耦接于第二装置,则代表第一装置可直接电气连接于第二装置,或透过其它装置或连接手段间接地电气连接至第二装置。
本发明的构思是通过自由单一调度操作调度的一个输出队列出列多个封包及/或使用过调度来加速输出队列决策(decision-making)来释放调度时间限制。以这种方式,在多数情况下,封包泡沫(packetbubble)(亦即,空闲输出端口)概率可被降低,以维持所需线速率。下面将结合附图来详细说明本发明的调度/出列设计。
图1是依据本发明第一实施例的网络交换器的示意图。网络交换器100包含缓冲存储设备102、出列(dequeue)设备104和调度器106。缓冲存储设备102包含封包缓冲器112和队列管理器114。举例来说,封包缓冲器112可利用动态随机存取存储器(dynamicrandomaccessmemory,简写为DRAM)来实施,而队列管理器114可包含静态随机存取存储器(staticrandomaccessmemory,简写为SRAM)以储存多个封包链接列表,其中所述多个封包链接列表分别作为多个输出队列115_1-115_N。当封包自网络交换器100的多个输入端口之一被接收时,封包被缓冲于封包缓冲器112中,并被排入输出队列115_1-115_N之一。举例来说,自输入端口I(未描绘于图中)接收并被要求通过输出端口J(未描绘于图中)转发的封包被排入至相同输出队列OQI,J。为简洁起见,图1中仅展示了一个输出端口。因此,自输入端口(例如,端口1-端口N)之一接收并被决定通过上述输出端口转发的封包由具有多个查找表的封包处理器(未描绘于图中)依据封包属性处理。从而,封包被排入由队列管理器114维持的输出队列115_1-115_N之一。调度器106通过各优先级配置适当调度输出队列115_1-115_N,优先级配置例如待通过相同输出端口转发的多个封包的速率限制。然而,以上仅用作说明之用,并非为本发明的限制。
为释放输出队列115_1-115_N的存储器需求,链接列表结构被采用来作为一个输出队列。举例来说,输出队列115_1-115_N中的每一个是一个封包链接列表,其中封包链接列表由自相同输入端口接收且待被自输出端口转发的多个封包的封包ID组成。因此,当特定封包自一个输出队列出列时,储存该特定封包的封包ID的节点自封包链接列表被移除,且该特定封包自封包缓冲器112被读取并被输出至下一级(例如,出列设备104),以通过输出端口进行封包转发。
由于待通过输出端口转发的封包可来自任一输入端口,调度器106执行一个调度操作以作出输出队列决定,用于决定输出队列115_1-115_N中的哪一个被授权输出其封包数据。亦即,调度器106了解输出队列115_1-115_N的队列状态,其中一个输出队列的队列状态可指示输出队列是否具有待被服务的封包;此外,调度器106适当调度具有等待通过相同输出端口被转发的输出队列115_1-115_N。在调度器106作出一个输出队列决定以授权一个输出队列之后,调度器106不作出下一输出队列决定,直到收到指示调度输出队列的封包传输的最终状态的确认消息(acknowledgmentmessage)ACK。举例来说,确认消息ACK可为指示在由封包传输出列后调度输出队列是否将成为空队列的EmptyQ_ACK。从而,由调度器106执行的一个调度操作包含至少等待对应于当前优胜输出队列的封包传输的确认消息ACK的操作以及自多个输出队列选出下一优胜输出队列的操作。换句话说,由调度器106执行的一个调度操作所需的处理时间包含至少等待时间以及决策时间。因此,在收到先前出列操作的确认消息ACK之后,调度决策操作被触发,且不晚于封包传输结束完成。为释放调度时间限制,本发明提出基于调度器106的操作特性对于一个调度输出队列出列多个封包。举例来说,调度器106的操作特性可包含由调度器106作出的两个连续输出队列决定之间的最小时间间隔。
请参考图2,其为依据本发明一个实施例的释放调度时间限制的第一解决方案的时序图。假设调度器106执行的每一调度操作需要等于A字节封包传输时间(亦即,具有A字节大小的封包数据的传输时间)的处理时间,其中一个单一调度操作的处理时间包含至少上述等待时间及决策时间。亦即,依据调度器106的操作特性,调度器106作出的两个连续输出队列决定之间的最小时间间隔等于具有大小为A字节的封包数据的传输时间。在时间T0,调度器106结束一个调度操作SCH0以输出一个输出队列决定D0=OQ0,并开始下一调度操作SCH1(其等待关联调度输出队列OQ0的封包传输的确认消息ACK并随后作出输出队列决定)。在被由输出队列决定D0=OQ0决定的调度输出队列的队列标示QID通知之后,出列设备104对由输出队列决定D0=OQ0指定的调度输出队列OQ0执行封包出列操作。
在本实施例中,出列设备104被允许出列一个调度输出队列的多个封包。然而,如果待自调度输出队列出列的单一封包的封包长度不小于阈值(例如,A),由于该长封包的传输时间足够覆盖用于作出下一输出队列决定的一个调度操作所需的处理时间,出列设备104可仅自调度输出队列出列一个封包。换句话说,在当前出列封包的封包传输结束时,下一输出队列决定将是可用的,从而在本情况下将不会发生封包泡沫(空闲输出端口)。如图2所示,由于待自调度输出队列OQ0出列的封包PKTm的封包长度不小于阈值A,出列设备14仅自调度输出队列OQ0出列封包PKTm。
由于封包PKTm的传输时间长于阈值A(亦即由调度器106作出的两个连续输出队列决定之间的最小时间间隔),在获取输出队列决定D1=OQ1之后,调度操作SCH1将等待当前出列封包PKTm的封包传输结束。在时间T1,出列封包PKTm的封包传输完成,调度器106被触发以输出输出队列决定D1=OQ1并开始下一调度操作SCH2(其将等待关联调度输出队列OQ1的封包传输的确认消息ACK并随后作出输出队列决定)。在被由输出队列决定D1=OQ1决定的调度输出队列的队列标示QID通知之后,出列设备104对由输出队列决定D1=OQ1指定的调度输出队列OQ1执行封包出列操作。
在本实施例中,由于待自调度输出队列OQ1出列的单一封包PKTn的封包长度小于阈值A,该短封包PKTn的传输时间不足够覆盖用于作出下一输出队列决定的一个调度操作所需的处理时间。从而,出列设备104可自调度输出队列OQ1出列多于一个封包,从而允许调度器106在不晚于多于一个封包的封包传输结束时获取输出队列决定D2。在本实施例中,待被自调度输出队列OQ1顺序出列的两个封包PKTn和PKTn+1的总封包长度不小于阈值A。因此,在封包PKTn和PKTn+1的封包传输结束时,下一输出队列决定D2将是可用的,从而在该情况下不会发生封包泡沫(空闲输出端口)。如图2所示,出列设备106将自调度输出队列OQ1出列多个封包,包含PKTn和PKTn+1。
由于封包PKTn和PKTn+1的传输时间长于阈值A(亦即由调度器106作出的两个连续输出队列决定之间的最小时间间隔),在获取输出队列决定D2=OQ2之后,调度操作SCH2将等待出列封包PKTn和PKTn+1的封包传输结束。在时间T2,出列封包PKTn和PKTn+1的封包传输完成,调度器106被触发以输出输出队列决定D2=OQ2。在被由输出队列决定D2=OQ2决定的调度输出队列的队列标示QID通知之后,出列设备104对由输出队列决定D2=OQ2指定的调度输出队列OQ2执行封包出列操作。
在本实施例中,当被授权输出其封包数据时,输出队列OQ2仅具有三个封包PKTk-2、PKTk-1、PKTk,其中待自调度输出队列OQ2出列的单一封包PKTk-2的封包长度小于阈值A,待自调度输出队列OQ2顺序出列的多个封包PKTk-2及PKTk-1的总封包长度不小于阈值A,且调度输出队列OQ2中的所有封包PKTk-2、PKTk-1、PKTk的总封包长度小于另一阈值2A。若出列设备104仅自调度输出队列OQ2出列多个封包PKTk-2及PKTk-1,单一短封包PKTk被留在输出队列OQ2中。当输出队列OQ2被再次决定为优胜输出队列时,可能发生封包泡沫(空闲输出端口)。为避免该现象的发生,出列设备104出列调度输出队列OQ2中的所有封包PKTk-2、PKTk-1、PKTk,从而阻止单一短封包PKTk被留在调度输出队列OQ2中。具体来说,出列设备104可比较调度输出队列中的所有封包的总封包长度与阈值(例如,2A),并参考比较结果来决定待自调度输出队列中出列的多个封包。
由于待自调度输出队列OQ2顺序出列的所有封包PKTk-2、PKTk-1、PKTk的总封包长度不小于阈值A,这些封包PKTk-2、PKTk-1、PKTk的传输时间足够覆盖用于作出下一输出队列决定的一个调度操作所需的处理时间。从而,在所有封包PKTk-2、PKTk-1、PKTk的封包传输之前,下一输出队列决定将是可用的,以在这种情况下避免封包泡沫(空闲输出端口)的发生。
请注意,图2中所示的输出队列决定以及自调度输出队列中出列的封包仅用作说明之用,并非为本发明的限制。举例来说,任一自由单一调度操作决定的一个调度输出队列出列多个封包的封包出列设计均落入本发明的范围之内。
请参考图3,其为依据本发明一个实施例的封包输出方法的流程示意图。若能达到基本相同的结果,该封包输出方法的步骤并不需要严格按照图3中所示顺序执行。该封包输出方法可用于图1所示的网络交换器100,且可简要的概况如下。
步骤300:开始。
步骤302:检查出列封包的当前封包传输是否完成。若是,转至步骤304;否则,继续检查当前封包传输是否完成。
步骤304:输出一个输出队列决定,以及开始用于获取下一输出队列决定的调度操作。
步骤306:检查由输出队列决定指示的调度输出队列中的所有封包的总封包长度是否小于阈值2A(亦即,Total_PktL(调度输出队列)<2A?)。若是,转至步骤308;否则,转至步骤310。
步骤308:出列调度输出队列中的所有封包。
步骤310:出列具有总封包长度不小于阈值A(亦即,ΣPktL≥A)的多个封包。
步骤312:结束。
本领域技术人员在读完上述段落后,可以轻易理解图3所示的每一步的细节,为简洁起见,此处不再赘述。
在一个范例性的设计中,出列设备104自一个调度输出队列出列多个封包以释放调度时间限制。从而,调度器106可使用任意常规调度器设计实现。在一替代性设计中,出列设备可使用任意常规出列设计实现,而调度器采用本发明的过调度方案实现。亦可达到释放调度时间限制的相同目的。
请参考图4,图4是依据本发明第二实施例的网络交换器的示意图。网络交换器400包含出列设备404、调度器406,决策缓冲设备408以及上述缓冲存储设备102。如上所述,待通过输出端口转发的封包可来自任一输出端口。调度器406了解输出队列115_1-115_N的队列状态,其中一个输出队列的队列状态可指示输出队列是否具有待被服务的封包;此外,调度器406执行一个调度操作以作出输出队列决定,用于决定输出队列115_1-115_N中的哪一个被授权输出其缓冲封包数据。在本实施例中,调度器406执行多个调度操作,其中每一调度操作调度一个输出队列,其中该输出队列自与相同输出端口相关联的多个输出队列115_1-115_N中选出,其中调度器406执行当前调度操作,而不管由先前调度操作决定的调度输出队列的封包传输的最终状态。
如上所述,在调度器106作出一个输出队列决定以授权一个输出队列之后,调度器106不作出下一输出队列决定,直到收到指示调度输出队列的封包传输的最终状态的确认消息。从而,由调度器106执行的一个调度操作包含至少等待对应于当前优胜输出队列的封包传输的确认消息的操作以及自多个候选输出队列选出下一优胜输出队列的操作。为释放调度时间限制,本发明更提出了使用过调度方案的设想。调度器106和406之间的主要不同在于由调度器406执行的一个调度操作排除了等待对应于调度输出队列的封包传输的确认消息的操作。举例来说,调度器406可直接执行自多个候选输出队列选出优胜输出队列的操作。换句话说,由调度器406执行的一个调度操作所需的处理时间可包含决策时间,且该决策时间前没有等待时间。从而由调度器406执行的输出队列调度与由出列设备404执行的封包出列分离(de-coupled)。亦即,与调度器106相比,调度器406可独立操作并具有较快决策速度。
调度器406可能在一个出列封包的当前传输结束之前输出输出队列决定。从而,决策缓冲设备408用于缓冲顺序产生自调度器406的输出队列决定。在本实施例中,决策缓冲设备408具有单一先入先出(first-infirst-out,简写为FIFO)缓冲器410。从而,在由先前调度操作决定的调度输出队列的封包传输完成之前,调度器406可输出由当前调度操作决定的调度输出队列的队列标示QID至FIFO缓冲器410。在本实施例中,出列设备404参考读取自FIFO缓冲器410的每一队列标示以自对应于队列标示的调度输出队列出列单一封包。
由于调度器406的调度决策操作在先前出列操作的确认消息(例如,EmptyQ_ACK)收到之前被触发,亦即,不管先前出列操作的确认消息(例如,EmptyQ_ACK),有可能不具有待被出列的封包的输出队列被选中作为一个调度输出队列,且其队列ID被存储于FIFO缓冲器410中。若出列设备404对该空输出队列执行出列操作,由于没有封包输出,将产生封包泡沫(空闲输出端口)。在本实施例中,基于队列管理状态,决策缓冲设备408可取消FIFO缓冲器410中的空输出队列(例如,QID_1)的决定,并随后选择FIFO缓冲器410中的下一决定(例如,QID_2)。
请参考图5,其为依据本发明一个实施例的释放调度时间限制的第二解决方案的时序图。假设调度器406执行的每一调度操作需要等于B字节封包传输时间(亦即,具有B字节大小的封包数据的传输时间)的处理时间,其中一个单一调度操作的处理时间包含如上所述的决策时间。换句话说,调度器406作出的两个连续输出队列决定之间的最小时间间隔等于具有大小为B字节的封包数据的传输时间,其中B<A。在时间T0,调度器406结束一个调度操作SCH0以输出一个输出队列决定D0=OQ0,并开始下一调度操作SCH1。在被由输出队列决定D0=OQ0决定的调度输出队列的队列标示QID通知之后,出列设备404对由输出队列决定D0=OQ0指定的调度输出队列OQ0执行封包出列操作。在本实施例中,出列设备404对于一个调度输出队列出列单一封包。如图5所示,出列设备404自调度输出队列OQ0仅出列封包PKTm。
在时间T1,出列封包PKTm的封包传输未完成;然而,调度器406输出输出队列决定D1=OQ1,并开始下一调度操作SCH2。在时间T2,出列封包PKTm的封包传输完成,且出列设备404对下一调度输出队列OQ1执行封包出列操作以开始自调度输出队列OQ1出列封包PKTn。出列封包PKTm为长封包,使得具有封包长度PktL(PKTm)的封包PKTm的传输时间Time(PKTm)长于一个单一调度操作的处理时间(亦即,B字节封包传输时间)。在下一出列封包PKTn为短封包的情况下,由过调度方案节省的时间(Time(PKTm)-B)允许调度器406在出列设备404开始由调度操作SCH1决定的出列封包PKTn的封包传输之前开始调度操作SCH2,从而增加了调度器106不晚于出列封包PKTn的封包传输结束可获取输出队列决定D2的概率。如图5所示,调度操作SCH2在时间T3(早于出列封包PKTn的封包传输完成的时间T4)输出输出队列决定D2=OQ2,且出列设备104在时间T4开始自调度输出队列OQ2出列封包PKTk。以这种方式,本情况下将不会发生封包泡沫(空闲输出端口)。
请注意,图5中所示的输出队列决定以及自调度输出队列中出列的封包仅用作说明之用,并非为本发明的限制。举例来说,任一以过调度方式作出多个输出队列决定的调度器设计均落入本发明的范围之内。
在图4所示的上述范例中,出列设备404对于由单一调度操作决定的一个调度输出队列出列单一封包。在一个替代设计中,网络交换器可采用提议的过调度方案及提议的多封包出列方案来释放调度时间限制。在多数情况下,可通过降低封包泡沫(空闲输出端口)概率来获得优化的封包转发性能。请参考图6,其为依据本发明第三实施例的网络交换器的示意图。网络交换器600包含上述出列设备104、调度器406、决策缓冲设备408及缓冲存储设备102。具体地说,网络交换器600是利用图1所示的出列设备104替换网络设备400中的出列设备404得到的。由于本领域技术人员在读完上述段落后可轻易了解网络交换器600中的每一元件的操作及功能,为简洁起见,此处不再赘述。
请参考图7,其为依据本发明另一实施例的封包输出方法的流程示意图。若能达到基本相同的结果,该封包输出方法的步骤并不需要严格按照图7中所示顺序执行。该封包输出方法可用于网络交换器400/600,且可简要的概况如下。
步骤700:开始。
步骤702:触发调度操作以作出一个输出队列决定。
步骤704:将由输出队列决定决定的调度输出队列的队列标示(ID)储存入决策缓冲设备中。转至步骤710。
步骤706:检查出列封包的当前封包传输是否完成。若是,转至步骤708;否则,继续检查当前封包传输是否完成。
步骤708:自决策缓冲设备读取队列ID。
步骤710:检查队列ID是否为有效队列(亦即,非空队列)。若是,转至步骤712;否则,转回至步骤708以选择下一队列ID。
步骤712:自对应于队列ID的输出队列出列封包。
步骤714:结束。
本领域技术人员在读完上述段落后,可以轻易理解图7所示的每一步的细节,为简洁起见,此处不再赘述。
由于提议的过调度方案的固有特性,可能存在性能问题。更具体地说,由于调度器406执行当前调度操作,而不管由先前调度操作决定的调度输出队列的封包传输的最终状态,由当前调度操作做出的输出队列决定可能并非最佳决定。在图4及图6所示的上述范例中,决策缓冲设备408仅具有一个FIFO缓冲器410,用于缓冲关联相同输出端口的调度输出队列的队列标示。在出于某些性能考虑,仍缓冲于FIFO缓冲器410中具有队列ID的输出队列被阻塞而不能通过输出端口输出任一封包的情况下,FIFO缓冲器410中的任一随后的队列ID均不能被输出。作为结果,具有较高等级的流量可能被具有较低等级的流量阻塞;若具有较低等级流量的封包是长封包,则性能将显著降低。为解决该问题,本发明更提出基于FIFO设计的服务等级(classofservice,简写为CoS)。更具体来说,当通过输出端口转发时,属于具有不同优先级的服务的封包可被分类为具有不同流量等级的封包流量。本发明因而提出了分配不同决策FIFO缓冲器给不同流量等级,从而阻止了具有较低流量等级的流量阻塞具有较高流量等级的流量的情况。进一步的描述如下。
请参考图8,其为依据本发明第四实施例的网络交换机的示意图。网络交换器800包含决策缓冲设备808及上述出列设备104/404、调度器406及缓冲存储设备102。在本实施例中,决策缓冲设备808包含等级(ranker)812、对应于不同流量等级的多个FIFO缓冲器814_1-814_M以及等级分拣机(sorter)816。等级解复用器812基于调度输出队列的流量等级将调度输出队列的队列标示储存入FIFO缓冲器814_1-814_M之一,其中调度输出队列由被调度器406执行的每一调度操作决定。此外,等级分拣机816更基于相应优先权设置对FIFO缓冲器814_1-814_M分类队列标示,从而适当调整决策FIFO中的队列标示的输出顺序。在本实施例中,决策缓冲设备808具有多个FIFO缓冲器,而非单一FIFO缓冲器。当出于某些性能考虑,仍缓冲于对应于较低流量等级的一个FIFO缓冲器中,具有队列ID的较低优先权输出队列被阻塞而不能通过输出端口输出任一封包时,仍缓冲于对应于较高流量等级的另一个FIFO缓冲器中,具有队列ID的较高优先权输出队列被允许被选定以输出其缓冲封包数据。以这种方式,输出端口所需的线速率可被维持。
本领域技术人员很容易了解,尽管本发明以特定实施例为例来做说明,但本发明并不限于此。相应的,依据本发明的精神所做的等效变化、修改与组合,都应当涵盖在权利要求书内。
Claims (26)
1.一种封包输出控制器,包含:
调度器,执行单一调度操作以调度输出队列,其中该输出队列自与输出端口相关联的多个输出队列中选出;以及
出列设备,自由该单一调度操作所决定的该调度输出队列出列多个封包。
2.根据权利要求1所述的封包输出控制器,其特征在于,自该调度输出队列出列的该多个封包的总封包长度不小于阈值,且该阈值基于该调度器的多个操作特性而设置。
3.根据权利要求2所述的封包输出控制器,其特征在于,由该调度器作出的两个连续输出队列决定之间的最小时间间隔等于具有大小为A的封包数据的传输时间,其中该阈值被设置为A。
4.根据权利要求1所述的封包输出控制器,其特征在于,该出列设备更比较该调度输出队列中所有封包的总封包长度以及阈值,并参考比较结果决定待自该调度输出队列中出列的该多个封包。
5.根据权利要求4所述的封包输出控制器,其特征在于,由该调度器作出的两个连续输出队列决定之间的最小时间间隔等于具有大小为A的封包数据的传输时间,其中该阈值被设置为2A。
6.根据权利要求5所述的封包输出控制器,其特征在于,当该比较结果指示该调度输出队列中的该总封包长度小于2A时,该多个封包为该调度输出队列中的所有封包。
7.根据权利要求5所述的封包输出控制器,其特征在于,当该比较结果指示该调度输出队列中的该总封包长度不小于2A时,该多个封包的封包长度不小于A。
8.一种封包输出控制器,包含:
调度器,执行多个调度操作,其中每一调度操作调度自与输出端口相关联的多个输出队列中选出的输出队列,其中该调度器执行当前调度操作,而不管由先前调度操作决定的调度输出队列的封包传输的最终状态;以及
出列设备,在由该先前调度操作决定的该调度输出队列的该封包传输完成之后,自由该当前调度操作决定的该调度输出队列出列至少一封包。
9.根据权利要求8所述的封包输出控制器,其特征在于,更包含:
决策缓冲设备;
其中在由该先前调度操作决定的该调度输出队列的该封包传输完成之前,该调度器输出由该当前调度操作决定的该调度输出队列的队列标示至该决策缓冲设备;以及该出列设备参考读取自该决策缓冲设备的该队列标示以自对应于该队列标示的该调度输出队列出列至少一封包。
10.根据权利要求9所述的封包输出控制器,其特征在于,当对应于特定队列标示的特定输出队列是空的时,该决策缓冲设备取消缓冲于其内的该特定队列标示。
11.根据权利要求8所述的封包输出控制器,其特征在于,更包含:
决策缓冲设备,包含:
多个缓冲器,对应于不同流量等级;以及
等级解复用器,基于该调度输出队列的流量等级,将由该多个调度操作中的每一个调度操作所决定的该调度输出队列的队列标示储存至该多个缓冲器的一个中。
12.根据权利要求11所述的封包输出控制器,其特征在于,该决策缓冲设备更包含:
等级分拣机,基于对应的多个优先权设置对该多个缓冲器分拣队列标示。
13.根据权利要求8所述的封包输出控制器,其特征在于,该出列设备自由该当前调度操作决定的该调度输出队列出列多个封包。
14.一种封包输出方法,包含:
执行单一调度操作以调度输出队列,其中该输出队列自与输出端口相关联的多个输出队列中选出;以及
自由该单一调度操作所决定的该调度输出队列出列多个封包。
15.根据权利要求14所述的封包输出方法,其特征在于,自该调度输出队列出列的该多个封包的总封包长度不小于阈值,且该阈值是基于多个调度操作的多个操作特性而设置。
16.根据权利要求15所述的封包输出方法,其特征在于,由该多个调度操作作出的两个连续输出队列决定之间的最小时间间隔等于具有大小为A的封包数据的传输时间,其中该阈值被设置为A。
17.根据权利要求14所述的封包输出方法,其特征在于,更包含:
比较该调度输出队列中所有封包的总封包长度以及阈值;以及
参考比较结果决定待自该调度输出队列中出列的该多个封包。
18.根据权利要求17所述的封包输出方法,其特征在于,由多个调度操作作出的两个连续输出队列决定之间的最小时间间隔等于具有大小为A的封包数据的传输时间,其中该阈值被设置为2A。
19.根据权利要求18所述的封包输出方法,其特征在于,当该比较结果指示该调度输出队列中的该总封包长度小于2A时,该多个封包为该调度输出队列中的所有封包。
20.根据权利要求18所述的封包输出方法,其特征在于,当该比较结果指示该调度输出队列中的该总封包长度不小于2A时,该多个封包的封包长度不小于A。
21.一种封包输出方法,包含:
执行多个调度操作,其中每一调度操作调度自与输出端口相关联的多个输出队列中选出的输出队列,其中不管由先前调度操作决定的调度输出队列的封包传输的最终状态,当前调度操作被执行;以及
在由该先前调度操作决定的该调度输出队列的该封包传输完成之后,自由该当前调度操作决定的该调度输出队列出列至少一封包。
22.根据权利要求21所述的封包输出方法,其特征在于,更包含:
在由该先前调度操作决定的该调度输出队列的该封包传输完成之前,缓冲由该当前调度操作决定的该调度输出队列的队列标示;
其中自由该当前调度操作决定的该调度输出队列出列该至少一封包的该步骤包含:
读取该缓冲队列标示;以及
自对应于该缓冲队列标示的该调度输出队列出列该至少一封包。
23.根据权利要求22所述的封包输出方法,其特征在于,更包含:
当对应于特定缓冲队列标示的特定输出队列是空的时,取消该特定缓冲队列标示。
24.根据权利要求21所述的封包输出方法,其特征在于,更包含:
基于该调度输出队列的流量等级将由该多个调度操作中的每一个调度操作所决定的该调度输出队列的队列标示储存至对应于多个不同流量等级的多个缓冲器的一个中。
25.根据权利要求24所述的封包输出方法,其特征在于,更包含:
基于对应的多个优先权设置对该多个缓冲器分拣队列标示。
26.根据权利要求21所述的封包输出方法,其特征在于,自该调度输出队列出列至少一封包的该步骤包含:
自由该当前调度操作决定的该调度输出队列出列多个封包。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201361816251P | 2013-04-26 | 2013-04-26 | |
US61/816251 | 2013-04-26 | ||
US14/254893 | 2014-04-17 | ||
US14/254,893 US9667561B2 (en) | 2013-04-26 | 2014-04-17 | Packet output controller and method for dequeuing multiple packets from one scheduled output queue and/or using over-scheduling to schedule output queues |
PCT/CN2014/076206 WO2014173315A1 (en) | 2013-04-26 | 2014-04-25 | Packet output controller and method for dequeuing multiple packets from one scheduled output queue and/or using over- scheduling to schedule output queues |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105409170A true CN105409170A (zh) | 2016-03-16 |
Family
ID=51789229
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201480004897.3A Pending CN105409170A (zh) | 2013-04-26 | 2014-04-25 | 自一个调度输出队列出列多个封包及/或使用过调度来调度输出队列的封包输出控制器以及相关方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US9667561B2 (zh) |
CN (1) | CN105409170A (zh) |
WO (1) | WO2014173315A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021249058A1 (zh) * | 2020-06-10 | 2021-12-16 | 中兴通讯股份有限公司 | 一种交换网络流量控制方法、设备及储存介质 |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3076619A1 (en) * | 2015-04-02 | 2016-10-05 | Alcatel Lucent | Method, system and computer-readable medium to schedule the processing of a plurality of data packets |
EP3091700B1 (en) * | 2015-05-05 | 2018-03-21 | Mitsubishi Electric R&D Centre Europe B.V. | Method for allocating time-frequency resources for transmitting data packets over a frequency selective channel |
US9912774B2 (en) | 2015-12-22 | 2018-03-06 | Intel Corporation | Accelerated network packet processing |
US10015699B2 (en) * | 2016-03-28 | 2018-07-03 | Cisco Technology, Inc. | Methods and devices for policing traffic flows in a network |
US10419366B1 (en) | 2017-01-31 | 2019-09-17 | Barefoot Networks, Inc. | Mechanism for communicating to remote control plane from forwarding element |
US10826840B1 (en) * | 2017-07-23 | 2020-11-03 | Barefoot Networks, Inc. | Multiple copies of stateful tables |
US10594630B1 (en) | 2017-09-28 | 2020-03-17 | Barefoot Networks, Inc. | Expansion of packet data within processing pipeline |
CN110177054B (zh) * | 2019-05-22 | 2022-08-19 | 新华三技术有限公司 | 一种端口队列调度方法、装置、网络控制器及存储介质 |
CN115242726B (zh) * | 2022-07-27 | 2024-03-01 | 阿里巴巴(中国)有限公司 | 队列的调度方法和装置及电子设备 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060221978A1 (en) * | 2005-03-31 | 2006-10-05 | Muthaiah Venkatachalam | Backlogged queue manager |
CN102223306A (zh) * | 2011-06-17 | 2011-10-19 | 中兴通讯股份有限公司 | 一种报文传输方法及装置 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6161160A (en) | 1998-09-03 | 2000-12-12 | Advanced Micro Devices, Inc. | Network interface device architecture for storing transmit and receive data in a random access buffer memory across independent clock domains |
KR100354245B1 (ko) | 1999-06-30 | 2002-09-28 | 삼성에스디아이 주식회사 | 음극선관용 텐션 마스크 |
CN1292568C (zh) * | 2001-09-02 | 2006-12-27 | 中兴通讯股份有限公司 | 一种多队列数据分组连续转发的装置和方法 |
US20050220115A1 (en) * | 2004-04-06 | 2005-10-06 | David Romano | Method and apparatus for scheduling packets |
US7554919B1 (en) * | 2004-06-09 | 2009-06-30 | Juniper Networks, Inc. | Systems and methods for improving packet scheduling accuracy |
US7646717B1 (en) * | 2004-10-29 | 2010-01-12 | Marvell International Ltd. | Method and apparatus for packet scheduling |
US7619970B2 (en) * | 2006-04-27 | 2009-11-17 | Dune Semiconductor Ltd. | Method, device and system of scheduling data transport over a fabric |
CN101478483B (zh) | 2009-01-08 | 2011-09-07 | 中国人民解放军信息工程大学 | 交换设备内实现分组调度的方法及交换设备 |
US7792131B1 (en) * | 2009-03-10 | 2010-09-07 | Cisco Technologies, Inc. | Queue sharing with fair rate guarantee |
US8565250B2 (en) | 2010-05-18 | 2013-10-22 | Lsi Corporation | Multithreaded, superscalar scheduling in a traffic manager of a network processor |
US8869150B2 (en) | 2010-05-18 | 2014-10-21 | Lsi Corporation | Local messaging in a scheduling hierarchy in a traffic manager of a network processor |
CN102340443B (zh) | 2010-07-21 | 2015-07-22 | 中兴通讯股份有限公司 | 包交换网络中流量调度的装置和方法 |
-
2014
- 2014-04-17 US US14/254,893 patent/US9667561B2/en active Active
- 2014-04-25 CN CN201480004897.3A patent/CN105409170A/zh active Pending
- 2014-04-25 WO PCT/CN2014/076206 patent/WO2014173315A1/en active Application Filing
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060221978A1 (en) * | 2005-03-31 | 2006-10-05 | Muthaiah Venkatachalam | Backlogged queue manager |
CN102223306A (zh) * | 2011-06-17 | 2011-10-19 | 中兴通讯股份有限公司 | 一种报文传输方法及装置 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021249058A1 (zh) * | 2020-06-10 | 2021-12-16 | 中兴通讯股份有限公司 | 一种交换网络流量控制方法、设备及储存介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2014173315A1 (en) | 2014-10-30 |
US20140321476A1 (en) | 2014-10-30 |
US9667561B2 (en) | 2017-05-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105409170A (zh) | 自一个调度输出队列出列多个封包及/或使用过调度来调度输出队列的封包输出控制器以及相关方法 | |
US11709702B2 (en) | Work conserving, load balancing, and scheduling | |
EP2893678B1 (en) | Apparatus for transferring packets between interface control modules of line cards | |
CN101136854B (zh) | 一种实现数据包线速处理的方法和装置 | |
US9602436B2 (en) | Switching device | |
CN105024942B (zh) | 一种动态流量监控方法 | |
CN103946803A (zh) | 具有高效工作排队的处理器 | |
US8463967B2 (en) | Method and device for scheduling queues based on chained list | |
US20080031269A1 (en) | System and Method for Bypassing an Output Queue Structure of a Switch | |
EP2676189B1 (en) | Sorting | |
CN107770090B (zh) | 用于控制流水线中寄存器的方法和装置 | |
US7287061B2 (en) | Data transfer apparatus and data transfer method | |
US8879578B2 (en) | Reducing store and forward delay in distributed systems | |
CN102594669A (zh) | 数据报文的处理方法、装置及设备 | |
CN103701721B (zh) | 报文传输方法及装置 | |
CN102546423A (zh) | 队列调度方法、装置及网络设备 | |
CN103546392A (zh) | 队列单周期调度方法和装置 | |
CN115955441A (zh) | 一种基于tsn队列的管理调度方法、装置 | |
CN104919769B (zh) | 用于执行多个调度操作的调度器及相关方法 | |
US10581759B1 (en) | Sharing packet processing resources | |
US7881197B2 (en) | Interface scheduling and traffic-shaping | |
CN104125171A (zh) | 交换机结构以及入口流量处理方法 | |
JP2010157782A (ja) | パケットスケジューリング方法および装置 | |
CN1901510B (zh) | 操作交叉开关的调度器的方法及调度器 | |
Siipola | Programmable packet scheduling in data centers |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
AD01 | Patent right deemed abandoned | ||
AD01 | Patent right deemed abandoned |
Effective date of abandoning: 20191108 |