用于网络处理引擎的周期高效的tdm时隙重新映射的制作方法

文档序号:7609972阅读:252来源:国知局
专利名称:用于网络处理引擎的周期高效的tdm时隙重新映射的制作方法
背景典型地,处理在串行链路(例如T1干线(trunk))上接收的数据的网络处理器执行对时分复用(TDM)时隙的聚集(aggregation)。时隙配置被用来确定每个干线帧的哪些TDM时隙被组合成“信道(channel)”。网络处理器还为每条信道聚集某些数量的数据帧,例如来自四个帧中每帧相同时隙的一个字节(byte)聚集成32位字(32-bit word)。对于给定帧,每条信道的数据可以包括“M”个时隙,其中M是信道大小或所述信道使用的时隙的数目。时隙配置使能在干线中多至N条独特的信道,其中N是干线上每个帧的时隙的数目(例如对E1来说为32,对T1来说为24)。
该网络处理器要求信道是“非重叠的(non-overlapping)”(或非交织的(non-interleaved)),即,指派给一条信道的时隙不会出现在属于另一条信道的时隙之间。例如,这样的配置将被支持,其中时隙0、1、2属于信道X并且时隙3、4、5属于信道Y,而这样的配置将不被支持,其中时隙0、2、4属于信道X并且时隙1、3、5属于信道Y。


