用于调度包和/或信元的方法和设备的制作方法

文档序号:7635573阅读:169来源:国知局
专利名称:用于调度包和/或信元的方法和设备的制作方法
技术领域
本发明总的涉及输入緩冲交换机中包和/或信元的调度,更具体地, 涉及使用并行交换单元的包和信元交换设备方法。在使用并行交换单元的 交换系统中,通过增加每时间段的被调度包和/或信元的数目,提高交换 性能。
背景技术
关于大型包交换机和路由器的设计,现有技术中公知的是,在提供高 交换效率时,纯输出緩沖策略不是随着交换机维度变大而可升级的。这主 要是因为要求交换核心的操作比各个交换端口快与端口数目相当的系数 倍。由于该原因,大容量交换机通常是"输入緩冲,,类型,其中,输入和
输出端口模块通过交换单元如交叉开关(Crossbar)互连。为了克月良输入 緩冲器队头阻塞现象,每个输入端口处的緩冲器被组织成输入队列组,并 且每个输入队列专用于去往特定输出端口的包。
一个普通的输入队列交换机具有N个输入端口和M个输出端口 ,此 处N和M是整数值,其中,每个输入端口针对每个输出端口使用一个输 入队列,因此总共有N x M个输入队列。调度器标识一组匹配的输yV/输 出对,在该输入/输出对之间,包或信元通过交换单元无冲突地传输。该 交换机的吞吐效率依赖于调度算法的效率。由于该原因,目前业内采用了 基于各种形式的次最优启发式的各种调度算法。
在输入队列的交换机中,用于调度业务的三种熟知的启发式算法是 并行迭代匹配(PIM)、轮转匹配(RRM)和iSLIP。这些算法中的每个 算法通过努力挑选无冲突的输7W输出对组来试图最大化匹配效率,并且, 通常执行多次连续迭代以提高匹配效率。
PIM方法包括三个步骤请求、授权和接受。在请求步骤,NxM个 输入队列发送请求给输出端口 。在授权步骤,每个输出端口随机地授权所 收到的请求中的一个请求并且将结果通知每个输入端口 。 一个输入端口可 收到来自输出端口的许多授权,但是仅^^接受随机选择的一个授权。因此, PIM方法这样操作,即通过在第一输出仲裁(授权步骤)阶段中针对每 个输出端口随机选择候选输入。于是,在第二输入仲裁(接受步骤)阶段 中,通过采用类似的随机化策略,该系统解决了针对每个输入可选择的多 个输出之间的沖突。
RRM方法以与PIM方法类似的输出和输入仲裁阶段顺序来实现相 同的目的,除了选择是通过使用每个输出和输入端口处实现的轮转仲裁指 针以确定性方式作出的之外。
iSLIP方法以类似于RRM的方式操作,除了输出和输入轮转指针的 移动取决于成功的匹配之外,而在RRM的情况下输出和输入轮转指针的 移动是无条件的。代表性的iSLIP方法在授予Nicholas McKeown的美国 专利5,500,858号中具体描述。
在传统的交换设备中,必须解决资源仲裁。在授予Charles Thacker 的美国专利5,267,235号中具体描述了这样一种传统的资源仲裁方法,藉 此,实现请求者与服务者之间的快速的一对一匹配,从而每个服务者优选 以随机方式选择一个请求者。
在授予Man Soo Han等人的美国专利6,633,568中描述了另 一调度算 法,从而描述了二维轮转调度算法,其中,在输入緩冲交换机中作出多个 选择。
在授予Hiroshi Suzuki等人的美国专利6,813,274中描述了又一调度 算法,其通过允许每个输入多个接受,努力解决传统调度方法仅仅允许每 个输入端口 一个接受的问题。
对于这些传统调度算法中的每个调度算法,在许多输出端口为同 一输 入端口生成授权时存在同步问题。这些算法通过执行多次连续迭代来努力 ^使匹配效率最大化,并且在最坏的情况下,该算法必须重复N次以4吏N xM交换机收敛。而且,就每时间单元的调度决策而言,这些多次迭代 降低了交换性能。
本发明涉及克服或者至少减少 一个或多个上述问题的影响。

