用于atm业务的一种数据成形器的制作方法

文档序号:7580745阅读:397来源:国知局
专利名称:用于atm业务的一种数据成形器的制作方法
技术领域
本发明涉及ATM交换网,更具体地说,涉及根据峰值信元速率和可维持信元速率等参数对每条连接进行成形的ATM业务成形。
背景技术
数字数据通常以数据分组的形式经由分组交换网从一个用户传输给另一用户。在传输数字数据的一种标准方式中,数据分组经由虚通路通过网络进行交换。虚通路的产生是由于服务器经由一条服务器确定的通路通过交换网传送分组,以便满足对特定传输数据的数据业务要求。这种类型的一种系统被称为异步传递方式网(ATM)。
在ATM网中,用户应用把数据打包成被称作“信元”的数据块。每个信元是经由ATM交换网从一个用户应用传输给另一用户应用的一个数据段。ATM网通过一系列ATM交换机提供一条连接,一个用户应用可以通过它向另一用户应用传送信元。每条连接以一个峰值信元速率为特征,它是指每单位时间内可以通过一条给定连接传输的最大信元数目。ATM连接还以一个“可维持信元速率”为特征,它是指在更长的传输时间内可以维持的信元速率,而不是以“峰值信元速率”为特征的较短、突发性更强的传输。本领域的技术人员应能理解“峰值信元速率”和“可维持信元速率”,这些术语常用来表征ATM连接。
尽管ATM网可以采用各种不同的形式,但它们通常以互连路由器和其他与从网络中一点提供给网络中另一点的数据分组进行交换有关的硬件为特征。在ATM网的每台ATM交换机内,数据分组通过一个输入端口提供给一个输出端口。提供给每个输入端口的数据分组可能带有一个指示路由选择、即数据在ATM交换网内历经的虚通路连接的有关信头。在这种方法中,提供给一个输入端口的数据信元通过有关ATM交换机交换到一个输出端口,最后从ATM网中的交换机到交换机。
本领域的那些技术人员将能理解通过一台ATM交换机传送的分组必须经过用于分配优先级排序。也就是说,对于其中的每条可能连接,一个ATM网都具有受限的可维持信元速率以用于传输分组。如果多个用户应用正向ATM交换网提供在一条特定连接上传输的分组,提供给它的信元必须确定应首先在该连接上传送哪些信元。输入数据信元的这种优先级排序被称为“排队”。
已提出了若干种用于对通过ATM交换网的信元进行排队的方法,包括根据先入先出优先级排序方案对其排队。遗憾的是,这些方案没有考虑不同传输时隙内不同信元的相对重要程度。
发明概述本发明提供了一种在多个传输时隙内对信元优先级排序的方法,使得高优先级信元首先被传输。本发明考虑到未来时隙中的信元可能必须在较早一些的时隙中传输,以确保高优先级的所有信元能在其时限之前被传输。
因此,本发明把用于ATM传输的时隙视作一个时间窗口内的一系列时隙。该窗口长度固定,这样当传输来自一个时隙的信元时,另一时隙就被加到窗口的末端,以保持窗口长度内的时隙数不变。在每个时隙中,在一组信元和未来时隙中的那些可能需要在当前时隙进行传输的信元清单的范围内对该时隙内要传输的信元进行识别和优先级排序。也就是说,每个时隙内的信元清单可能优先于当前时隙内的优先信元,从而为了未来时隙中的信元而排挤当前信元。
附图简述通过仔细研究根据附图对发明当前优选示范实施例所作的更详细描述,将能更完整地理解和掌握本发明的这些以及其他目的和优点,其中


