队列感知的流控制的制作方法

文档序号:7636579阅读:174来源:国知局
专利名称:队列感知的流控制的制作方法
队列感知的流控制
背景技术
路由器或交换机(网络设备)将分组从输入引导至输出。经典的网络 设备体系结构包括多个具有板上队列管理器的线路卡,所述多个线路卡连
接到中心交换机构。图1是示出了通过串行链路16与纵横式交换机 (crossbar switch) 14相连接的线路卡12的网络设备10的高级图示。纵横 式交换机包括与由多个串行链路形成的背板相耦合的ASIC形式的纵横式 交换机。线路卡充当路由器的输入和输出,并被耦合到背板交换结构,所 述背板交换结构执行将输入线路卡耦合至输出线路卡以进行数据传送的任 务。来自输入线路卡的流量通过所述背板交换结构的一个开关,并被传送 到适当的输出线路卡。高速网络设备应用采用串行背板,在所述串行背板 中数据是在形成在该背板中的串行路径上被传送的。
队列管理器必须执行流控制,以防止当接收机上的缓冲器溢出时发生 数据丢失。背压(backpressure)被用于控制流,并且接收机具有在其缓冲 器具有接收更多数据的容量之前阻止数据传输的能力。
在发射机处,当由于背压而导致在发送队列的头处的分组不能被发送 时,可能会发生线路头(HOL)阻塞。这阻碍了在发送队列中的所有分组 的发送,即使它们所要去往的接收机可以接收也是如此。
HOL阻塞的问题通过在线路卡上形成虚拟输出队列(VOQ)而得以 解决,其中VOQ是针对每一个潜在的接收机而被建立的。因此,如果 VOQ上的头分组被阻塞,则线路卡能够切换到另一个头分组没有被阻塞的 VOQ。
背板互连的体系结构是当今通信基础设施设计中的关键阻塞点。大量 的注意力已被投向板上芯片之间的数据移送,并且已经逐渐地接受吉比特 和多吉比特(MultiGigabit)的以太网来作为点到点的交换互连技术。
流控制是在大多数以太网中都可以见到的处理。需要确保设备不会使网络上的其它设备过载。被称作"暂停帧(PAUSE frame)"的特殊帧被 用于在节点之间发送流量流请求和状态。暂停帧允许一个端站点暂时停止 来自另一个端站点的所有流量(除了MAC控制帧以外)。
例如,假设一个连接被称作"站点A"和"站点B"的两个设备的全 双工链路。假定站点A以致使站点B进入拥塞状态(即,没有空余的缓冲 空间用以接收另外的帧)的速率来发送帧。站点B可以向站点A发送暂停 帧,用于请求站点A在指定时间段内停止发送帧。 一旦接收到暂停帧,站 点A将延缓其它帧的发送,直到该指定时间段结束为止。这将使得站点B 有时间从拥塞状态中恢复过来。在所述指定时间段结束时,站点A将重新 开始正常的帧发送。
注意,暂停帧协议是双向的。站点A可以发送帧以使站点B暂停,并 且站点B可以发送帧以使站点A暂停。暂停帧是即使站点当前处于暂停状 态中该站点也被允许发送的一种帧。在实行全双工协议(在半双工环境 中,暂停帧的使用是不被支持的)的设备中,对暂停帧的支持是可选的。 设备可以仅支持协议的一半;即,其可以在接收方没有能力对暂停帧进行 解码的情况下发送暂停帧,反之亦然。设备使用自动协商(Auto-Negotiation) 协议来获知在链路的另一端的设备的暂停帧能力。这允许了 在支持或不支持所述协议或支持所述协议的一半的设备之间的协同工作。
但是,当前使用暂停帧的流控制并不十分适合背板体系结构,原因在 于其不对系统的内部队列进行区分,并且当多个队列中的一个队列变满
时,就会阻止流量在未阻塞的队列之间流动。
与暂停帧有关的问题在于发送设备在以512比特时间为单位的暂停 事件持续时间内停止了所有的进一步发送。这非常适合在LAN/WAN环境 中经以太网来连接的设备。但是,在背板互连环境中,这会成为服务质量 (QoS)瓶颈。
随着对具有更大灵活性和适应性的更多更好的技术的需求,在背板互 连设计领域中的挑战不断增多。因此,出现了对用于在能够满足QoS和服 务类别(CoS)要求的吉比特以太网中提供背压控制的新的系统和方法的 需求。