发明内容
根据本发明的至少一个方面,提供了在交换机中调度数据的方法,该 交换机包括多个输入端口、多个交换单元和多个输出端口,其中每个输入
端口都具有至少一个输入队列。该方法包括a)每个输入端口生成向在 输入端口等候的数据将发往的每个输出端口输出数据的请求,其中,该请 求标识用于将数据从对应的输入端口传送到对应的输出端口的多个交换 单元中的一个交换单元,多个交换单元中被标识的一个交换单元根据第一 优先级方案标识。该方法还包括b)每标识的交换单元、每输出端口地 向步骤a)中生成的请求授权访问,该授权基于第二优先级方案。该方法 还包括c)每交换单元、每输入端口地接受授权,该接受基于第三优先 级方案。该方法还包括d)基于接受的授权,利用在接受的授权中标识 的对应的交换单元,将数据^M目应的输入端口输出到相应的输出端口 。
根据本发明的另一方面,提供了用于调度数据的系统。该系统包括交 换机,该交换机包括多个输入端口,每个输入端口都具有至少一个输入队 列。该交换机又包括多个交换单元,其可通信地连接到所述多个输入端口 。 该交换机还包括多个输出端口,其可通信地连接到所述多个交换单元。该 交换机还包括调度器,其被配置成a)每个输入生成向该数据将^L往 的每个输出端口输出存储在每个输入端口的输入队列中的数据的请求,其 中,该请求包括标识多个交换单元中的哪些交换单元将被用于从对应的输 入端口到对应的输出端口的数据传送,多个交换单元中被标识的一个交换 单元根据第一优先级方案标识;b)按照标识的交换单元中的每个、按照 每个输出端口向所生成的请求授权访问,该授权基于第二优先级方案;c) 每交换单元、每输入端口地接受授权,该授权基于第三优先级方案;以及 d)基于所接受的授权,利用在接受的授权中标识的对应的交换单元,指 示对应的输入端口将数据从对应的输入端口的对应输入队列输出到对应 的输出端口。
根据本发明的又一方面,提供了用于交换机的调度包或信元的方法, 该交换机包括多个输入端口、多个交换单元和多个输出端口,其中每个输 入端口都具有至少一个输入队列。该方法包括a)每个输入端口生成向
在输入端口等候的数据将M往的每个输出端口输出数据的请求,其中, 该请求包括标识将被用于将包或信元从对应的输入端口传送到对应的输 出端口的多个交换单元中的一个交换单元,多个交换单元中被标识的一个 交换单元才艮据笫一优先级方案标识。该方法还包括b)按照所述交换单 元的至少一个中的每个、按照每个输出端口向步骤a)中生成的请求授权 访问,该授权基于第二优先级方案。该方法还包括c)按照所述交换单 元的至少一个中的每个、按照每个输入端口接受授权,该接受基于第三优 先级方案。该方法还包括d)基于接受的授权,利用在接受的授权中标
识的对应的交换单元,将包和/或信元>^目应的输入端口输出到相应的输 出端口。
根据本发明的另一方面,提供了用于调度包或信元的系统。该系统包 括交换机,该交换机包括多个输入端口,每个输入端口都具有至少一个输 入队列。该交换机又包括多个交换单元,其可通信地连接到所述多个输入 端口。该交换机还包括多个输出端口,其可通信地连接到所述多个交换单
元。该交换机还包括调度器,其被配置成a)接收由至少一个输入单元 生成的请求,该请求用以输出存储在输入端口的输入队列中的数据给该数 据将发往的每个输出端口,其中,该请求包括标识多个交换单元中的哪些 交换单元将被用于从对应的输入端口到对应的输出端口的包或单元的传 送,多个交换单元中被标识的交换单元根据第一优先级方案标识;b)按 照所述交换单元的至少一个中的每个、按照每个输出端口向步骤a)中生 成的请求授权访问,该授权基于第二优先级方案;c)按照所述交换单元 的至少一个中的每个、按照每个输入端口接受授权,该授杈基于第三优先 级方案;以及d)基于所接受的授权,利用在接受的授权中标识的对应的 交换单元,将包和/或信元W目应的输入端口输出到对应的输出端口 。


参考以下具体描述和附图,本发明的上述优点和特征将变得明显,其