图1是一个指明了本发明成形器可能所处的位置的ATM交换网系统示意图;图2是根据本发明的一个示范实施例的信元时隙数据结构示意图;图3是根据本发明的一个信元时隙窗口在一个示范时刻的示范实施例;图4是本发明硬件的一种示范实施例示意图;图5是根据发明的一个实例方面处理时隙群的一种方法实例;图6是符合发明的一种时隙数据结构实例;图7是符合发明的另一种时隙数据结构实例;以及图8a-8d描述了本发明每种队列或清单类型的一种结构实例,包括图8a表示一个优先队列中的指针实例;图8b表示一个之前最佳清单(best-before list)中的指针实例;图8c表示一个由之前最佳清单构成的清单中的指针实例;以及图8d表示一个群队列中的指针实例。
当前优选实施例的详细描述图1中表示了与用户驻地12的一个用户应用进行通信的ATM网10。ATM网10包括若干ATM交换机13,每台交换机为提供给它的数据定义了一个输入端口和一个输出端口,该数据通过应用14来自用户驻地12或来自另一ATM交换机13。本发明提供了一个成形器,它对通过某台ATM交换机的数据信元进行优先级排序。图1表明可以安放成形器的可能位置在用户驻地12和ATM网10之间。具体地说,本成形器可以放在用户设备内(位置A),例如应用14中。另外,成形器可以与某台ATM交换机相连。例如,成形器可以作为一个独立单元就放在ATM交换机13的输入端口前(位置B)。另外,成形器可以作为一台独立设备紧跟在ATM交换机13的输出端口之后。或者,成形器也可以位于输入端口设备(位置C)或输出端口设备内(位置D)。在上述任意一种情况中,成形器读取通过一条ATM网连接传送的数据信元,并对信元进行优先级排序,以便传输。
图2说明了用于本发明一个示范实施例的数据结构。图2所示是一个时隙窗口20(时隙1、时隙2、时隙3...时隙n)。每个时隙表示一个时间段,在该段时间内,ATM交换网10为一个用户应用提供传输一个数据信元的机会。一个数据帧就定义为由若干数据信元组成。在这种意义上,本发明并不受限于某种信元结构,而可以是任意信元数据分组(或多数据分组)类型。
如图2所示,窗口20包括图2左上角的时隙1,它是用于在ATM交换网10上传输的当前时隙。也就是说,在下一传输周期内,在时隙1中被识别为立即传输的信息将接下来被传输。然后将传输时隙2中指定的信息,之后是时隙3,依此类推。通常,各时隙(时隙1、时隙2等等)包含要传输的优先信息的单个信元。
不过,在发明的本实施例中,时隙1包含将指导硬件或软件从时隙的两种不同的指定信元类型中选择一种的信息。时隙1中的第一种信元类型是信元的标准优先类型,它可以单独包含在时隙1中,或包含在排队装置的某个分类中。在时隙1中可被选择用于传输的第二种信元类型(代替第一种信元类型)是一个来自所谓的“之前最佳”信元清单的信元。图2的之前最佳清单和存储缓冲区由一个固定长度的专用存储区域构成。所示方法是为了强调发明的某些方面,但它并不是优选的存储区使用方法,因为它会产生大量空闲、未用的存储空间。或者,正如根据后续实施例作的描述,可以对缓冲区中包含的以上信息进行存储,或更为优选地则是进行链接,而不用提供空闲缓冲区。
图2中表示了用于时隙14的一个“之前最佳”清单实例。对于这个时隙,之前最佳清单24包括一个缓冲区集合26,其中最好含有信元标志(或是信元数据本身),它们可用于寻找另一缓冲区中的对应信元数据。这样的一种装置实例如图4所示,其中来自用户应用的数据信元被送给服务器45的信元输入41(或一个集中或分布式硬件或软件单元)。信元输入41被送给数据成形器42,后者根据以下段落描述的方式生成图2所示的时隙信息。成形器42使用RAM44以便临时存储时隙信息,其中包括以下所述的优先信元、之前最佳清单和指针。成形器42通常不包括信元数据信息本身,而只使用缓冲区地址以简化操作。实际信元数据在信元缓冲区43中提供,该缓冲区自信元输入41接收数据。成形器42为某个待传输的时隙提供一个信元地址,信元缓冲区43使用该地址来找寻信元数据本身,然后向ATM网12提供这一信元数据。
回到图2,时隙14的之前最佳清单中显示了八个信元标志。这八个信元标志位于缓冲区26中,缓冲区26的所有其他剩余地址为空。缓冲区26中非空位置的总数在之前最佳清单的信元数目位置被显示,本例中信元数目等于3,因为有八个非空信元。时隙14的之前最佳清单表明缓冲区26中指定的八个信元必须在时隙14中或之前传输。根据这一信息,显然由时隙14的之前最佳清单缓冲区26指定的八个信元必须从时隙6开始传输,以确保八个时隙到能在时隙14中或之前传输(14[完成传输的时隙号]-8[要以每时隙一个信元方式传输的信元数]=6[开始传输的时隙号])。
由于之前最佳清单24中的信息(八个信元必须在时隙14之前传输)只对时隙14可知,本发明包括一个清单,以便为前面的时隙提供时隙14中存在八个信元的知识。这就允许在时隙传输进程过远,以致于不能确保所有八个时隙在时隙14处的之前最佳时隙前得以传输之前,前面的时隙能使时隙14缓冲区26中的八个信元优先。为此,本发明包括在窗口20内每个时隙中的一个指针清单22。图2中表示了关于时隙6的一个指针清单实例22。指针清单包括用于窗口20内每个后续时隙的一个号码(即指针)。也就是说,对于时隙6,窗口20内从号码6往后直到时隙N的每个时隙在指针清单22中对应缓冲区位置上都将包含一个的非空号码。因此,图2所示用于时隙6的指针清单22在时隙位置1-5的信息为空,而在从时隙6到N的缓冲区位置中具有非空号码。图2中还表示出了用于时隙14所示情况的实际指针。也就是说,指针清单22在时隙14的缓冲区内包含一个等于6的指针。这就告诉时隙6它必须开始传输来自信元缓冲区26的信元,以便在之前最佳清单时限之前腾空信元缓冲区。
假定时隙1-5传输本身的信元,而不传输时隙14之前最佳清单中的任何信元,那么时隙6就成为时隙1,必须开始传输缓冲区26中的一个信元,以确保缓冲区26中的每个信元在时隙14的之前最佳时限到来前都能得以传输。不过大多数情况下,时隙1-5可以在时隙6来临之前传输信元缓冲区26中的一个或多个信元1-8。这时,被传输的信元将从信元缓冲区26中去除,时隙14之前最佳清单中的信元数将减1(即将从8减小到7),在时隙6的指针清单22中,关于时隙14的指针将变为时隙7(即从6到7),从而表明时隙7(而不是时隙6)需要开始传输缓冲区清单26中的信元,以确保在时隙14的之前最佳时限到来前传输清单26中的所有信元。
正如能从图2的说明中看到的那样,可以使前面的时隙知道需要它传输包含在未来时隙中的信元,以确保未来时隙中的信元在其时限之前得以传输。当然,如果当前时隙的指针清单22不要求传输后续之前最佳清单24中的信元,则可以传输当前时隙中的一个优先信元。下面将根据图3更详细地描述这一点。
成形器42可以包含如图3所示的数据结构。一个长度固定的时间窗口20被定义。该窗口代表从当前时隙到一个未来的信元时隙N的时间。作为一个实例,图3表明窗口中有四个时隙。每过一个信元间隔,该窗口就向前移动一步,从而包括另一后续信元时隙。
对于窗口中的每个信元时隙,都有若干队列与之相关。这些队列包含的指针指向在当前时隙中为传输而竞争的信元。队列根据优先级经过优先级排序,因此信元取自优先级最高的非空队列。当传输一个信元的时候,根据该连接的业务参数计算用于为该连接传输信元的新的最早时刻。这些参数是峰值信元速率、可维持信元速率和突发长度。用于计算新的最早传输时刻的一种公式实例如下最早时刻=max(A+TSCR-tauSCR+PHI,前一时刻+TPCR)其中,A是在每个信元之后更新的一个变量A=A+TSCR(A对于每个连接来说是独立的)前一时刻是传输该连接前一信元的时刻。
PHI是一个累积相位偏移。在该连接的每个信元之后更新PHI=PHI+MAX(0,前一时刻-A)以下是针对一个连接的参数(由微处理器写入)TSCR=以可维持信元速率发送的两个信元之间的时间tauSCR=对于SCR,可接受的与理想时刻的偏移(给出最大突发长度)TPCR=以峰值信元速率发送的两个信元之间的时间。
当必须传输一个信元以满足可维持速率的要求(这可以解释为该连接最小信元速率)时,这些参数还用于计算一个“之前最佳”信元时隙。用于该计算的一种公式实例为之前最佳=A+TSCR
图3中表示了本发明的一个实施例,其中在每个窗口20内提供四个时隙。每个时隙(时隙k,时隙k+1,时隙k+2和时隙k+3)配有三个优先缓冲区,用于该时隙中要传输的信元。因此,每个时隙(例如时隙k)带有一个特定的队列,例如优先级1、优先级2和优先级3。根据该队列,优先级1的信元显然要在优先级2之前传输,而优先级2的信元要在优先级3之前传输。同样在每个优先缓冲区内,可以对若干数目的信元进一步排队。例如,在时隙k中,为优先级1、优先级2和优先级3区域中的每个都提供了三个信元缓冲区(30a-30c)。在优先级1、优先级2和优先级3区域内和它们各自的缓冲区30a-30c内,都是由用户应用、服务器或提供优先级排序功能的其他硬件或软件来给时隙k分配供在时隙k中传输的所有信元。在优先级1-3的30a-30c位置上的信元中,有一个信元可以在时隙k中传输。因此,一旦选择了一个在时隙k中传输的信元,剩余的未传输信元就被转移到后续时隙位置(时隙k+1,时隙k+2等等)。因此,在优先级1、优先级2和优先级3区域内的信元是以从最高优先级到最低优先级的顺序传输的。
但是,优先信元可能由于本发明的之前最佳清单和指针清单而优先占据传输机会。因此,比如图3的时隙k中,只有在时隙k的之前最佳清单或指针清单区域中没有其他信元与优先级1区域中的信元Ac(缓冲区30b)发生传输冲突时,信元Ac才能送往信元缓冲区43,以便在ATM网上传输。信元c可以承受这种冲突,因为如图3所示,信元c被链接到时隙k+2的之前最佳清单中,从而要求时隙k+2传输信元c,而不一定要在当前时隙k(或时隙k+1)中传输。图2所示每个时隙中的之前最佳清单和指针清单正如根据图2所描述的那样。因此,如果时隙k的之前最佳清单包含一个信元(也就是说时隙k的之前最佳清单缓冲区30a-30c是处于非空),该信元将在时隙k中传输。如果时隙k的之前最佳清单为空,就将查询时隙k的指针清单区域,以确定是否必须在时隙k开始传输后续之前最佳清单中的信元,以确保在其之前最佳时限到来前传输这些信元。如图3所示,例如时隙k中的指针清单30b与时隙k+3相链接。如果时隙k+3具有一个包含四个信元项的之前最佳清单,时隙k,k+1,k+2和k+3将都用于传输这四项,以确保它们在其之前最佳时限到来前被传输。
在图3中,标记为″H″的缓冲区用于一个链接清单的头指针;标记为″C″的缓冲区用于信元;标记为″T″的缓冲区用于一个链接清单的尾指针。虚线代表条目之间的隐含关系,例如表中的一项是两种不同链接清单中的部分。
进一步说,时隙k优先级1区域30b中的信元c必须在时隙k+2之前传输,时隙k优先级3区域30c中的信元c必须在时隙k+3之前传输。
正如从图3可以看出,在每个时隙中传输信元不仅以通常由优先级排序硬件或软件提供的优先信元为基础,同时还以每个时隙内提供的之前最佳清单和指针清单为基础。还要注意时隙k的指针清单与时隙k+3是双向链接的,以便确保在时隙k+3的之前最佳清单包含三个以上信元项时,时隙k中的指针清单可以从时隙k+3的之前最佳清单中检索一个信元项。
如图3所示,本发明优先级排序成形器的操作执行以下步骤首先检查给定当前时隙的指针清单区域,以确定是否有任何后续之前最佳清单之中包含很多信元项,以致于必须在当前时隙中开始传输,从而确保在之前最佳时限到来前传输该之前最佳清单中的信元。当前时隙的指针清单表明没有这种情况,就查询当前时隙的之前最佳清单,以确定它是满还是空。如果是满,就传输当前时隙之前最佳清单中的剩余信元。如果是空,就传输在优先级1到优先级3缓冲区内优先级最高的信元,而优先级1到优先级3区域内的剩余信元则被转移到后续时隙中。
如上所述,对于窗口中的每个时隙都存在一个之前最佳清单。因此,当在最早可能时隙的队列中插入一个信元时,它可能与其他时隙中的其他清单具有某种隐含关系(即虚线)。
如图2和3所示,对于窗口中的每个时隙还存在一个指针清单。该清单包含到窗口内后续时隙的所有之前最佳清单的指针,其长度等于两个时隙之差。指针中所存储的时隙被称为用于之前最佳清单的起始时隙。在图2的实例中,时隙14的之前最佳清单有8个信元项。这样,就可以在该清单和图2所示位置6的一个清单项之间建立如图3所示的一条双向链路。
当一个信元到达成形器时,它被存放在一个虚通路(每条VC)队列中。如果该信元是队列中的第一项,如上所述,在时间窗口内的队列中安放指向它的一个指针。如果该信元不是队列中的第一项,那么在时间窗口内就已存在属于该连接的一个信元。在时间窗口队列中只能出现来自每条连接的一个信元。
当从时间窗口队列中传输一个信元的时候,指向该连接下一信元的指针就被插入。该信元应当插入队列开头,也就是使现有信元在时间上后移。
当传输一个信元的时候,之前最佳清单中的对应项被删除。该清单的长度将会因此减小,这意味着必须它的起始时隙向前移动一个时隙。
当传输一个信元的时候,该信元时隙中的剩余队列将与下一时隙的队列级联。级联是为了使移动后的队列被放在下一时隙同一优先级队列之前,即它的优先级要高于下一时隙的信元。这种处理是合理的,因为被移动的信元已错过它们的最早时隙,并且与其之前最佳时隙的距离近了一个时隙。
信元通常是从一个时隙上优先级最高的非空队列中取出的。但是,如果指向之前最佳清单的指针清单是非空的,就意味着从这个时隙往后d个时隙的距离,至少有d个信元必须在该时间之前传输,否则它们将错过之前最佳时隙。这种情况下,将从当前时隙指针清单中的该项指定的之前最佳清单中提取信元。当取出一个这样的信元时,正常窗口队列中的对应项就被删除。
偶尔,在当前时隙的之前最佳清单中可能存在一个以上的指针。这时,遗憾的是不能在之前最佳时隙到来前发出所有信元。在这些情况下,1)无法发出的信元被删除,2)未发送信元可以在之前最佳时隙之后发出,同时维持峰值信元速率(这意味着已引入了一个不可恢复的延迟),或3)未发送信元可以在之前最佳时隙之后发出,同时使后续信元偏离峰值信元速率,以恢复延迟。
之前最佳清单可能(在正常情况或低负荷情况下)会在窗口到达这些清单的起始时隙之前消失。它们只在紧急情况下被读取,以确保连接的可维持信元速率(或实际上的最小信元速率)。
本发明还考虑到扩展窗口长度,以作为对上述固定长度实施例的一种替换方法。例如对于突发性很强的低可维持信元速率连接,之前最佳时隙可能远在当前时间窗口之外。如果ABR连接根据MCR进行成形,也可能出现这种情况。为了解决这一问题,这些时隙可以组合成例如由128个时隙构成的群。这些群是固定的,也就是说它们不随时间窗口移动。每个时隙群有一个队列,其中存储了指向该群内被调度信元的指针。这些指针既可以是最早时隙,也可以是之前最佳项。当时间窗口移动并完全覆盖一个群时,该群队列中的信元被分配到窗口内的正确位置上。如图5所示,在每个信元间隔内,来自群队列的一个信元被安放在窗口内。一个群队列中的信元数可能(但很少)会大于群的长度(例如128)。这意味着当窗口移动到下一群上时,仍然有来自前一群队列的信元未被安置。这时,两个队列被级联,其中旧的队列在前。群队列的平均长度可能远远低于窗口长度。
当调度一个信元时,它被放在正确的群队列中,除非可以把它直接放在时间窗口内。大多数信元将被直接放在时间窗口内,但是一些之前最佳项可能在群队列中。不过,当发出信元时,一个之前最佳项被删除,因此群队列中的之前最佳项可能根本不用插入时间窗口队列中。
令群数等于时间窗口长度看来比较合理,因为对应的数据结构可能更容易定义。对于前面表示的附图,这将意味着512群128个时隙,即总共16k个时隙。在622Mbit/s速率下大约对应11ms,即一个信元或之前最佳时隙可以调度到未来的11ms,它对应的最低速率是34kbit/s。如果这还不够,通过定义例如由128个群组成的超群,可以在上一层采用同样的结构。当群窗口(大小为512*128)覆盖了这个超群时,超群队列中的信元可以放入群队列中。利用512个超群,可以把一个信元调度到未来的5.7s,它对应74bit/s。不过,在以下叙述中,没有定义超群。
成形器42可以使用两类数据结构1)窗口内每个时隙和每个群队列的数据(这种结构由时隙号寻址);2)每个信元的数据,即队列内的链接(这种结构由连接号寻址,因为表中只有每个连接的一个信元存在)。
另外,当计算最早和之前最佳时隙和保持用于该连接的信元链接清单时,还要用到针对每条连接的其他数据。例如,当建立一条连接时,微处理器(未表示)将在信道表中写入参数。
一种时隙结构如图6所示,并包含以下信息1.一个指向优先级队列中第一个信元的头指针。每个优先级队列有一个头指针,例如三种优先级。
2.一个指向优先级队列中最后一个信元的尾指针。每个优先级队列有一个尾指针,例如三种优先级。
3.指向时隙的之前最佳清单中第一个信元的头指针。
4.指向与当前时隙具有同一起始时隙的另一时隙的前一指针。如果该时隙是之前最佳清单中的第一个时隙,该指针指向起始时隙本身,这时指针中的一个专门标志被置位。
5.指向与当前时隙具有同一起始时隙的另一时隙的下一指针。如果该时隙是之前最佳清单中的最后一个时隙,该指针指向起始时隙本身,这时指针中的一个专门标志被置位。
6.指向当前时隙的起始时隙的起始时隙指针。起始时隙位置比当前时隙早“n”个时隙,其中“n”是该时隙之前最佳清单的长度。
7.起始时隙是当前时隙时指向第一个时隙的之前最佳头指针。
8.指向群队列中第一个信元的群头指针。(最后一项与时隙并没有绝对关系,把它放在这里是出于实用考虑,可视为一个独立结构)。一种信元结构实例如图7所示,它包含以下信息1.指向被链接到同一优先级队列中的一个信元的前一指针。如果该信元是队列中的最后一个,该指针指向优先级队列,这时指针包含一个专门的标志(例如一个专门比特被置位)。如果信元存储在一个群队列中,它指向该队列中的前一信元。
2.指向被链接到同一优先级队列中的一个信元的下一指针。如果该信元是队列中的第一个,该指针指向优先级队列,这时指针包含一个专门的标志(例如一个专门比特被置位)。如果信元存储在一个群队列中,它指向该队列中的前一信元。
3.指向被链接到同一之前最佳队列中的一个信元的前一之前最佳指针。如果该信元是队列中的最后一个,该指针指向这样的时隙结构,这时指针包含一个专门的标志(例如一个专门比特被置位)。如果信元存储在一个群队列中,它指向该队列中的下一信元。
4.指向被链接到同一之前最佳队列中的一个信元的下一之前最佳指针。如果该信元是队列中的第一个,该指针指向时隙结构,这时指针包含一个专门的标志(例如一个专门比特被置位)。如果信元存储在一个群队列中,它指向该队列中的下一信元。
5.指向该信元对应的之前最佳时隙的之前最佳时隙指针。
6.一个时间优先级队列值。在将一个连接放在一个群队列中时,使用它。该时间值表示当该连接从群队列中移出时,应该存储它的优先级队列(以及其时隙号)。
7.一个时间之前最佳值。在将一个连接放在一个群队列中时,使用它。该时间值表示当该连接从群队列中移出时,应该存储它的之前最佳清单(及其时隙号码)。
图7所示的时隙结构可以有两次不同机会放入群队列中。首先,如果它的之前最佳时隙超出了当前窗口,对该信元排队。其次,如果优先级队列超出了窗口,对该信元排队。群队列指针中的一个专门标志比特指示该指针指向的信元应当被插入一个优先级队列还是一个之前最佳清单中。
图8a-8d表示如何构成每种队列或清单类型。
图8a表示一种格式类似于图6说明和描述的时隙结构80。时隙结构80中包括一组信元结构82-84,例如根据图7说明和描述的结构。图8a说明了时隙结构80内可能存在的指针,具体是在一个优先级队列,例如图3的优先级1、优先级2或优先级3中。例如,图8a还表示了图3优先级1队列,其中每个信元结构82-84对应优先级1队列中的缓冲区位置30a-30c。如图3所示,信元缓冲区30a与信元缓冲区30b和30c相继链接,最终到达时隙k的头和尾位置。相应地,图8a中说明了这些指针的细节。具体地说,每个信元结构82-84中的前一位置与时隙结构80的尾1位置链接,信元结构82-84中的下一信元位置与时隙结构80的头1位置相继链接。当然,如果图8a的信元结构82-84对应图3的优先级2位置,那么信元结构82-84的前一和下一位置将与时隙结构80的头2和尾2位置链接,而不是所示的头1和尾1位置。因此图8a表示了在图3窗口20内一个时隙的一个优先级队列中存在的g类型。
图8b说明了在一个时隙的之前最佳清单,例如图3中存在的指针。如图3所示,时隙k有一个之前最佳清单,其中信元位置30a、30b、30c彼此链接并接到时隙k的头指针。相应地,图8b说明了时隙结构90(对应时隙k)和信元结构92-94,后者可以对应图3的信元位置30a-30c。图8b的信元结构92-94包括指定前一之前最佳清单和下一之前最佳清单的缓冲区位置,这正如上面根据图7所作描述。如图8b所示,信元结构92-94的这些前面的之前最佳部分相继链接在一起,同时还被链接到时隙结构90的之前最佳清单尾部。在信元结构92-94的下面的之前最佳部分到时隙结构90的之前最佳标志头之间也存在指针。图3中根据参考信元30a-30c和时隙k的“h”指针表示了对应的设置和指针。正如图8b也表示的那样,每个信元结构92-94带有用于其对应的之前最佳时隙的标志,这些之前最佳时隙包括到时隙结构90的单向指针。
图8c说明了在一个由之前最佳清单构成的清单中表示指针的时隙结构100。在每个时隙k到k+3的底部还为每个时隙表示了与之前最佳清单对应的指针清单。在图8c的例子中,时隙结构100对应于时隙k,缓冲区30a-30c包含时隙结构102-104。如图8c所示,时隙结构102-103包含前面和下面位置,前面位置与时隙100的之前最佳头指针链接,时隙结构102-104的下面位置也相继与时隙100的之前最佳头指针链接。另外,时隙结构102-104的每个起始时隙与时隙100单向链接。在图3中指向之前最佳清单位置30a-30c的指针清单和时隙k之间可以看到对应的指针。
最后,图8d说明了一个图5所述群队列中的指针。在图8d中,时隙结构110有一个从群头位置到信元结构114的下一位置的指针,后者又与信元结构113的下一位置链接。信元结构112通过各信元结构的前一位置和各信元结构的下一之前最佳清单位置与信元结构113链接。最后,信元结构113通过前一之前最佳清单位置指向信元结构114。
信元结构112-114被选择用于代表一个时隙群中信元与其位置关系的三种不同类型。信元结构112是带有时隙群中的一个优先级队列的信元。它的时间优先级队列表示该信元应该被插入哪个队列。
信元结构113是带有处于时隙群中的一个之前最佳时隙的信元。它的之前最佳时间表示该信元应该被插入哪个队列。
信元结构114是带有位于时隙群中的一个优先级队列的信元。它的时间优先级队列表示该信元应该被插入哪个队列。
在一个优选实施例中,指向群队列各项的指针带有一个专门比特,它表示下一信元结构应当放在一个优先级队列还是一个之前最佳清单中。
尽管在图8a-8d中单独表示了时隙80、90、100和110,这些时隙显然可以是带有所示指针(或附加指针或链接)的同一时隙。为了简便和清晰地描述时隙功能,单独给出了图8a-8d。
重新参考图2,现在就可以理解在每个传输周期中一个时隙将为一个信元提供传输。在任何信元时隙的传输周期中,成形器对这些信元传输进行优先级排序和排队。成形器42可以进行以下操作a)接收来自交换网12或用户驻地的一个信元(连接的第一个信元),并把它调度到一个最早和之前最佳队列(或一个群队列)中;b)读取要发送的下一信元,并调度同一连接的下一信元;c)从群队列中移出一项或两项到窗口内的正确队列中。
下面将更详细地描述这些操作。a)接收来自交换机的一个信元当收到一个信元的时候,成形器首先确定在调度的队列中指定连接是否已经存在。它通过检查前一指针来进行,即零指针(具有一个保留值的指针)表明该连接在调度器中没有信元。如果连接存在,该信元被放在一个VC队列(该队列在所示数据结构中没有表示)末尾。
如果连接不存在,成形器计算一个优先级队列和一个之前最佳时隙(根据连接的业务参数,例如PCR、SCR、最大突发长度等等)。
如果优先级队列在窗口内,在优先级队列的末尾插入该信元结构(指针被写入和改变)。如果优先级队列在窗口之外,该信元结构被插入包含正确时隙的群队列开头。指向该结构的指针将表示它应该插入一个优先级队列。
如果之前最佳时隙在窗口之内,则该信元结构被插入之前最佳时隙处的之前最佳清单的末尾。这意味着该清单的长度增加,所以必须调整它的起始时隙。之前最佳清单被从bb-清单的当前清单中删除(使用下一-BB和前一-BB指针)。然后在下一更低时隙的bb-清单的清单末尾插入之前最佳清单。这是通过使用起始时隙指针、并将其减一而找到的。如果之前最佳时隙在窗口之外,信元结构被插入包含正确时隙的群队列开头。指向该结构的指针将指示它应该被插入一个之前最佳清单。b)读取要发送的下一信元在应当发送一个信元的时候,成形器首先确定当前时隙处BB-清单的清单是否为空(BB-头指针应被设置为零指针值)。
如果为空,选择最高的非空优先级队列并读取第一个信元项(使用头指针)。来自对应的VC队列的一个信元被发送。该信元项被从优先级队列和之前最佳清单中删除。之前最佳清单长度将减小,这意味着必须根据与存储一个信元项时相同的方法改变起始时隙。当之前最佳时隙在一个群队列中时,该信元项可能只是从群队列中删除。
如果BB-清单的清单是非空,就从bb-清单指向的位置取出一个信元。该信元项被从bb-清单中删除,起始时隙按照如上所述的方法进行调整。该信元也要从它所属的优先级队列中删除。
如果在一个bb-清单的清单中有几个之前最佳清单,就不可能在之前最佳时间到来前腾空所有清单。这时,只能晚一点发送一些信元,并应该向控制成形器的微处理器发出一条警告。
当信元已被送出时,成形器确定在VC队列中是否还有信元。如果有,将根据与收到来自交换核心的一个信元时相同的方法把该连接的一个新信元项引入队列。
如果VC队列中已没有信元,前一指针被设为零(用于指针的一个专门值)。c)从群队列中移出一项当窗口移动并覆盖一个完整的时隙群时,存储在群队列中的信元项被读取并插入正确的优先级队列和/或之前最佳清单。信元项指针中的一个标志表示该信元应该插入哪种类型的队列。每个时隙读取一项或两项。群队列的长度可能要比时隙群的长度小得多,因此在时限之内无法腾空群队列的可能性很小。如果发生这种情况,应当通知微处理器。d)使用成形器控制最大交换机延迟上述成形器结构可用于控制每个信元通过交换机的最大延迟。为此,每个信元在从外部链路进入交换机时必须打上时间标记。时间标记是被分配给所有交换机输入端口的一个时隙计数器值。一个交换机输入端口终接一条外部链路、提取信元、将其缓存并通过交换机构把它们传送给成形器所在的交换机输出端口。
当一个信元到达成形器时,它已经历了与当前缓冲状态有关的一定延迟。当应当计算一个之前最佳时隙的时候,读出信元的时间标记并在时间标记上附加上该连接的最大允许延迟。结果就是之前最佳时隙,通过这种方法,可以控制通过交换机的最大延迟。
尽管已根据当前被认为是最实用和优选的实施例描述了发明,但是应当理解发明并不限于所揭示的实施例,相反,发明将覆盖在所附权利要求的精神和范围之内的各种改动和等效方法。
权利要求
1.一种ATM设备,包括一个输入端,用于接收信元,该信元作为到交换网连接上的输出时隙进行传输;成形器,用于为每个信元计算最早信元时隙和之前最佳信元时隙,并且至少部分地根据所述最早信元时隙和所述之前最佳信元时隙之间的距离对所述每个信元排队;一个端口,用于根据排队在输出时隙中输出信元。
2.根据权利要求1的ATM设备,其中成形器还要根据预定的信元时隙窗口长度进行所述计算和排队。
3.根据权利要求1的ATM设备,其中端口每次输出一个输出时隙时,在信元时隙的窗口长度内添加一个新的信元时隙。
4.根据权利要求1的ATM设备,其中成形器根据用于所述每个信元对应的一个交换网连接的峰值信元速率计算之前最佳信元时隙。
5.根据权利要求1的ATM设备,其中成形器根据用于所述每个信元对应的一个交换网连接的可维持信元速率计算之前最佳信元时隙。
6.根据权利要求1的ATM设备,其中成形器根据用于所述每个信元对应的一个交换网连接的可维持信元速率计算之前最佳信元时隙。
7.根据权利要求2的ATM设备,其中成形器在信元时隙的窗口长度内安放之前最佳信元时隙和最早信元时隙。
8.根据权利要求2的ATM设备,其中成形器保留信元时隙的窗口长度内每个信元时隙的之前最佳清单,每个信元时隙的之前最佳清单包括计算出的对于所述每个信元时隙中每个信元的之前最佳信元时隙,所述成形器链接所述每个信元时隙中的信元与计算出的之前最佳信元时隙。
9.根据权利要求8的ATM设备,其中成形器保留信元时隙的窗口长度内每个信元时隙的指针清单,每个信元时隙的指针清单包括到信元时隙窗口长度内所有后续之前最佳清单的指针。
10.根据权利要求1的ATM设备,其中成形器为信元时隙窗口长度内的每个信元时隙分配一个指定的时隙号码,当前信元时隙的指定时隙号码为一,每个后续信元时隙的指定时隙号码按一逐渐递增,直至信元时隙窗口长度内的最后一个信元时隙;成形器根据在所述每个信元时隙的之前最佳清单中的当前信元数来为信元时隙窗口长度内的每个信元时隙分配一个指定的信元数目;以及成形器保留由指向信元时隙窗口长度内所有后续信元时隙的指针所组成的指针清单,指针通过以下的减法来计算从与信元时隙窗口长度内所述每个后续信元时隙相对应的时隙号码中减去与信元时隙窗口长度内所述后续信元时隙的之前最佳清单中包含的信元数相对应的信元数目。
11.一个存储区,包括具有从1到N的相关信元时隙号码的一系列ATM信元时隙,这些号码对应于在一个信元时隙窗口中所述信元时隙的传输时间位置;每个所述信元时隙包括一个最早可能清单,包含指明在所述信元时隙中或之前优先传输的信元的信息,一个之前最佳清单,包含指明在所述信元时隙中或之前要求传输的信元的信息,并包含与之前最佳清单所含信元数相等的一个信元数目,以及一个指针清单,包含在所述传输时间位置中与后续时间上所有信元时隙相对应的信息,所述指针清单信息包括用于所述每个后续时隙的一个指针,它等于从所述后续信元时隙的时隙号码中减去所述后续信元时隙的信元数。
12.一种方法,包括接收信元,该信元作为到交换网连接上的输出时隙进行传输;为每个信元计算最早信元时隙和之前最佳信元时隙,和至少部分地根据所述最早信元时隙和所述之前最佳信元时隙之间的距离对所述每个信元排队;根据排队在输出时隙中输出信元。
13.根据权利要求12的方法,其中根据预定的信元时隙窗口长度执行计算和排队步骤。
14.根据权利要求13的方法,还包括步骤在所述端口每次输出一个输出时隙时,在信元时隙的窗口长度内添加一个新的信元时隙。
15.根据权利要求12的方法,其中根据用于与所述每个信元相对应的一个交换网连接的峰值信元速率来执行计算之前最佳信元时隙的步骤。
16.根据权利要求12的方法,其中根据用于与所述每个信元相对应的一个交换网连接的可维持信元速率来执行计算之前最佳信元时隙的步骤。
17.根据权利要求12的方法,其中根据用于与所述每个信元相对应的一个交换网连接的峰值信元速率和可维持信元速率来执行计算之前最佳信元时隙的步骤。
18.根据权利要求13的方法,还包括步骤在信元时隙的窗口长度内安放之前最佳信元时隙和最早信元时隙。
19.根据权利要求13的方法,还包括步骤保留信元时隙的窗口长度内每个信元时隙的之前最佳清单,每个信元时隙的之前最佳清单包括计算出的对应于所述每个信元时隙中每个信元的之前最佳信元时隙,并链接所述每个信元时隙中的信元与计算出的之前最佳信元时隙。
20.根据权利要求19的方法,还包括步骤保留信元时隙窗口长度内每个信元时隙的指针清单,每个信元时隙的指针清单包括指向信元时隙窗口长度内往后的所有之前最佳清单的指针。
21.根据权利要求20的方法,还包括步骤为信元时隙窗口长度内的每个信元时隙分配一个指定的时隙号码,当前信元时隙的指定时隙号码为一,并且每个后续信元时隙的指定时隙号码按一逐渐递增,直至信元时隙窗口长度内的最后一个信元时隙;根据在所述每个信元时隙之前最佳清单中的当前信元数来为信元时隙窗口长度内的每个信元时隙分配一个指定的信元数目;以及保留由指向信元时隙窗口长度内所有后续信元时隙的指针所组成的指针清单,指针通过以下的减法来计算从与信元时隙窗口长度内所述每个后续信元时隙相对应的时隙号码中减去与信元时隙窗口长度内所述后续信元时隙的之前最佳清单中包含的信元数相对应的信元数目。
22.根据权利要求1的ATM设备,还包括优先队列,它包含用于传输的优先信元,其中所述成形器确定是否有任何之前最佳信元时隙为当前时隙,然后选择来自所述优先队列中的一个优先信元或与指定所述当前信元时隙的所述之前最佳信元时隙相关的信元作为输出。
23.根据权利要求22的ATM设备,其中所述成形器保留与对应的信元时隙相关的之前最佳清单,这些时隙包括当前信元时隙和预定数目的后续信元时隙,每个之前最佳清单指定在对应信元时隙之前要传输的信元,其中a)当所述成形器选择与指定所述当前时隙的之前最佳信元时隙相关的信元时,从所有之前最佳清单和优先队列中删除所述被选信元。
24.根据权利要求23的ATM设备,其中b)当所述成形器选择来自所述优先队列的优先信元时,从所有之前最佳清单和优先队列中删除所述被选优先信元。
25.根据权利要求22的ATM设备,其中所述成形器还保留关于预定数目的后续信元时隙之前最佳清单的一个清单,其中,当从指定的之前最佳清单中删除一个信元时,从之前最佳清单的当前清单中删除这一指定的之前最佳清单,并将其插入之前最佳清单的后续清单中。
26.根据权利要求2的ATM设备,其中所述成形器还要把输出时隙群固定到时隙群中,并暂时保留那些落在时隙群内但处在信元时隙窗口长度之外的信元,直到窗口长度覆盖所述被暂时保留的信元,这时所述成形器就对所述被暂时保留的信元进行排队。
27.根据权利要求1的ATM设备,其中成形器保证输入和端口之间的一个确定的最小延迟。
全文摘要
发明提出了在传输时隙内对ATM信元优先级排序的一种方法和装置。本发明取出已由传统优先级排序电路排过序的信元,并为其加上关于需要在当前时隙中开始传输信元的信息,以确保能够全部及时传输必须由一个未来时隙传输的信元清单。如果没有未来时隙的信元清单要求当前时隙立即传输,则将传输来自标准优先缓冲器的一个信元。另一方面,如果一个后续时隙包含的项数太多,使得必须在当前时隙中传输它的一个信元以确保清单中的所有信元能在其时限前传输,来自后续时隙清单中的一个信元将取代当前时隙的标准优先信元被传输。
文档编号H04L12/56GK1269937SQ9880900
公开日2000年10月11日 申请日期1998年6月25日 优先权日1997年7月11日
发明者G·维克伦德 申请人:艾利森电话股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1