自一个调度输出队列出列多个封包及/或使用过调度来调度输出队列的封包输出控制器...的制作方法

文档序号:9650864阅读:385来源:国知局
自一个调度输出队列出列多个封包及/或使用过调度来调度输出队列的封包输出控制器 ...的制作方法
【专利说明】自一个调度输出队列出列多个封包及/或使用过调度来调度输出队列的封包输出控制器以及相关方法
[0001]【相关申请的交叉引用】
[0002]本申请要求申请日为2013年4月26日,美国临时申请号为61/816,251,以及申请日为2014年4月17日,美国申请号为14/254,893的美国申请案的优先权,上述申请案的内容一并并入本申请。
【技术领域】
[0003]本发明的实施例有关于转发封包,更具体来说,有关于自一个调度输出队列出列多个封包及/或使用过调度(over-scheduling)来调度输出队列的封包输出控制器以及相关方法。
【【背景技术】】
[0004]网络交换机(network switch)是链接不同电子设备的计算机网络设备。举例来说,网络交换机接收与其连接的源电子设备所产生的输入封包,并将从已接收的封包导出的输出封包传输至一个或多个目的电子设备,其中所述已接收的封包原本是由一个或多个目的电子设备接收。一般来说,网络交换机具有封包缓冲器用于缓冲自输入端口(ingressport)接收的封包的封包数据,以及将储存在封包缓冲器的封包通过输出端口(egressport)转发。
[0005]关于待通过相同输出端口转发的入口封包(ingress packet),入口封包来自连接不同输入端口的源电子设备。从而,网络交换器可创建用于多个入口封包的多个输出队列,其中多个入口封包分别自不同输入端口接收。举例来说,对应于相同输出端口的多个输出队列的每一个可简单的通过储存封包的封包标示(identifier,简写为ID)来创建,以记录封包链接表(packet linked list),其中封包链接表用于指示实际储存在封包缓冲器中的封包的输出顺序。由于存在多个输出队列,需要调度器来执行多个调度操作,每一个调度操作用于做出一个输出队列决定,以指示哪一个输出队列被授权输出一个封包到输出端口。
[0006]通常,单一调度操作所需的处理时间应当短于最小封包传输时间(例如,64字节封包的传输时间)以获取所需线速率(line rate)。当线速率变得更高时,最小封包传输时间相应变得更短。举例来说,当网络交换器用于10千兆以太网(Gigabit Ethernet,简写为lOGbE)环境时,最小封包传输时间可为67.2ns (纳秒);当网络交换器用于40千兆以太网(40GbE)环境时,最小封包传输时间可为16.8ns (纳秒);当网络交换器用于100千兆以太网(100GbE)环境时,最小封包传输时间可为6.72ns(纳秒)。若自通过一个输出队列决定选择的输出队列中出列的一个封包的封包传输已经完成,而且调度器未能及时作出另一输出队列决定,输出端口的线速率可由于没有封包传输而降低。从而,关于高速网络应用,如何设计满足严格的调度时间限制(timing constraint)的网络交换器对业内设计者来说是一个挑战。【
【发明内容】