图1示出了根据本发明第一实施例的交换系统;
图2示出了根据本发明一实施例的调度方法中涉及的步骤;
图3示出了根据本发明一实施例的调度设备的框图4示出了由根据本发明一实施例的调度设备执行的四次迭代处理;
图5示出了由根据本发明另一实施例的调度设备执行的四次迭代处
理;
图6示出了根据本发明另一实施例的调度方法中涉及的步骤。
具体实施例方式
本发明实施例涉及具有并行交换单元的交换系统和方法,藉此,通过
允许每个输出端口在每次调度器迭代生成多个授权,并且通过允许每个输 入端口在每次调度器迭代接受多个授权,来提高交换性能。这不同于传统
的调度算法如iSLIP、 PIM和RRM,其仅仅允许每个输出和输入端口在 每次调度器迭代分别生成和接受一个授权。
与传统调度算法相比,根据本发明至少一个实施例的方法和设备改变 请求步骤,以指定每个请求所请求的是多个并行交换单元中的哪个交换单
元;其改变授权步骤以允许生成多至针对每输出端口的每个并行交换单元
一个授权,并且其改变接受步骤以允许接受多至针对每输入端口的每个并 行交换单元一个授权。这意味着每个输入和输出端口在每次调度器迭代可 以交换多个包或信元,其增加了每时间单元的包或信元调度决策的数目。 结果,这增加了使用并行交换单元的交换系统中的调度器匹配效率和交换容量。
而且,根据本发明至少一个实施例的方法和设备使得包和信元税
(packet and cell tax)交换无效率减少,因为每个交换决策的时间段减少 了。更进一步,根据本发明至少一个实施例的方法和设备提供了交换大小 可变的包和大小固定的信元二者的能力,而不需要采取包分段和重组。
图1示出了结合了根据本发明至少一个实施例的调度方法和设备的 NxM端口交换设备(N和M是整数值)。N个输入端口 100中的每个输 入端口接收包和/或信元,并且根据其输出端口目的地将其緩冲在输入队 列180中,其中,输出端口目的地是通过输出链路150分别连接到M个 输出单元140的M个输出端口 150之一。每个输入单元110和输出单元 140连接到若干(K个)并行交换单元120。
输入单元110经由输入链路160连接到交换单元120,并且输出单元 140经由输出链路170连接到交换单元120。输入单元# 1连接到K个并 行交换单元120中的每个交换单元上的输入# 1 ,输入单元# 2连接到K 个并行交换单元120中的每个交换单元上的输入#2,...,以及输入单元 # N连接到K个并行交换单元120中的每个交换单元上的输入# N。类似 地,输出单元# 1连接到K个并行交换单元120中的每个交换单元上的输 出# 1 ,输出单元# 2连接到K个并行交换单元120中的每个交换单元上 的输出#2,…,以及输出单元弁N连接到K个并行交换单元120中的每 个交换单元上的输出#N。交换单元通过彼此并行地起作用而在功能上彼 此不同,如下所述。下面将描述实际建立调度器单元的示例性方法。
本发明一实施例的调度方法优选为合并到调度器单元中,并且该调度
器单元可在输入单元110、输出单元140或交换单元120中的4壬何一个中 实现。可替选地,调度器单元可合并到图1中未具体示出的单独的单元中。 在一个可能的实现中,调度器单元被并入交换单元120之一中或者作为单 独的单元。调度器单元执行来自输入队列180的包和/或信元的调度,在 最终转发到其目的输出端口 150前,穿过交换单元120,用于交换到输出 单元140。
图2是示出了由根据本发明第一实施例的调度方法所执行的步骤的 流程图。第一步骤200是连续地将到达输入端口的包和/或信元载入输入 队列,从该队列可生成针对特定输出端口的请求。下一步骤210是针对存 在于每个输入队列前端的每个包或信元,请求访问特定的输出端口。下一 步骤220是向所述请求授权输出端口 。下一步骤230针对输入端口接受来 自输出端口的授权。下一步骤240是生成输入到输出交换M分配决策并 且经由交换单元将包/信元传输到其目的输出端口。接着重复该过程,藉 此,其返回步骤210以调度另一信元或包。
在第一实施例中,这三个步骤中的每个步骤在每个调度器迭代执行一 次,其中每个步骤在下面具体描述。
步骤1 (请求步骤)每个输入端口生成针对所有这样的输出端口的 请求,针对该输出端口,该输入端口具有数据等候在输入队列中。从输入 到输出端口的每个请求指定特定的交换单元,并且每个输入端口对每个输 出端口使用旋转优先级方案以选择哪个并行交换单元来请求输出端口 。
旋转优先级方案选择具有最高优先级的交换单元。其后,最高优先级 的指示增大,使得上一迭代的最高优先级元素在随后的迭代中变成最低优 先级元素。优选地,只有当请求导致了步骤2中的授权生成,其随后在步 骤3中祐L接受的情况下,增大步骤才执行,因为it^由调度器执行的交换 单元选择决策之间产生期望的去同步作用。
在第一实施例中执行的请求步骤与传统的PIM、 iSLIP或RRM方法 中的请求步骤之间的差别在于,对于这些传统的方法,由任一输入端口生 成的所有请求总是针对相同的一个交换单元,而在根据第一实施例的方法 中,请求是针对许多并行交换单元中的一个交换单元。而且,在第一实施 例中,旋转优先级方案用于每输出端口每请求地标识并行交换单元中的哪 个交换单元被请求。在第一实施例中使用的旋转优先级方案可以是轮转优 先级方案,或者是记住前面的调度迭代中在输入单元、交换单元和输出单 元之间作出的分配的其它类型的优先级方案。例如,就本发明一不同的实
施例而言,在后面部分说明了随机优先级方案。
步骤2 (授权步骤)在请求步骤之后,每交换单元每输出端口地授 权访问。与关于请求步骤(步骤l)的上述旋转优先级方案类似,每交换 单元、每输出端口地使用旋转优先级来选择来自输入端口的请求。旋转优 先级方案仅仅考虑特别针对相对应的交换单元作出的请求。优选地,只有 在授^M目应地在步骤3中被接受的情况下,增大步骤才执行,因为这在由 调度器执行的授权选择决策之间产生期望的去同步作用。
所有从特定输出端口生成的授权用于不同的输入端口 ,因为每个输入 端口针对每个输出端口仅可以请求一个交换单元。
在第一实施例中执行的授权步骤与传统的PIM、 iSLIP或RRM方法 中的授权步骤之间相比较的差别在于,在这些传统的方法中,每个输出端 口仅仅针对一个输入端口授权访问,而在根据第一实施例的方法中,每个 输出端口可以针对每个并行交换单元的输入端口授权访问。换句话说,根 据本发明的至少一个实施例,输出端口可以通过使用并行交换单元有效地 向多个输入端口授权访问。
步骤3(接受步骤)在授权步骤之后,下一步骤是每交换单元每输 入端口地接受授权。每交换单元每输入端口地使用旋转优先级方案来选择 来自输出端口的授权,与上述旋转优先级方案类似。旋转优先级方案仅仅 考虑特别针对相对应的交换单元作出的请求。在接受决策之后,优先级增 加超过接受的优先级元素的 一个值。
要注意的是,因为每个输出端口针对每个输入端口仅仅可以授权一个 交换单元,所以,针对一个特定输入端口作出的所有接受决策;l一针对不同 输出端口的。
在第一实施例中执行的接受步骤与传统的PIM、 iSLIP或RRM方法 中的接受步骤之间相比较的差别在于,在这些传统的方法中,每个输入端 口仅仅接受来自一个输出端口的单个授权,而在根据第一实施例的方法 中,每个输入端口可以接受来自输出端口的针对每个并行交换单元的授 权。换句话说,根据本发明的至少一个实施例,输入端口通过使用并行交 换单元可以有效地接受来自多个输出端口的授权。
在步骤3之后,最后的处理是根据步骤3中接受的授权,分配对应的 输入和输出交换单元链路,并且将对应的包和/或信元经由其对应的分配 的交换单元而传输到其目的输出端口 。
如果该交换设^5l仅实施单个交换单元,即,没有并行交换单元,则 根据第一实施例的方法的操作变得类似于iSLIP调度器算法的操作,除了 在第一实施例的一个可能的实现中,调度器可以用于交换大小可变的包而 不需要采取包分^/重组,不像iSLIP,其仅仅适用于信元(大小固定的包) 的交换。下面说明应用本发明一实施例来交换大小可变的包和大小固定的 包。
以下实例进一步阐述了本发明各个实施例的操作。
图4示出了图2的调度方法的四次迭代,其针对这样的交换机执行, 该交换机具有两个输入端口、两个输出端口,其中,标记为a和b的两个 并行交换单元连接输入端口和输出端口。该实例系统对应于如图1限定的 系统,其中,N=2, M=2,并且K-2。图4中还示出请求指针410、请求 420、授权指针430、授权440、接受指针450以及接受460。
图4示出了在每次迭代中对应于图2中步骤210的请求步骤、对应于 图2中220的授权步骤以;5Uit应于图2中230的接受步骤。在四次迭代中 的每次迭代的开始,在该系统中,每个输入单元110具有针对每个输出单 元140 (因此,针对每个输出端口 )在输入队列180中等候的数据。
图4所示调度算法的请求生成是通过每(输入、输出)端口组^^吏用 二值旋转优先级方案来选择应该请求开关单元a和b中的哪个开关单元而 实现的。授权生成是通过交换单元(a、 b)上每输出端口使用二值旋转优 先级方案来从输入端口 1或2中选择一个请求而实现的。接受生成是通过 交换单元(a、 b)上每输入端口使用二值旋转优先级方案来从输出端口 1 或2中选择一个授权而实现的。
迭代1期间的处理以每个输入请求访问输出1和2开始,并且旋转优 先级方案针对每个请求确定该请求是针对交换单元a还是b作出的,如同 由请求指针410的值所确定的那样。输入l经由交换单元a请求输出1, 并且经由交换单元a请求输出2。输入2经由交换单元a请求输出1,并 且经由交换单元a请求输出2。在迭代1中,请求指针410总是指向交换 8。
在请求步骤之后是授权步骤,其中,交换单元a、 b上的每个输出选 择来自一个输入端口的一个请求,并且旋转优先级方案针对交换单元a 和b上的每个输出确定授权是针对输入1还是2作出的,如同由授权指针 430的值所确定的那样。输出2经由交换单元a授权输入1,并且输出1经由交换单元a授权输入1 。
在授权步骤之后是接受步骤,其中,交换单元a和b上的每个输入选 择来自一个输出端口的一个授权,并且旋转优先级方案针对交换单元a 和b上的每个输入确定接受是针对输出1还是2作出的,如同接受指针 450的值所确定的那样。输入1经由交换单元a从输出1接受授权,并且 对应的信元或包于是经由交换单元a传输到其目的输出端口 。
现在,处理继续进行到迭代2。由于迭代l中的处理结果,(输入l、 输出l)的请求指针现在已经从交换单元a增加到交换单元b,而没有导 致在步骤3 (图2中的步骤230)中接受的其它请求指针保持与迭代1开 始时相同的值。交换单元a上的输出1的授权指针已经从输入1增加到输 入2,而没有导致在步骤3 (图2中的步骤230 )中接受的其它授权指针 保持与迭代1开始时相同的值。交换单元a上的输入1的接受指针已经从 输出1增加到输出2,而没有导致在步骤3 (图2中的步骤230)中接受 的其它接受指针保持与迭代1开始时相同的值。
用于迭代2的请求步骤与用于迭代1的相同,除了由于迭代l中执行 的请求指针更新的原因,输入1经由交换单元b请求输出1之外。在授权 步骤,对输入1和输入2两者作出授权,并且输入l经由交换单元a和b 两者接收授权,这是由于迭代l中请求和授权指针的更新,并且由于迭代 l中发生的指针更新,所以,所有授权再次在接受步骤中被接受。
图5示出了根据本发明第二实施例的次最优调度方法,以示出请求指 针的去同步的优点。在图5中,在每次迭代,请求指针总是自动被更新, 而在图4中,只有在对应的请求在同一迭代中被接受的情况下,请求指针 才被更新。通过比较图4和图5,可以看出请求指针的去同步导致每次迭 代的更高的匹配效率,即第一实施例的期望的特征。
可以看出,在根据第一实施例的方法中,输入将经由特定交换单元持 续请求输出端口,直到请求最后被授权,其导致期望的、相对于并行交换 单元中的哪些交换单元被请求同 一输出端口的不同输入端口所选择的去 同步作用。用于对应的生成的请求的并行交换单元的分布越均匀,则每次 迭代的匹配效率越好,因为在每次调度器迭代,更大量的并行匹配单元可 以得到匹配。
在上文中,已经具体描述了根据第一实施例的发明的总的方法。下面 的讨论描述用于实现本发明实施例的不同选项和方法。图3示出了根据本发明第三实施例的调度器单元的一个可能实施例 的框图。在一个可能实施例中,图3所示的每个块以软件实现;可替选地, 由块实现的某些特征可以由硬件实现,如通过方案i殳计或通过石更件描述语 言(HDL)并且以可编程逻辑器件的方式实现(例如,现场可编程门阵 列/CPLD或专用集成电路)。根据第三实施例的调度器可以被配置成执行 根据上下文中描述的任何实施例的方法。每输入300的每输入队列的队列 状态310被转发给请求块320,在图l所示的系统中的每输入端口实现请 求块320。每个请求块320连接到授权块340,在图l所示的系统中的每 输出端口实现授权块340。从请求块330到授权块340的每个连接可以传 送针对一个并行交换单元的一个请求330,并且请求块320可以生成多至 总共每次调度器迭代每个授权块340 —个请求。
每个授权块340连接到接受块360,在图l所示的系统中的每输入端 口实现接受块360。从授权块到接受块的每个连接可以传送针对一个并行 交换单元的一个授权350,并且授权块340可以生成多至总共在每次调度 器迭代中每个并行交换单元一个授权。每个接受块360连接到确认块380, 在图l所示系统中的每输入端口实现确认块380。从接受块到确认块的每 个连接可以传送多至针对图1所示系统中的每个并行交换单元一个接受 370,并且接受块360可以生成多至总共针对每次调度器迭代每个并行交 换单元一个接受。
确认块380执行图2所示的步骤240的处理,其通过生成确认命令,
输出端口的传输,其中,确认命令被传递回输入队列以开始对队头包或信 元从对应的输入队列的传输。确认块还连接到交换单元可用性块396,交 换单元可用性块396维持所有交换单元输入和输出链路(图1中的160和 170)的分配状态。在输入和输出链路的分配之后,^皮分配的输入和输出 链路的可用状态根据各个包或信元的长度而被更新。在优选实施例中,包 和信元的大小未被步骤1、 2和3使用,而是仅仅被交换单元可用性块396 使用。
如果信元和包具有可变大小,则图3中的交换单元分配块396维持系 统中每单个链路的输入和输出链路状态为每个传输的单个包或信元的长 度的函数,如同本发明第三实施例中所实现的那样。在第三实施例的请求 步骤中,只有对应的输入链路到输出链路可用的交换单元才被交换单元的 旋转优先级方案选择所考虑。否则,所有其它步骤与上述第一实施例相同。
可替选地,如果包和信元都具有相同的大小(即,大小固定的包/信
元),则不需要图3中所示的交换单元可用性块396。在这种情况下,在 请求步骤l的开始,所有输入和输出链路被筒单地认为是可用的,并且生 成一组分配决策所用的时间段与输入或输出链路上的大小固定的信元/包 单元的传输时长尽量接近地对准。
图3所示的调度器与传统iSLIP调度器具有总的类似之处,因此,下 面具体描述图3所示的调度器与iSLIP调度器之间的差别。在iSLIP调度 器算法中,请求和授权块之间的每个连接并不标识特定交换单元(因为只 有一个交换单元可用),而是仅仅标识是否存在请求。同样,在iSLIP调 度器算法中,授权和接受块之间的每个连接并不标识特定交换单元(因为 只有一个交换单元可用),而是仅仅标识是否存在授权。此外,与iSLIP 方法相比,对于图3所示的调度器,每调度器迭代每授权块生成的授权的 数目也不同,因为iSLIP每调度器迭代生成一个授权,而根据图3的调度 器,每调度器迭代生成多至每并行交换单元一个授权。在接受块和确认块 之间的连接也存在这个不同。
作为图3所示第三实施例的调度器的替选,在第四实施例中,调度器 在作为授权步骤的一部分的授权块中执行交换单元的选择,而不是在作为 请求步骤的一部分的请求块中执行交换单元的选择。在第四实施例中,每 (输入、输出)端口组合限定的旋转优先级交换单元请求指针由授权块而 不是请求块来维持和更新。对于第四实施例,交换单元可用性馈iH^授权 块,而不是如同3所示那样馈iH^请求块中。
图6是示出了根据本发明第五实施例的调度方法的流程图,其在每个 分配决策时段使用多个迭代。通常,根据第五实施例的方法与结合图2 所示第一实施例描述的方法一致。但是,图2的方法假设在一个调度器分 配决策时段期间,即调度器分配决策的生成之间的时隙时段期间,^f5l仅一 个对应于请求、授权和接受步骤的迭代被执行。图6的方法在步骤500 中测试,以确定是否已经到达时隙的终点或者在终止的阈值范围内。如果 是,则在步骤510中,对应的包和/或信元经由其对应的被分配的交换单 元而传输到其目的输出端口。如果否,则在步骤520中,承诺的并行交换 单元的输入和输出链5§4皮掩去,并且执行新的迭代。换句话说,如果已经 向一个请求分配了一个输入到输出交换路径,则该请求在以下迭代中不予考虑。
根据本发明的调度方法的第六实施例扩展了本发明的基本技术,以包
括多个优先级等级的请求。在第六实施例中,每个输入单元针对每输出端 口建立的每个优先级等级维持单独的输入队列。这意味着对于具有P个优
先级等级(P为整数值)的N x M交换机,每个输入单元维持P x M个队列。 第六实施例中使用的优先级化的技术可以进行如下限定
步骤1 (请求步骤)每个输出端口请求被扩展成包括优先级等级。 当一个输入生成针对特定输出端口、特定交换单元的请求时,该请求的优 先级设置成等于与特定输出端口相关联的最高优先级非空输入队列。
步骤2 (授权步骤)当一个输出端口收到针对特定交换单元的请求 时,其确定该请求的最高优先级等级,并且该输出端口接着授权所收到的 具有所确定的优先级等级的请求中的一个请求。输出端口每交换单元每优 先级等级地使用与以前相同的旋转优先级方案。当 一授权传递给输入端口 时,该授权包括所选的优先级等级。像以前一样,只有在该授;M目应地在 步骤3 (图2中的步骤230)中被接受的情况下,才执行增加步骤。该操 作像以前一样针对每输出端口的每个并行交换单元来执行。
步骤3(接受步骤)当一个输入端口接收针对特定交换单元的授权 时,其确定该授权的最高优先级等级,并且该输入端口接着接受所收到的 具有所确定的优先级等级的授权中的一个授权。该输入端口每交换单元每 优先级等级地使用与以前相同的旋转优先级方案。该操作像以前一样针对 每输入端口的每个并行交换单元来执行。
本发明第七实施例实现若干旋转优先级授权机制,其少于每输出端口 每交换单元一个旋转优先M权机制。换句话说,第七实施例使用每输出 端口少于K个旋转优先级授权机制(K是交换单元的数目),因为一个旋 转优先级授权机制可以用于覆盖两个或更多交换单元。因此,可以在任何 地方实现每输出端口从2到K个旋转优先,权机制。
在第七实施例中,针对给定输出端口的旋转优先级请求选择在来自针 对并行交换单元组的输入端口的请求之间选择,而不是在针对仅仅单个交 换单元的请求之间选择。依赖于实现,由旋转优先级请求选择所覆盖的组 中的交换单元的数目可以在从2到并行交换单元数目的范围内。每调度迭 代每输出可以生成的授权的最大数目等于每输出端口所执行的旋转优先 级请求选择的数目。针对一个输出端口执行的多个旋转优先级请求选择不 需要覆盖相同数目的并行交换单元。对于由旋转优先级请求选择结果生成 的每个授权,与该授权相关联的交换单元设置成等于所选请求的交换单 元。
本发明第八实施例实现若干旋转优先级接受机制,其少于每输入端口 每交换单元一个旋转优先级接受机制。换句话说,第八实施例使用每输入
端口少于K个旋转优先级接受机制(K是交换单元的数目),因为一个旋 转优先级接受机制可以用于覆盖两个或更多交换单元。因此,可以在任何 地方实现每输入端口从2到K个旋转优先级接受机制。
在第八实施例中,针对给定输入端口的旋转优先级授权选"^在来自针 对并行交换单元组的输出端口的授权之间选择,而不是在针对仅仅单个交 换单元的授权之间选择。依赖于实现,由旋转优先级授权选择所覆盖的组 中的交换单元的数目可以在从2到并行交换单元数目的范围内。每调度迭 代每输入可以生成的接受的最大数目等于每输入端口执行的旋转优先级 授权选择的数目。针对一个输入端口执行的多个旋转优先级授权选择不需 要覆盖相同数目的并行交换单元。对于由旋转优先级授权选择结果生成的 每个接受,与该接受相关联的交换单元设置成等于所选授权的交换单元。
本发明第九实施例实现若干(例如R个,其中,R是整数值)旋转 优先权授权机制,其少于每输出端口每交换单元一个旋转优先级授权机 制,以及若干(例如S个,其中,S是整数值)旋转优先级接受机制,其 少于每输入端口每交换单元一个旋转优先级授权机制。在第九实施例中, 依赖于特定实现,S可设置成等于R,或者它们可具有不同的值。
本发明第十实施例在大多数方面类似于第一实施例,但是,其使用"随 机选择"优先级方案,而不是旋转优先级方案。在第十实施例的步骤l(请 求步骤)中,每个输入端口在所有并行交换单元中均匀、随机地选^r哪个 并行交换单元来请求输出端口。在步骤2 (授权步骤)中,每交换单元的 每个输出端口在所有的接收到的请求中均匀、随机地选#*求。在步骤3 (接收步骤)中,每交换单元的每个输入端口在所有的接收到的授权中均 匀、随机地选择授权。"随机选择"方案也可以与本发明的其它实施例一 起使用,作为相对于其它实施例描述的"旋转优先级"方案的替选方案。
这样,已经描述了根据本发明各个实施例的设备和方法。可以对这里 描述和图示的技术和结构进行许多修改和变化而不背离本发明的精神和 范围。因此,应该理解,这里所述的方法和i殳a仅是示例性的,并且不 限制本发明的范围。根据本发明任何实施例的调度方法和系统可以用于网 络互联交叉结构和方法,如2004年7月26曰提交的美国专利申请第 10/898,540号中所描述的,该专利申请的全部内容通过引用结合于此。
权利要求
1.一种使用交换机调度数据的方法,所述交换机包括多个输入端口、多个交换单元和多个输出端口,其中,每个所述输入端口都具有至少一个输入队列,所述方法包括a)由具有存储待发送数据的至少一个队列的每个输入端口基于每队列生成向所述输入端口中的数据待发往的每个所述输出端口输出数据的请求,其中,所述请求包括用于将数据从对应的输入端口传送到对应的输出端口的所述多个交换单元中的一个交换单元,所述多个交换单元中被标识的一个交换单元根据第一优先级方案标识;b)按照步骤a)中标识的交换单元中的每个、按照每输出端口授权访问,所述授权基于第二优先级方案;c)按照步骤a)中标识的交换单元中的每个、按照每输入端口接受授权,所述接受基于第三优先级方案;以及d)基于所接受的授权,利用在步骤a)中标识的对应的交换单元,将数据从相应的输入端口输出到相应的输出端口。
2. 根据权利要求l所述的方法,其中,每个所述交换单元具有N个 输入端口和M个输出端口, N和M是正整数,并且,其中每个所述交换 单元能够将来自所述N个输入端口中任一输入端口的包或信元交换到所 述M个输出端口中的任一输出端口。
3. 根据权利要求1所述的方法,其中,所述交换单元以彼此并行的 关系设置。
4. 根据权利要求1所迷的方法,其中,所迷第一、第二和第三优先 级方案;i相同类型的优先级方案。
5. 根据权利要求1所述的方法,其中,通过在所述输入端口之间选 择,每交换单元、每输出端口地实现一个授权优先级方案。
6. 根据权利要求1所述的方法,其中,通过在所述输出端口之间选 择,每交换单元、每输入端口地实现一个接受优先级方案。
7. 根据权利要求1所述的方法,其中,通过在所述交换单元之间选 择,每输出端口、每输入端口地实现一个请求优先级方案。
8. 根据权利要求1所述的方法,其中,所述第一、第二和第三优先 级方案中至少一个是轮转、旋转优先级方案。
9. 根据权利要求1所述的方法,其中,所述将被传送的数据是大小 可变的包。
10. 根据权利要求l所述的方法,其中,在相应的授权已经在所述接 受步骤c)中净皮接受之后,在所述输出步骤d)中,通过向已经被接受的 相应的授权中使用的交换单元分配优先级值,以使其具有相对于未被使用 的交换单元更低的优先级值,并且返回到所述请求步骤a),从而重复所 述方法。
11. 根据权利要求10所述的方法,其中,所述输出步骤d)在已到 达时隙终点时启动。
12. 根据权利要求9所述的方法,其中,在大小可变的包使用所述交 换单元的一个从所述输入端口的一个被交换到所述输出端口的一个的时 间期间,优先级值被分配给所述交换单元中的所述一个,以使其具有比最 低可接受的优先级值低的值,使得所述交换单元的所述一个不能用在随后 的用于从所述输入端口的所述一个传送包或信元的请求中,直到所述大小 可变的包已经完成到所述输出端口的所述一个的传送。
13. 根据权利要求12所述的方法,其中,在所述交换单元的所述一 个将大小可变的包从所述输入端口的所述一个传送到所述输出端口的所 述一个的时间期间,所述输入端口的任何其它输入端口能够使用所述交换 单元的所述一个来传送包或信元。
14. 根据权利要求2所述的方法,其中,所述多个输入端口在数目上 对应于N,并且所述多个输出端口在数目上对应于M,并且,其中N等 于M。
15. 根据权利要求2所述的方法,其中,所述多个输入端口在数目上 对应于N,并且所述多个输出端口在数目上对应于M,并且,其中N大 于M。
16. 根据权利要求2所述的方法,其中,所述多个输入端口在数目上 对应于N,并且所述多个输出端口在数目上对应于M,并且,其中N小 于M。
17. —种用于调度数据的系统,包括 交换机,其包括多个输入端口 ,每个具有至少一个输入队列; 多个交换单元,其可通信地连接到所述多个输入端口 ; 多个输出端口,其可通信地连接到所述多个交换单元;以及 调度器,其被配置成a) 接收由至少一个所述输入端口生成的请求,基于每队列作出的所 述请求用以将存储在所述输入端口的输入队列中的数据输出到所述输入 端口中的数据将发往的每个所述输出端口,其中,所述请求包括标识所述 多个交换单元中的哪些交换单元将被用于将数据从对应的输入端口传送 到对应的输出端口 ,所述多个交换单元中的被标识的交换单元才艮据第一优 先级方案标识;b) 按照标识的交换单元中的每个、按照每个输出端口向所生成的请 求授权访问,所述授权基于第二优先级方案;c) 按照标识的交换单元中的每个、按照每个输入端口接受授权,所 述接受基于第三优先级方案;以及d) 基于所接受的授权,通过利用在所接受的授权中标识的对应的交 换单元,指示对应的输入端口将数据从对应的输入端口的对应的输入队列 输出到对应的输出端口。
18. 根据权利要求17所述的系统,其中,每个所述交换单元具有交 叉开关结构。
19. 根据权利要求17所述的系统,其中,所述交换单元以彼此并行 的关系设置。
20. 根据权利要求17所述的系统,其中,所述第一、第二和第三优 先级方案是相同类型的优先级方案。
21. 根据权利要求17所述的系统,其中,通过在所述输入端口之间 选择,每交换单元、每输出端口地实现一个授权优先级方案。
22. 根据权利要求17所述的系统,其中,通#所述输出端口之间 选择,每交换单元、每输入端口地实现一个接受优先级方案。
23. 根据权利要求17所述的系统,其中,通it^所述交换单元之间 选择,每输出端口、每输入端口地实现一个请求优先级方案。
24. 根据权利要求27所述的系统,其中,所述第一、笫二和第三优 先级方案中至少一个是轮转、旋转优先级方案。
25. 根据权利要求17所述的系统,其中,待传送的所述数据是大小 可变的包。
26. 根据权利要求17所述的系统,其中,在大小可变的包使用所述 交换单元的一个从所述输入端口的一个净皮交换到所述输出端口的一个的 时间期间,优先级值被分配给所述交换单元的所述一个,以使其具有比最 低可接受的优先级值低的值,使得所述交换单元的所述一个不能用在随后 的用于从所述输入端口的所述一个传送包或信元的请求中,直到所述大小 可变的包已经完成到所述输出端口的所述一个的传送。
27. 根据权利要求26所述的系统,其中,在所述交换单元的所述一 个将大小可变的包从所述输入端口的所述一个传送到所述输出端口的所 述一个的时间期间,所述输入端口的任何其它输入端口能够使用所述交换 单元的所述一个来传送包或信元。
28. 根据权利要求17所述的系统,其中,所述多个输入端口在数目 上对应于N,并且所述多个输出端口在数目上对应于M,并且,其中N 等于M。
29. 根据权利要求17所述的系统,其中,所述多个输入端口在数目 上对应于N,并且所述多个输出端口在数目上对应于M,并且,其中N 大于M。
30. 根据权利要求17所述的系统,其中,所述多个输入端口在数目 上对应于N,并且所述多个输出端口在数目上对应于M,并且,其中N 小于M。
31. —种使用交换机调度数据的方法,所述交换机包括多个输入端口 、 多个交换单元和多个输出端口,其中,所述输入端口中的每个都具有至少 一个输入队列,所述方法包括a) 由在其至少一个队列中具有数据的每个输入端口生成向数据待发 往的每个所述输出端口输出数据的请求,其中,所述请求标识用于将数据从对应的输入端口传送到对应的输出端口的所述多个交换单元中的一个 交换单元,所述多个交换单元中被标识的一个交换单元根据第一优先级方 案而被标识;b) 基于步骤a)中作出的请求,按照步骤a)中标识的所述交换单元 中的至少一个中的每个、按照每个输出端口授权访问,所述授M于笫二 优先级方案;c) 按照步骤a)中标识的所述交换单元中的至少一个中的每个、按 照每个输入端口接受授权,所述接受基于第三优先级方案;以及d) 基于所接受的授权,利用所述在步骤a)中标识的对应的交换单 元,将数据^f目应的输入端口输出到相应的输出端口。
32. 根据权利要求31所述的方法,其中,每个所述交换单元具有N 个输入端口和M个输出端口, N和M是正整数,并且,其中每个所述交 换单元能够将来自所述N个输入端口中任一输入端口的包或信元交换到 所述M个输出端口中的任一输出端口。
33. 根据权利要求31所述的方法,其中,所述交换单元以彼此并行 的关系设置。
34. 根据权利要求31所述的方法,其中,所述第一、第二和第三优 先级方案是相同类型的优先级方案。
35. 根据权利要求31所述的方法,其中,通过在所述输入端口之间 选择,每交换单元、每输出端口地实现一个授权优先级方案。
36. 根据权利要求31所述的方法,其中,通过在所述输出端口之间 选择,每交换单元、每输入端口地实现一个接受优先级方案。
37. 根据权利要求31所述的方法,其中,通过在所述交换单元之间 选择,每输出端口、每输入端口地实现一个请求优先级方案。
38. 根据权利要求31所述的方法,其中,所述第一、第二和第三优 先级方案中至少一个^_轮转、旋转优先级方案。
39. 根据权利要求31所述的方法,其中,所述要传送的数据是大小 可变的包。
40. 根据权利要求31所述的方法,其中,在相应的授权已经在所述 接受步骤c)中被接受之后,所述输出步骤d)中通过向已经被接受的相 应授权中使用的所述交换单元分配优先级值,以使其具有相对于未,皮使用 的所述交换单元更低的优先级值,并且返回到所述请求步骤a),从而重 复所述方法。
41. 根据权利要求40所述的方法,其中,所述输出步骤d)在已到 达时隙终点时启动。
42. 根据权利要求39所述的方法,其中,在大小可变的包使用所述 交换单元的一个从所述输入端口的一个被交换到所述输出端口的一个的 时间期间,优先级值被分配给所述交换单元的所述一个,以使其具有比最 低可接受的优先级值低的值,使得所述交换单元的所述一个不能用在随后 的用于从所述输入端口的所述一个传送包或信元的请求中,直到所述大小 可变的包已经完成到所述输出端口的所述一个的传送。
43. 根据权利要求42所述的方法,其中,在所述交换单元的所述一 个将大小可变的包从所述输入端口的所述一个传送到所述输出端口的所 述一个的时间期间,所述输入端口的任何其它输入端口能够使用所述交换 单元的所述一个来传送包或信元。
44. 根据权利要求32所述的方法,其中,所述多个输入端口在数目 上对应于N,并且所述多个输出端口在数目上对应于M,并且,其中N 等于M。
45. 根据权利要求32所述的方法,其中,所述多个输入端口在数目 上对应于N,并且所述多个输出端口在数目上对应于M,并且,其中N 大于M。
46. 根据权利要求32所述的方法,其中,所述多个输入端口在数目 上对应于N,并且所述多个输出端口在数目上对应于M,并且,其中N 小于M。
47. —种用于调度lt据的系统,包括 交换机,其包括多个输入端口 ,每个具有至少一个输入队列;多个交换单元,其可通信地连接到所述多个输入端口 ;多个输出端口,其可通信地连接到所述多个交换单元;以及调度器,其被配置成a)接收由至少一个所述输入端口生成的请求,基于每队列作出的所 述请求用以将存储在所述输入端口的输入队列中的数据输出到所述输入 端口中的数据要发往的每个所述输出端口 ,其中,所述请求包括标识所述 多个交换单元中的哪些交换单元将被用于将数据从对应的输入端口传送 到对应的输出端口 ,所述多个交换单元中被标识的交换单元根据第一优先 级方案标识; b) 按照标识的交换单元中的至少一个中的每个、按照每输出端口向步骤a)中作出的所述请求授权访问,所述授权基于第二优先级方案;c) 按照标识的交换单元中的至少一个中的每个、按照每输入端口接 受授权,所述接受基于第三优先级方案;以及d) 基于所接受的授权,通过利用在所接受的授权中标识的对应的交 换单元,将数据^目应的输入端口输出到相应的输出端口。
48. 根据权利要求47所述的系统,其中,每个所述交换单元具有交 叉开关结构。
49. 根据权利要求47所述的系统,其中,所述交换单元以彼此并行 的关系设置。
50. 根据权利要求47所述的系统,其中,所述第一、第二和第三优 先级方案^:相同类型的优先级方案。
51. 根据权利要求47所述的系统,其中,通过在所述输入端口之间 选择,每交换单元、每输出端口地实现一个授权优先级方案。
52. 根据权利要求47所述的系统,其中,通it^所述输出端口之间 选择,每交换单元、每输入端口地实现一个接受优先级方案。
53. 根据权利要求47所述的系统,其中,通过在所述交换单元之间 选择,每输出端口、每输入端口地实现一个请求优先级方案。
54. 根据权利要求47所述的系统,其中,所述第一、第二和第三优 先级方案中至少一个是轮转、旋转优先级方案。
55. 根据权利要求47所述的系统,其中,待传送的所述数据是大小 可变的包。
56. 根据权利要求47所述的系统,其中,在大小可变的包使用所述 交换单元的一个从所述输入端口的一个被交换到所述输出端口的一个的 时间期间,优先级值4皮分配给所述交换单元的所述一个,以使其具有比最 低可接受的优先级值低的值,使得所述交换单元的所述一个不能用在随后 的用于从所述输入端口的所述一个传送包或信元的请求中,直到所述大小 可变的包已经完成到所述输出端口的所述一个的传送。
57. 根据权利要求56所述的系统,其中,在所述交换单元的所述一 个将大小可变的包从所述输入端口的所述一个传送到所述输出的所述一 个端口的时间期间,任何其它的所述输入端口能够使用所述交换单元所述的一个来传送包或信元。
58. 根据权利要求47所述的系统,其中,所述多个输入端口在数目 上对应于N,并且所述多个输出端口在数目上对应于M,并且,其中N 等于M。
59. 根据权利要求47所述的系统,其中,所述多个输入端口在数目 上对应于N,并且所述多个输出端口在数目上对应于M,并且,其中N 大于M。
60. 根据权利要求47所述的系统,其中,所述多个输入端口在数目 上对应于N,并且所述多个输出端口在数目上对应于M,并且,其中N 小于M。
全文摘要
一种用于交换机设备的调度包或信元的系统和方法,所述交换机包括多个输入端口、多个交换单元和多个输出端口,其中,每个所述输入端口都具有至少一个输入队列。由在其至少一个队列中具有包或信元的每个输入端口生成向对应的包或信元要发往的每个所述输出端口输出所述对应的包或信元的请求,其中,所述请求包括用于将包或信元从对应的输入端口传送到对应的输出端口的所述多个交换单元中的特定的一个交换单元,所述多个交换单元中所述特定的一个交换单元根据第一优先级方案被选出。每交换单元每输出端口地向作出的请求授权访问,所述授权基于第二优先级方案。每交换单元每输入端口地接受授权,所述接受基于第三优先级方案。基于所接受的授权,利用在接受的授权中标识的对应的交换单元,包和/或信元从相应的输入端口输出到相应的输出端口。
文档编号H04L12/56GK101099355SQ200680001820
公开日2008年1月2日 申请日期2006年1月5日 优先权日2005年1月6日
发明者雅各布·B·尼尔森 申请人:恩尼格玛半导体有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1