一种共享存储式ATM交换的同播实现方法 本发明涉及ATM交换技术,更具体地涉及ATM交换中的同播或广播实现方法。
ATM交换机实质上是一个能将输入端口中的信元,按照其路由标记发送到它所要求的输出端口的功能块。很多业务如视频分配业务,除了要支持点到点之间的通信外,还要支持点到多点的通信,即从某一输入端口来的信元需要在多个(同播)或所有(广播)输出端口输出。
采用共享存储式交换结构的ATM交换机,实现同播及广播的方法基本上可以分为三类:
1、输入复制法
根据同播信息,在输入端增设信元复制电路将输入信元复制多份(1,2…m,其中m为1<m≤n的整数),分别送往不同的目标输出端口。对于所有这些复制信元的每一个都要分配存储器地址,相同的信元在存储体中要存储多处,占用较多的存储器空间,增加了交换网络的负担。如图1所示。
2、输出插入法
如图2所示,当从共享存储器中读取一个同播信元后,根据同播信息打开各个输出端口的选择开关SEL。对于同播信元需要专门设置一个同播缓存器SB,给每个同播信息分配一个同播号,而且要增设同播路由表。当有同播信元输出时,屏蔽所有的输出缓存器OB1,OB2、...OBn的读取,优先让同播信元输出。这种方法需要附加存储器来缓存同播信元和同播信息,输出端口的电路增多,开销较大。
3、地址链控制法
图3所示为共享存储式ATM交换的过程,当信元到来时,先从空闲地址队列FAQ中取出一个地址Ad,一方面作为地址信号将信元写入存储体,另一方面将这个地址根据路由标记写入相应的地址队列AQn中,排队等待输出处理。输出处理时,从地址队列AQn中取出地址,作为存储体地地址信号将信元读出,送往对应端口,同时将这个地址交还给空闲地址队列FAQ。
如图4所示,当同播信元到来时,根据同播信息分配一个空闲地址置入相应的地址队列,将此信元分别输出到相应端口,直到最后一个同播端口完成后将地址交还给空闲地址队列。
这种方法克服了上述两种方法需要较多硬件的缺陷,但实现比较复杂,因要识别最后一个同播端口必须经历每个端口地址队列的不同排序,使整个判别过程变得相当困难。例如同播信元的地址在地址队列AQ1中位于队头,在地址队列AQ2中位于队尾,而在地址队列AQn中位于队列中间,同播信元的地址与非同播信元的地址交织在一起,由于交换速率很高,很难通过软件来判别同播是否完成,而用硬件实现需要记录同播次数和该地址出现次数,作比较后决定是否回交地址,当有多个同播信元时,硬件电路相应增加,其实现的技术难度则很高,同播完成后将该地址交回空闲地址队列FAQ的控制也变得颇为复杂。
为了克服这一系列缺陷,本发明的目的即为提供一种简单可行的地址链控制同播实现方法,为达此目的该方法包括以下步骤:
为每个端口设置专用的同播地址队列SAQ,作为最高优先级的地址队列;
当同播信元到达后,在每个同播地址队列中都写入同一个地址,另外附加一位指示位IB,用来表示在此队列中地址是否有效;
当从共享存储器中读取同播信元时,根据指示位IB来判决是否将此信元输出到对应端口。
从SAQ1到SAQn分时轮询每个端口的同播地址队列,进行同播处理。在最后一个物理端口处理完成后,将地址交回给空闲地址队列FAQ。
由于该地址在各个同播地址队列中的位置相同,轮询一周后该地址的同播处理必然已经结束,可以交回空闲地址队列FAQ。
由此可见,本发明实现同播的方法具有以下优点:
由于同播信元所使用的地址在同播地址队列SAQ1、SAQ2…SAQn中的相对位置相同,使将这个地址交回给空闲地址队列FAQ的控制变得十分简单,只需增加少量控制电路便可实现。下面结合附图说明本发明的一个实施例。
图1为说明第一种传统同播实现方法的示意图;
图2为说明第二种传统同播实现方法的示意图;
图3和4为说明第三种传统同播实现方法的示意图;
图5为应用本发明同播实现方法的一个实例的说明示意图。
图5示出了将本发明同播方法运用于ATM交换机的一个实例。
如图5所示,当同播信元到达时,交换控制电路SC根据路由标记的指示进入同播控制状态,从空闲地址队列FAQ中取出一个地址A′,将其写入所有的同播地址队列SAQ1...SAQn,同时将信元写入地址A′对应的存储体单元;同播地址队列附加一位指示位IB,如当IB为“1”时,表示地址有效,IB为“0”时,则表示地址无效,同播信元不去该端口,由于同播地址队列优先级最高,只有读完同播地址队列时才能去读取一般的地址队列AQ1...AQn,从存储体中读出同播信元时,在交换控制电路SC控制下按序读取同播地址队列SAQ1...SAQn的地址,作为存储体的读地址,取出同播信元的内容,这个同播信元根据IB来确定是否送往输出端口。由于同播地址在同播地址队列中的位置相同,所以在处理完第n个同播地址队列SAQn后,同播便告完成,可将地址交还给空闲地址队列FAQ。同播控制结束后,交换控制电路SC退出同播控制状态,转向处理一般的地址队列。这种方法实现起来既简单方便,又可靠有效。
所有端口的地址队列,包括同播地址队列和一般的地址队列,都用FIFO(先进先出)存储器来实现,同播控制只需增加少量控制电路,如优先级控制和轮询控制,并且同播地址队列所占用的FIFO存储单元可为原来地址队列的一部分,并不需要增加额外的存储器空间。
作为同播的一种特例,当同播端口数m等于n时,即为广播,同样可以适用本方法。
由于同播或广播业务并非一定是高优先级业务,所以将同播地址队列设为最高优先级不十分合理。为了克服这个缺点,可以在交换控制电路中增加一些功能,由同播地址队列的状态来触发同播处理功能,轮询一周,保证处理完一同播信元后及时回交地址。此时需要另增加一位指示位IE,“1”表示该端口为同播的最后一个端口,处理完后可以将地址交回给空闲地址队列FAQ。IB指示无效时,在同播控制状态下转向处理该端口一般地址队列的地址,而将该端口同播地址队 列的地址读出后“丢弃”;IB指示有效且IE为“1”时,则处理同播地址队列,且在处理完后将该地址交回空闲地址队列FAQ。同播地址队列处理时间和一般地址队列处理时间可以按比例分配,当同播地址队列为空时,处理时间全部分配给一般地址队列。这样,同播或广播就跟优先级没有关系了,但是控制电路会变得稍复杂一些。
尽管这种方法对处理效率有所影响,即对于不参与同播的端口也分配了处理时间,降低了总的处理效率。但由于同播的业务量小,这种处理效率的降低并不显著,以此代价换取同播控制的简单可靠,是值得和可行的。