图1是连网环境的框图,在所述连网环境中,系统被配置为在干线上以数字时分复用(TDM)串行数据流来传输和接收数据帧。
图2是(在图1的系统中)具有高速串行(HSS)接口和网络处理器引擎(NPE)的网络处理器的框图。
图3A是对包括非重叠信道数据的干线帧的描绘。
图3B是用于图3A中示出的非重叠信道数据的示例性基于信道的映射。
图4A是对包括重叠信道数据的干线帧的描绘。
图4B是用于由HSS接口聚集和写的重叠信道数据(图5A中示出)的示例性基于时隙的映射。
图4C是在被NPE重新映射之后用于已聚集的重叠信道数据(图4B中示出)的示例性基于信道的映射。
图5是时隙重新映射表的示例性格式。
图6是示出示例性重新映射过程的流程图。
具体实施例方式
参照图1,连网环境10包括连接到网络14的系统12。在示出的实施方案中,系统12通过成帧器16耦合到网络14。如所示出的,系统12可以是一些类型的用户端设备(CPE)或访问装置。在一个实施方案中,网络14可以包括公用电话交换网(PSTN)。系统12可以被配置为既支持语音应用又支持数据应用。成帧器16接收来自网络14的模拟数据,并且通过高速串行(HSS)链路20向系统12中的网络接口22提供多信道时分复用(TDM)数字流量。在一个实施方案中,如将要描述的,网络接口22被实现为网络处理器。
TDM流量包括形成帧的时隙序列。帧以采样率重复,并且每条信道占用连续帧中相同的一个或多个时隙。每一帧的时隙的数目基于使用的载体/标准,例如T1或E1干线。典型地,时隙对应于单个数据字节。在一个实施方案中,如本文所描述的,HSS链路20使用基于高级(high-level)数据链路控制(HDLC)的数据链路协议。
参照图2,网络处理器22包括至少一个高速串行(HSS)端口或接口30,例如支持诸如T1和E1的一个或更多个协议的接口。HSS接口30还可以支持其他协议,例如多供应商联合协议(MVIP)以及通用电路接口(GCI)。HSS接口30包括被示为接收(RX)FIFO 32a的缓冲区以储存接收到的帧数据,以及被示为传输(TX)FIFO 32b的缓冲区以储存流出数据。在示出的实施方案中,HSS接口30是被配置为执行接收处理线程(HSS-RX)34a和传输处理线程(HSS-TX)34b的多线程处理器。
网络处理器22还包括网络处理器引擎(NPE)44,以在HDLC帧上执行数据(例如层2)处理。NPE 44,同样为多线程处理器,使用至少一个线程来执行重新映射过程46,以及一个或更多个额外的线程来执行数据处理。数据处理线程(未示出)在信道上而不是时隙上操作。因此,如将要描述的,重新映射过程46被NPE 44用来提供对TDM数据的基于信道的映射,所述TDM数据由HSS接口30提供。
网络处理器22还包括被HSS接口30使用的HDMA缓冲存储器36,以及被NPE 44使用的NPE数据存储器38。HDMA缓冲存储器36包括RX HDMA缓冲区40a、40b以及TX HDMA缓冲区42a、42b。HDMA缓冲区在任何重新映射操作之前储存已聚集接收数据。以“乒乓(ping-pong)”方式使用缓冲区对,即,一旦第一缓冲区被HSS-RX线程34a填充并且被安排为对于NPE 44是可用的,则当NPE 44在第一缓冲区上操作时第二缓冲区被HSS-RX线程34a填充。NPE数据存储器38包括NPE缓冲区48,以储存已重新映射的数据和形式为时隙重新映射表51a的时隙重新映射信息50。如将要讨论的,时隙重新映射表51a被配置为在重新映射期间向NPE重新映射过程46提供输入。在NPE数据存储器38中还储存重新映射控制结构52,所述重新映射控制结构52储存以下项时隙重新映射表指针53;NPE缓冲区指针54;循环计数器56;以及改变表请求指示符58,所有这些被NPE重新映射过程(process)46使用。
网络处理器22还可以包括由参考号60指示的更高层处理支持和存储器。为了清晰起见,本文省略了NPE HDLC(数据)处理以及任何更高层处理的细节,因为它们与重新映射过程46无关。
如图2中所示出,时隙重新映射信息50还可以包括时隙重新映射表的第二、“影子(shadow)”拷贝,所述拷贝由参考号51b指示。时隙重新映射表51a是被NPE重新映射软件使用的活动(active)表。当影子表51b正被编程(可能耗费延长的时间段的动作)时,它被用来储存新的配置。当完整的新配置稳定并且准备好被使用时,NPE软件置位(set)(可以被实现为单个位的)改变表请求指示符58,来发信号通知NPE重新映射过程46,时隙重新映射表更新已经发生。
HSS接口30,更特别地,HSS-RX线程34a,通过将数据储存在“乒乓”RX HDMA缓冲区40a、40b中空的一个来为接收的数据(被储存在RX FIFO 32a中)提供服务。当RXHDMA缓冲区40a、40b中的一个为满时,HSS-RX线程或上下文(context)34a发信号通知NPE重新映射过程46运行。传输期间,当TX HDMA缓冲区42a、42b中的一侧为空时,HSS接口30发信号通知NPE重新映射过程46运行。HSS-TX线程34b从满的TX HDMA缓冲区42读取数据。典型地,数据在TX FIFO 32b中被缓冲,等待通过HSS链路传输到成帧器16。将意识到,HSS-RX和HSS-TX线程执行DMA功能并且可以被实现为硬件DMA引擎。
在示出的实施方案中,HSS接口30要求所有数据以字(4个字节)的形式在HSS接口30和NPE 44之间被交换。为了聚集四个字节,处理四个帧。将会理解,每帧的时隙数目和要被HSS接口与重新映射过程(总地来说,被称为“信道化”)处理的帧的数目是设计选择考虑的问题。在示出的实施方案中,每个RX(和TX)HDMA缓冲区的大小足以储存要被支持的(每帧)时隙数量的四(帧的数量)倍。
如在图3A中示出,接收的帧数据70可以包括具有N个时隙74的四个连续的帧72,每个帧包括非重叠(non-overlapping)信道数据。如果每条信道的数据被运载在一个时隙或多个相邻时隙中,则信道数据被称为非重叠的(或非交织的)。例如,如示出的,时隙0中的信道A数据之后紧跟着时隙1和2中的信道B数据,所述时隙1和2中的信道B数据之后紧跟着时隙3-5中的信道C数据,等等。HSS-RX线程34a针对每个时隙读取与四个帧等值的数据,并且为每条信道聚集所述数据。为了便于讨论,时隙0到5分别被字母J、K、L、M、N和P标识,并且用‘时隙’-‘帧号’来表示字节。
如果根据预先确定的时隙配置,信道被指派了多个相邻时隙,则仅关注非重叠信道数据的常规信道化技术将执行4个字节的聚集以及对信道数据的任何必要的组合。因此,在这样的信道化之后,信道A数据包括(J-0;J-1;J-2;J-3),信道B数据包括(K-0,L-0;K-1,L-1;K-2,L-2;K-3,L-3),并且信道C数据包括(M-0,N-0,P-0;M-1,N-1,P-1;M-2,N-2,P-2;M-3,N-3,P-3)。这样的信道化将由串行端口接口(例如HSS接口)执行。
图3B示出根据常规信道化过程,在每条信道的时隙数据针对给定帧(根据“信道的开始”或“SOC”指示符)被组合并且针对多个帧被聚集之后,用于信道A(由参考号76指示)、信道B(由参考号78指示)和信道C(由参考号79指示)的信道数据的基于信道的映射75。因为帧只包括非重叠信道数据,所以可以以每条信道的数据在时隙中被接收的次序组合和聚集每条信道的数据。然后,信道数据可以被串行端口接口直接储存在缓冲区(类似HDMA缓冲区)中,并且被安排为对于数据处理来说是可用的,所述数据处理要求数据根据信道进行组织。
然而,对于一些应用来说,按照非重叠信道来格式化帧过于严格。例如,可能服务提供商可以向用户分配非相邻的时隙来优化带宽的利用。因此,对于需要以这种方式接收数据的应用(例如ISDN连接上的语音数据)来说,期望在帧中对重叠(或交织的(interleaved))信道的支持。当信道数据是重叠或交织的时,指派给一条信道的时隙可能出现在属于另一条信道(或其他信道)的时隙之间(或者与属于另一条信道(或其他信道)的时隙交织)。重新映射过程46提供这样的能力。它使包括重叠信道数据的帧数据能够如同所述数据是在具有非重叠信道指派的帧中接收并且以常规方式(在信道化过程中)处理的那样(如之前参照图3A和3B所描述的)被呈递给NPE数据处理。
图4A示出包括四个连续帧82(具有N个时隙)的接收的帧数据80,在所述帧中不同信道的信道数据是交织的。在示出的实施例中,两条信道A和B被指派给交替的时隙。信道A的数据被指派给偶数时隙,并且与信道B相关联的数据被指派给奇数时隙。该两条信道的实施例是要作为交织的信道数据的简单实施例。当然,可以存在比两条信道更多的信道,并且每个帧还可以包括用于同一信道的相邻的时隙指派。因此,信道指派的模式可以包括例如‘ABAACCA’,其中,信道A数据出现在时隙0,2,3和6中,信道B数据出现在时隙1中,并且信道C数据出现在时隙4和5中。在该后一个实施例中,帧数据既包括交织的信道数据又包括非交织的信道数据。
为了处理重叠/交织的信道数据,HSS-RX线程35a将每个时隙作为单独的信道对待。在示出的实施方案中,它工作为通过将每个时隙识别为一个“SOC”来将时隙数据的每4个字节传递到RX HDMA缓冲存储器40。这导致用于每个时隙的四字节字。因此,该字包括四个连续帧的数据。在每一组四个连续数据帧被接收并且被HSS-RX过程处理之后,该过程向NPE 44提供HDMA信号,以指示RX HDMA缓冲区已经准备好由NPE 44进行处理。
图4B和4C示出在重新映射之前(图4B)信道数据的缓冲区内容(或映射)(由参考号90指示),和在重新映射之后(图4C)信道数据的缓冲区内容(或映射)(由参考号92指示)。更具体地,图4B示出当具有重叠信道数据的四个帧(在图4A中示出)被聚集并且被HSS_RX线程写到缓冲区中时,HDMA缓冲区的内容。因此,映射90代表对数据的基于时隙的映射。图4C示出被储存在HDMA缓冲区中数据被NPE 44的重新映射过程46重新映射之后NPE缓冲区的内容,因此代表对数据的基于信道的映射。
首先参照图4B,基于时隙的映射90包括针对每个时隙J、K、L、M、N和P(时隙0到5)已聚集数据(在该实施例中为字或4个字节)94。应该意识到,在该实施例中,在缓冲区中被支持的时隙数量为6。可以使用不同的时隙数量。如之前提到的,一旦缓冲区为满,HSS_RX线程34a向NPE 44发信号通知数据对于NPE 44的处理来说为可用的。当NPE 44接收到所述信号时,NPE重新映射过程46根据在活动时隙重新映射表51a中提供的重新映射配置来将数据重新映射到NPE缓冲区42中基于信道的映射。
现在参照图4C,再重新映射之后,NPE缓冲区42将所有信道A数据(即已组合或已聚集的信道A数据96)储存在一起,并且将所有信道B数据98储存在一起。在示出的实施例中,由重新映射过程46生成的基于信道的映射92储存3个字的信道A数据,之后紧跟着3个字的信道B数据。重新映射过程46将每个帧中每条信道的信道数据放在一起。因此,对于信道A,第一字包括来自帧0的(J-0,L-0,N-0)和来自帧1的(J-1)。第二字包括来自帧1的(L-1,N-1)和来自帧2的(J-2,L-2)。第三字包括来自帧2的(N-2)和来自帧3的(J-3,L-3,N-3)。对于信道B,第一字(缓冲区中的第四字)包括来自帧0的(K-0,M-0,P-0)和来自帧1的(K-1),第二字包括来自帧1的(M-1,P-1)和来自帧2的(M-2),并且第三字包括来自帧2的(P-2),之后紧跟着来自帧3的(K-3,M-3,P-3)。
参照图5,示出活动时隙重新映射表51a(以及影子拷贝51b)的示例性格式。时隙重新映射表51a包括“N”项100,每一项用于帧中N个时隙中的每一个。每个项100包括目的地址/偏移量字段102和增量值(偏移量)字段104。目的地址/偏移量字段102用于提供缓冲区位置的目的地址,四个已聚集信道数据字节中的第一个要被写入该目的地址。对于较小的字段,例如1-字节的字段,该值仅仅是加到已知基地址上的偏移量。如果使用较大的字段,例如2-字节的字段,则可能在该目的地址/偏移量字段102中储存实际的目的地址(基地址加上偏移量)。增量值字段104提供在储存给定时隙的额外的数据字节中要使用的额外的偏移量。这些字段的大小也是设计选择的问题。较大的字段大小以较多的存储器使用提供较少的处理周期(更好的性能),而较小的字段大小以较多的处理周期数量提供较少的存储器使用。
参照图6,(用于基于字的实现的)重新映射过程46的重新映射操作如下所述。一旦从HSS_RX线程接收(110)到(关于接收到4个数据帧的)HDMA信号,过程46开始,检查(112)时隙重新映射表控制结构来确定是否改变表请求位58(在图2中示出)被置位。如果过程46确定改变表请求位被置位,则过程46将“活动”和“影子”重新映射表(分别为51a、51b,也图2中示出)互换114,并且由此使用新的“活动”重新映射表执行重新映射操作。如果确定改变表请求位未被置位,则过程46使用时隙重新映射表的“活动”拷贝继续重新映射操作。
过程46通过初始化(116)HDMA缓冲区和时隙重新映射表指针(指针54和53,图2)以及循环计数器56(图2)开始重新映射操作。循环计数器56被编程为计数要被重新映射的时隙的数量。在图4和5A-5B中示出的实施例中,循环计数器56最大计数值将为6。更一般地,该数量与在已经被HSS接口填满的HDMA缓冲区中缓冲的时隙数量对应,(并且因此是缓冲区大小的函数)。
在循环计数器和指针的初始化之后,过程46从HDMA缓冲区中由HDMA缓冲区指针54指向的位置读取(118)4-字节的时隙值(“HDMA字节”)。它还从时隙重新映射表51a读取(120)用于该时隙的对应的项。过程使用已知的基地址和储存在该项的地址偏移量字段102中的地址偏移量计算(122)目的地址。(应该意识到,如果使用较大的项大小,并且在时隙重新映射表中可获得目的地址,则该计算是不必要的。)过程在目的地址处储存(124)HDMA字节的第一个。过程将(来自时隙项字段100的增量值字段104的)增量(或偏移量)值添加(126)到目的地址,以形成新的目的地址。然后,过程将HDMA字节的第二个储存(128)在该目的地址。过程将(来自增量值字段104的)增量(或偏移量)值添加(130)到目的地址,以形成新的目的地址。然后,过程将HDMA字节的第三个储存(132)在该目的地址。过程将(来自增量值字段104的)增量(或偏移量)值添加(134)到目的地址,以形成新的目的地址。然后,过程将HDMA字节的第四个(并且是最后一个)储存(136)在该目的地址。因此,对于字节数“m”,过程重复(通过将增量或偏移量值添加到当前目的地址)为下一个连续的字节更新目的地址并将该字节储存在该目的地址的处理任务“m”次。在已经处理了第一时隙的情况下,过程增加(138)指针(HDMA缓冲区和时隙重新映射表指针)和循环计数器。过程确定(140)是否存在更多的时隙要重新映射。该确定是基于循环计数器的当前状态的。如果存在更多的时隙要被重新映射,则过程返回118,以读取用于下一个时隙(HDMA缓冲区指针现在指向的时隙)的4-字节数据。否则,重新映射完成,并且过程终止(142)。
在干线上的帧的所有时隙都已经被重新映射之后,重新映射过程使用的NPE缓冲区48将包括根据在时隙重新映射表(如图5B中示出)中所指明的信道指派排序的时隙。然后,NPE的数据处理软件可以基于经过配置的信道大小和目的缓冲区中的信道起始地址处理这些信道的数据。
应该意识到,在传输方向上,重新映射过程46以相逆的方式工作,使用储存在NPE缓冲区48中的地址字节来(根据时隙重新映射表51a)确定每个字节所属的帧时隙。
因此,上面描述的重新映射机制提供在干线上支持重叠信道指派的能力。此外,它允许时隙-信道配置被“过程中(on the fly)”更改而不扰乱任何其他的时隙或信道。用于“过程中”表配置改变的途径允许时隙重新配置表改变,以与HDMA信号同步,保证重新映射操作以确定性的方式执行。
其他的实施方案落在所附权利要求书的范围内。例如,尽管示出的实施方案是软件实现,但是应该理解,为了更好的吞吐量性能,重新映射机制可以以硅片实现来实施。
权利要求
1.一种方法,包括接收在时隙中运载数据的连续的帧,所述时隙被指派给信道,从而所述信道的数据包括交织的数据;聚集来自预先确定数量的所述时隙中的每一个的连续帧的所述数据;以所述数据被聚集的次序,按时隙映射所述已聚集数据,以产生基于时隙的映射;以及重新映射所述基于时隙的映射中的所述已聚集数据,以产生基于信道的映射。
2.如权利要求1所述的方法,其中,在所述基于信道的映射中,所述信道的所述数据以所述数据被接收到的次序按信道被分组在一起。
3.如权利要求1所述的方法,其中,所述重新映射操作包括使用时隙重新映射信息来重新排序被储存在所述基于时隙的映射中的所述已聚集数据。
4.如权利要求3所述的方法,其中,映射操作包括将所述已聚集数据储存在第一缓冲区,并且其中重新映射操作包括根据所述时隙重新映射信息将被储存在所述第一缓冲区中的所述已聚集数据储存在第二缓冲区中。
5.如权利要求4所述的方法,其中,所述时隙重新映射信息包括表,并且所述表包括与帧中所述时隙中的每一个相关联的地址和增量值。
6.如权利要求5所述的方法,其中,重新映射操作包括以顺序的次序为每个时隙重新映射所述已聚集数据。
7.如权利要求6所述的方法,其中,为每个时隙重新映射所述已聚集数据的操作包括为所述时隙从所述第一缓冲区中读取已聚集数据的字节;根据所述表中的所述相关联的地址,确定所述第二缓冲区中的目的地址;将所述时隙的所述已聚集数据的首字节储存在所述第二缓冲区中所述目的地址处;按所述相关联的增量值递增所述目的地址;将所述时隙的所述已聚集数据的下一字节储存在所述第二缓冲区中所述已递增的目的地址处;以及重复递增和储存下一字节,直到所述时隙的所述已聚集数据的所有所述字节已经被储存在所述第二缓冲区中。
8.如权利要求7所述的方法,还包括维护所述表的两份拷贝,所述两份拷贝包括活动表和影子表。
9.如权利要求8所述的方法,其中,在为每个时隙重新映射所述已聚集数据的所述操作中使用的所述表是所述活动表。
10.如权利要求9所述的方法,还包括通过对所述影子表的修改,使能所述表的重新配置;以及提供所述表已经被重新配置的指示符。
11.如权利要求10所述的方法,其中,重新映射操作包括在从所述第一缓冲区中读取任何数据字节的操作之前,从所述指示符确定是否所述表已经被重新配置;以及如果确定所述表已经被重新配置,将所述影子表与所述活动表互换。
12.如权利要求10所述的方法,其中,所述指示符包括位,当所述位被置位时,所述位指示所述表的重新配置已经发生。
13.如权利要求1所述的方法,其中,所述连续帧是T1帧。
14.如权利要求1所述的方法,其中,所述连续帧是E1帧。
15.如权利要求1所述的方法,其中,所述数据遵循高层数据链路控制协议。
16.一种制品,包括储存介质,所述储存介质具有储存在其上的指令,当所述指令被机器执行时导致如下操作对于在被指派给信道的时隙中运载数据从而所述信道的数据包括交织的数据的连续的帧,聚集来自预先确定数量的所述时隙中的每一个的连续帧的所述数据;以所述数据被聚集的次序,按时隙映射所述已聚集数据,以产生基于时隙的映射;以及重新映射所述基于时隙的映射中的所述已聚集数据,以产生基于信道的映射。
17.如权利要求16所述的制品,其中,在所述基于信道的映射中,所述信道的所述数据以所述数据被接收到的次序按信道被分组在一起。
18.一种网络处理器,包括串行接口;具有多个执行线程的网络处理器引擎,所述网络处理器引擎耦合到所述串行接口;其中所述串行接口被配置为处理在时隙中运载数据的连续的帧,所述时隙被指派给信道,从而所述信道的数据包括交织的数据,所述处理操作包括聚集来自预先确定数量的所述时隙中的每一个的连续帧的所述数据,并且以所述数据被聚集的次序,按时隙映射所述已聚集数据,以产生基于时隙的映射;以及其中所述多个执行线程中的至少一个在执行期间工作为重新映射所述基于时隙的映射中的所述已聚集数据,以产生基于信道的映射。
19.如权利要求18所述的网络处理器,其中,在所述基于信道的映射中,所述信道的所述数据以所述数据被接收到的次序按信道被分组在一起。
20.如权利要求18所述的网络处理器,其中,所述连续帧是T1帧。
21.如权利要求18所述的网络处理器,其中,所述连续帧是E1帧。
22.如权利要求18所述的网络处理器,其中,所述数据遵循高层数据链路控制协议。
23.一种系统,包括成帧器,所述成帧器被调适为耦合到网络;网络访问设备,所述网络访问设备耦合到所述成帧器,所述网络访问设备包括网络处理器;并且所述网络处理器包括串行接口;具有多个执行线程的网络处理器引擎,所述网络处理器引擎耦合到所述串行接口;其中所述串行接口被配置为处理在时隙中运载数据的连续的帧,所述时隙被指派给信道,从而所述信道的数据包括交织的数据,所述处理操作包括聚集来自预先确定数量的所述时隙中的每一个的连续帧的所述数据,并且以所述数据被聚集的次序,按时隙映射所述已聚集数据,以产生基于时隙的映射;以及其中所述多个执行线程中的至少一个在执行期间工作为重新映射所述基于时隙的映射中的所述已聚集数据,以产生基于信道的映射。
24.如权利要求23所述的系统,其中,在所述基于信道的映射中,所述信道的所述数据以所述数据被接收到的次序按信道被分组在一起。
25.如权利要求23所述的系统,其中,所述连续帧是T1帧。
26.如权利要求23所述的系统,其中,所述连续帧是E1帧。
27.如权利要求23所述的系统,其中,所述数据遵循高层数据链路控制协议。
全文摘要
介绍用于重新映射信道数据的方法和装置。接收在时隙中运载数据的多个连续帧。所述时隙被指派给信道,从而所述信道的数据包括交织的数据。聚集来自预先确定数量的时隙中的每一个的连续帧的所述数据。以所述数据被聚集的次序,按时隙映射所述已聚集数据,以产生基于时隙的映射。重新映射基于时隙的映射中的已聚集数据,以产生基于信道的映射,在所述基于信道的映射中,信道的数据以所述数据被接收到的次序按信道被分组在一起。
文档编号H04L12/56GK1906871SQ200480041007
公开日2007年1月31日 申请日期2004年11月17日 优先权日2003年11月26日
发明者丹尼尔·博科沃斯基, 南希·博科沃斯基 申请人:英特尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1