图1是网络设备的体系结构的示例的框图2是传统MAC的框图3是本发明的一个实施例的框图;以及
图4和图5是本发明的实施例所执行的动作的流程图。
具体实施例方式
现在将详细地参考本发明的各个实施例。这些实施例中的示例在附图 中被示出。虽然将结合这些实施例来描述本发明,但是应当了解,并不是 意图将本发明限制于任何实施例。相反,其意图覆盖在所附权利要求所限 定的本发明的精神和范围内的可选方式、修改和等同物。在以下的描述 中,给出了大量的具体细节,以提供对各个实施例的完整理解。但是,本 发明可以在没有这些具体细节中的一些或全部的情况下实施。另一方面, 没有详细描述公知的处理操作,以避免不必要地模糊化本发明。
将结合用于采用以太网协议的接入路由平台的多吉比特SERDES (串 行器/解串器)背板来描述第一实施例。以太网协议的使用将有助于减轻当 前所采用的基于PCI的背板的拥塞状况,并且提供了低成本且小功率的点 到点的交换互连。但是,当前的以太网流控制协议并不提供所需要的对背 板应用的支持。
通常,背板承载很多个去往不同目的地的虚拟流(virtual stream)中 的流量。数据报流量(延迟不敏感)和控制流量(延迟敏感)是系统中的 两个虚拟流的示例。当输出线路卡中的一个输出线路卡的虚拟流中有一个 填满时,在交换节点的那个输入端口处的输入虚拟流可能进入填满情况下 的阻塞状态。如果使用当前的以太网介质访问控制器(MAC),则其可能 由于多个虚拟流中的一个虚拟流被阻塞而致使来自多个线路卡的所有流量 都停止流向所述交换节点。这在背板互连中是不希望的。
即使在交换背板的负荷很重时,也应当能够传输延迟敏感的流量和/或 控制流量,而不会因为多个虚拟流中的一个虚拟流的流量被阻塞而导致线路头被阻塞。避免HOL阻塞要求在以太网协议中支持虚拟流感知
(aware)的流控制。
以下描述了用于在以太网协议中提供虚拟流感知的流控制的两种技
术。这两种技术都是新颖的,原因在于它们不仅支持标准以太网MAC,
还允许经修改的以太网设备和标准以太网设备的混合结构。这在由产品推
向市场的时间来衡量使用现货供应的组件的模块/线路卡的发展的接入路由 市场中尤其重要。
图2示出了在符合IEEE 802.3标准的以太网系统中采用的现有MAC 系统。该系统包括Tx FIFO禾n Rx FIFO、暂停帧生成逻辑(PFGL)、 802.3处理元件、暂停帧处理逻辑(PFHL)以及与介质相耦合的物理层 (PHY)设备。
当发送时,系统逻辑(例如,DMA或交换调度器)将要发送的帧置 于Tx FIFO中,然后802.3处理元件将这些帧从Tx FIFO发送到PHY。当 接收时,802.3处理元件将帧接收到Rx FIFO中。
当Rx FIFO的填充水平超过可编程的阈值时,暂停帧生成逻辑生成具 有可编程暂停值的暂停帧,并将该暂停帧传送到802.3处理元件,以发送 到PHY。当Rx FIFO的填充水平低于另一个可编程水平时,暂停帧生成逻 辑生成具有零暂停值的暂停帧,以通知对等设备(peer device)重新开始 发送。
当接收到具有非零暂停值的暂停帧时,Rx暂停帧逻辑通知802.3处理 元件在完成当前帧的发送之后在暂停时间内停止发送。当接收到具有零暂 停值的暂停帧时,Rx暂停帧逻辑通知802.3处理元件重新开始传送。
标准的S02.3x暂停帧格式包括值为88-08 (十六进制)用以指示 MAC控制帧的16位的长度/类型字段、值为00-01用以指示该帧正被用作 暂停帧的16位的MAC控制操作码(Opcode)以及16位的暂停时间 (Pause—time)参数字段。另外,暂停帧还包括42字节的预留字段(作为 全零而被发送),这是将暂停帧的长度加长至最小以太网帧大小所需要 的。
图3是本发明的一个实施例的框图。系统逻辑与多个Tx FIFO和RxFIFO的集合相耦合。调度器的输入与TxFIFO相耦合,而输出与802.3处 理元件相耦合。暂停帧生成逻辑的控制输入与Rx FIFO相耦合,暂停帧输 出与802.3处理元件相耦合;而暂停帧处理逻辑的暂停帧输入与802.3处 理元件相耦合,并且控制输出与调度器相耦合。802.3处理元件的Tx端口 与Rx端口与PHY相耦合。
在本实施例中,利用标准802.3x暂停帧的预留字段来标识将被暂停的 特定虚拟流。两个字节被用于限定虚拟流图[16个虚拟流],两个字节用于 限定留给每一虚拟流的最大尺寸消息的空间[总共16X2=32字节]。剩下 的8个字节留作将来使用。
可以通过向各个虚拟流(例如,正在交换信息的接收机中的特定Rx FIFO和发射机中的特定Rx FIFO)分配预留字段中的比特位置,对上述信 息进行编码,并且在所述比特位置中的一个比特位置中的比特设置标识在 Tx FIFO集合中将被暂停的特定Tx FIFO。
现在将描述图3所示实施例的操作。将参考图4来描述PFGL用以生 成流感知的暂停帧(FAPF: flow-aware pause frame)的操作,以及参考图 5来描述PFHL用以处理所接收的FAPF的操作。
在图4中,如果特定RxFIFO (在本示例中为RxFIFO 1)的填充水平 超过了可编程阈值,则生成流感知的暂停帧,该暂停帧对可编程暂停时间 进行编码,并且在由暂停帧生成逻辑所设置的暂停帧的预留字段中利用比 特位置来标识Rx FIFO 1。随后,FAPF被传送到802.3处理元件,以用于发送。
在图5中,当802.3处理元件接收到FAPF时,该FAPF被传送到 PFHL, PFHL从暂停帧中读取暂停时间和虚拟流标识信息。所述暂停时间 和虚拟流标识信息被从PFHL发送到调度器。调度器在由暂停时间指定的 时间段内停止对被标识的用于发送的Tx FIFO的调度。
如果在协商(或者是链路级的自动协商或者是软件启动的协商)期 间,以太网设备判定链路伙伴并不支持这种修改,则其将标准以太网流控 制机构恢复到默认设置。这使得能够支持有现货供应的以太网设备。
总的来说,4种工作配置及其性能是1. Tx标准MAC-Rx标准MAC》可能发生HOL阻塞。不区分流 量类别。
2. Tx标准MAC-Rx增强型MAC》可能发生HOL阻塞。不区分
流量类别。
3. Tx增强型MAC-Rx标准MAC-〉可能发生HOL阻塞。不区分
流量类别。
4. Tx增强型MAC-Rx增强型MAC》完全区分流量类别。
但是,当所有的链路伙伴都使用增强型MAC时,对于整个体系结构 是极其有利的,因为一个流的拥塞信息从拥塞点被反馈回到源,而通过选 择性地仅补偿(backoff)属于特定虚拟流的源有助于减轻拥塞状况。在发 射机方的暂停帧处理逻辑对请求暂停的虚拟流的身份进行解码,并且调度 器暂停属于被标识的虚拟流的所有Tx FIFO。
在本发明的另一个实施例中,其利用预留代码字来中断正被发送的 帧,以立即发送暂停帧。在标准以太网系统中,暂停帧的发送被延迟直到 当前帧的发送完成为止。这可能导致请求该暂停帧的Rx缓冲器发生溢 出。
在本实施例中,使用在8b/10b编码PMD/PCS子层中的SERDES、 SGMII和/或TBI的预留K码(reserved K-code)来中断正被发送的分组, 并插入经修改的标准暂停帧或专门定义的暂停帧。在由Z.X. Widmer和 P.A.Franaszek发表在IBM Journal of Research and Development, Vol.27, Number 5, September1983上的题为A DC-BALANCED, PARTITIONED-BLOCK, 8B/10B TRANSMISSION CODE的文章中给出了对利用K码的 8b/10b编码的描述。
由于只要在接收机方检测到拥塞,流控制消息就能够由接收机插入并 且被发射机接收,即,不必等待帧边界(frame boundary),所以能够降低 每个虚拟流的缓冲需求,从而减小从暂停帧的发送到从该虚拟流的发送的 实际停止的转变(turnaround)时间。
返回来参考图3,当RxFIFO溢出时,暂停帧生成逻辑触发PHY使其 中断正在被发送的分组,并使其发送K码,该K码向发射机指示当前帧正被中断并且接下来的分组将包含暂停帧。因此,减小了在Rx FIFO溢出的 时刻与发射机暂停在虚拟流上的分组发送的时刻之间的延迟。
现在已经参考优选实施例描述了本发明。现在,对于本领域技术人员 来说,可选方式和替代方式都将显而易见。例如,正如在本领域中所公知 的,可以以多种方式来限定FIFO溢出的条件。此外,可以使用在暂停帧 的预留字段中的比特位置的不同组合来标识经受背压的虚拟流。此外,本 发明并不限于严格符合IEEE802.3的系统。因此,并不希望限制本发明, 而本发明仅受限于所附的权利要求。
权利要求
1. 一种用于控制发射机/接收机对之间的流的方法,所述接收机具有多个用于保存在所述接收机处接收的帧的Rx FIFO,所述发射机具有多个Tx FIFO,所述方法包括生成用于标识填充水平超过阈值的溢出Rx FIFO的溢出指示;形成用于指示所述溢出Rx FIFO的身份并指示暂停时间值的流感知的暂停帧;将所述流感知的暂停帧发送至所述发射机;在所述发射机处接收所述流感知的暂停帧,并对所述流感知的暂停帧进行解码,以确定向所述溢出Rx FIFO发送分组的Tx FIFO的身份以及所述暂停时间值;以及在所述暂停时间值内停止从被标识的Tx FIFO向所述溢出Rx FIFO发送帧。
2. 如权利要求l所述的方法,还包括利用流感知的暂停帧中的预留比特来指示所述溢出Rx FIFO的身份。
3. 如权利要求l所述的方法,还包括在所述发射机和所述接收机之间进行自动协商,用以判断流感知的暂 停帧是否得到支持。
4. 一种用于控制发射机/接收机对之间的流的系统,所述系统包括 在所述接收机处用于保存所接收的帧的多个Rx FIFO;暂停帧生成逻辑模块,所述暂停帧生成逻辑模块在接收到溢出指示时生成用于标识溢出Rx FIFO的流感知的暂停帧,所述暂停帧生成逻辑对所 述流感知的暂停帧中的所述溢出RxFIFO的身份进行编码;在所述接收机上的第一处理单元,所述第一处理单元与所述暂停帧生 成逻辑模块相耦合,并发送所述流感知的暂停帧;在所述发射机上的第二处理单元,所述第二处理单元用于接收所述流 感知的暂停帧;在所述发射机处的多个Tx FIFO,所述Tx FIFO保存将被发送的帧;调度器,所述调度器与所述第一和第二 Tx FIFO相耦合,并对将从所 述TxFIFO发送的帧进行调度;以及暂停帧处理逻辑模块,所述暂停帧处理逻辑模块与所述第二处理器和 所述调度器相耦合,所述暂停帧处理逻辑模块对所接收的流感知的暂停帧 进行解码,以标识向由所述流感知的暂停帧指示的所述溢出RxFIFO发送 帧的Tx FIFO,并通知所述调度器停止从被标识的Tx FIFO向所述溢出Rx FIFO发送帧。
5. —种用于控制发射机/接收机对之间的流的方法,所述接收机具有 用于保存要被发送的分组的RxFIFO,所述方法包括当所述Rx FIFO的填充水平超过阈值时,在所述Rx FIFO处生成填满 指示;响应于所述填满指示来形成指示暂停时间值的暂停帧; 中断将从所述接收机被发送的帧,并响应于暂停帧信息而发送特殊代码;在所述发射机处接收所述特殊代码,并对随后的作为暂停帧的分组作 出响应;以及 在所述暂停时间值内停止从所述第一TxFIFO发送帧。
6. 如权利要求5所述的方法,还包括进行自动协商,以判断所述发射机和所述接收机是否支持使用所述特 殊代码。
7. —种用于控制发射机/接收机对之间的流的系统,所述接收机具有 多个用于保存在所述接收机处所接收的帧的Rx FIFO,而所述发射机具有 多个TxFIFO,所述系统包括用于生成标识填充水平超过阈值的溢出Rx FIFO的溢出指示的装置; 用于形成指示所述溢出Rx FIFO的身份并指示暂停时间值的流感知的暂停帧的装置;用于向所述发射机发送所述流感知的暂停帧的装置; 用于在所述发射机处接收所述流感知的暂停帧,并对所述流感知的暂停帧进行解码以确定向所述溢出Rx FIFO发送分组的Tx FIFO的身份以及所述暂停时间值的装置;以及用于在所述暂停时间值内停止从被标识的Tx FIFO向所述溢出Rx FIFO发送帧的装置。
8. 如权利要求7所述的系统,还包括用于利用流感知的暂停帧中的预留比特来指示所述溢出Rx FIFO的身 份的装置。
9. 如权利要求7所述的方法,还包括在所述发射机和所述接收机之间进行自动协商,以判断流感知的暂停 帧是否得到支持。
10. —种用于控制发射机/接收机对之间的流的系统,所述接收机具有 用于保存将被发送的分组的RxFIFO,所述系统包括用于当所述Rx FIFO的填充水平超过阈值时,在所述Rx FIFO处生成填满指示的装置;用于响应于所述填满指示来形成指示暂停时间值的暂停帧的装置;用于中断正从所述接收机被发送的帧,并响应于暂停帧的形成而发送 特殊代码的装置;用于在所述发射机方接收所述特殊代码,并对随后的作为暂停帧的分 组作出响应的装置;以及用于在所述暂停时间值内停止从所述第一 Tx FIFO发送帧的装置。
11. 如权利要求10所述的系统,还包括用于自动协商以判断所述发射机和所述接收机是否支持所述特殊代码 的使用的装置。
12. —种用于控制发射机/接收机对之间的流的系统,所述接收机具有 多个用于保存在所述接收机处所接收的帧的Rx FIFO,而所述发射机具有 多个TxFIFO,所述接收机包括用于生成标识填充水平超过阈值的溢出RxFIFO的溢出指示的装置; 用于形成指示所述溢出Rx FIFO的身份并指示暂停时间值的流感知的 暂停帧的装置;以及用于向所述发射机发送所述流感知的暂停帧的装置。
13. —种用于控制发射机/接收机对之间的流的系统,所述接收机具有多个用于保存在所述接收机处所接收的帧的Rx FIFO,而所述发射机具有 多个TxFIFO,所述接收机包括用于在所述发射机处接收流感知的暂停帧,并对所述流感知的暂停帧 进行解码以确定向由所述流感知的暂停帧标识的溢出Rx FIFO发送分组的 TxFIFO的身份以及所述暂停时间值的装置;以及用于在所述暂停时间值内停止从被标识的Tx FIFO向所述溢出Rx FIFO发送帧的装置。
全文摘要
一种网络流控制系统采用流感知的暂停帧,该流感知的暂停帧标识将暂停的特定虚拟流。可以利用特殊代码来中断正被发送的帧,以在无需等待帧边界的情况下插入暂停帧。
文档编号H04L12/26GK101536413SQ200680010068
公开日2009年9月16日 申请日期2006年5月10日 优先权日2005年5月16日
发明者哈沙德·纳吉尔, 安库尔·辛格拉 申请人:思科技术公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1