[0007]依据本发明的范例性实施例,自一个调度输出队列出列多个封包及/或使用过调度来调度输出队列的封包输出控制器以及相关方法被提出来解决上述问题。
[0008]依据本发明的第一个方面,一种范例的封包输出控制器被揭露。范例的封包输出控制器包含调度器及出列设备。调度器执行单一调度操作以调度输出队列,其中输出队列自与输出端口相关联的多个输出队列中选出。出列设备自由单一调度操作所决定的调度输出队列出列多个封包。
[0009]依据本发明的第二个方面,另一种范例的封包输出控制器被揭露。范例的封包输出控制器包含调度器及出列设备。调度器执行多个调度操作,其中每一调度操作调度自与输出端口相关联的多个输出队列中选出的输出队列,其中调度器执行当前调度操作,而不管由先前调度操作决定的调度输出队列的封包传输的最终状态。出列设备在由先前调度操作决定的调度输出队列的封包传输完成之后,自由当前调度操作决定的调度输出队列出列至少一封包。
[0010]依据本发明的第三个方面,一种范例的封包输出方法被揭露。范例的封包输出方法包含执行单一调度操作以调度输出队列,其中输出队列自与输出端口相关联的多个输出队列中选出;以及自由单一调度操作所决定的该调度输出队列出列多个封包。
[0011]依据本发明的第四个方面,另一种范例的封包输出方法被揭露。范例的封包输出方法包含执行多个调度操作,其中每一调度操作调度自与输出端口相关联的多个输出队列中选出的输出队列,其中不管由先前调度操作决定的调度输出队列的封包传输的最终状态,当前调度操作被执行;以及在由先前调度操作决定的调度输出队列的封包传输完成之后,自由当前调度操作决定的调度输出队列出列至少一封包。
[0012]本领域技术人员在读完下述利用不同附图展示的较佳实施例的详细描述之后,将了解本发明的上述及其他目的。
【【附图说明】】
[0013]图1是依据本发明第一实施例的网络交换器的示意图。
[0014]图2为依据本发明一个实施例的释放调度时间限制的第一解决方案的时序图。
[0015]图3为依据本发明一个实施例的封包输出方法的流程示意图。
[0016]图4是依据本发明第二实施例的网络交换器的示意图。
[0017]图5为依据本发明一个实施例的释放调度时间限制的第二解决方案的时序图。
[0018]图6为依据本发明第三实施例的网络交换器的示意图。
[0019]图7为依据本发明另一实施例的封包输出方法的流程示意图。
[0020]图8为依据本发明第四实施例的网络交换机的示意图。
【【具体实施方式】】
[0021]在说明书及权利要求书当中使用了某些词汇来指称特定的组件。所属领域中的技术人员应可理解,制造商可能会用不同的名词来称呼同样的组件。本说明书及权利要求书并不以名称的差异来作为区分组件的方式,而是以组件在功能上的差异来作为区分的基准。在通篇说明书及权利要求书当中所提及的「包含」是开放式的用语,故应解释成「包含但不限定于」。另外,「耦接」一词在此包含任何直接及间接的电气连接手段。因此,若文中描述第一装置耦接于第二装置,则代表第一装置可直接电气连接于第二装置,或透过其它装置或连接手段间接地电气连接至第二装置。
[0022]本发明的构思是通过自由单一调度操作调度的一个输出队列出列多个封包及/或使用过调度来加速输出队列决策(decis1n-making)来释放调度时间限制。以这种方式,在多数情况下,封包泡沫(packet bubble)(亦即,空闲输出端口 )概率可被降低,以维持所需线速率。下面将结合附图来详细说明本发明的调度/出列设计。
[0023]图1是依据本发明第一实施例的网络交换器的示意图。网络交换器100包含缓冲存储设备102、出列(dequeue)设备104和调度器106。缓冲存储设备102包含封包缓冲器112和队列管理器114。举例来说,封包缓冲器112可利用动态随机存取存储器(dynamicrandom access memory,简写为DRAM)来实施,而队列管理器114可包含静态随机存取存储器(static random access memory,简写为SRAM)以储存多个封包链接列表,其中所述多个封包链接列表分别作为多个输出队列115_1-115_N。当封包自网络交换器100的多个输入端口之一被接收时,封包被缓冲于封包缓冲器112中,并被排入输出队列115_1-115_N2一。举例来说,自输入端口 1(未描绘于图中)接收并被要求通过输出端口 J(未描绘于图中)转发的封包被排入至相同输出队列OQu。为简洁起见,图1中仅展示了一个输出端口。因此,自输入端口(例如,端口 1-端口 N)之一接收并被决定通过上述输出端口转发的封包由具有多个查找表的封包处理器(未描绘于图中)依据封包属性处理。从而,封包被排入由队列管理器114维持的输出队列115_1-115_N之一。调度器106通过各优先级配置适当调度输出队列115_1-115_N,优先级配置例如待通过相同输出端口转发的多个封包的速率限制。然而,以上仅用作说明之用,并非为本发明的限制。
[0024]为释放输出队列115_1_115_N的存储器需求,链接列表结构被采用来作为一个输出队列。举例来说,输出队列115_1-115_N中的每一个是一个封包链接列表,其中封包链接列表由自相同输入端口接收且待被自输出端口转发的多个封包的封包ID组成。因此,当特定封包自一个输出队
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1