专利名称::用于同步数据处理网络的系统和方法
技术领域:
:本发明涉及用于同步数据处理网络的系统及其方法。技术背景10未来的数据处理系统将会包括大量的模块。使用具有明确功能和良好定义的接口的模块有助于这种系统的快速发展。这种应用的一个例子是移动电话。模块例如是RF模块、差错编码/解码模块、信号编码/解码模块、用于在软件中实现各种用户定义的特征的通用处理器和用于从其他模块之间引导数据流的路由器或交换机。以网络的形式来15实现是有利的,因为网络可以较容易地縮放于任意规模之内。网络的交换机或路由器和其他模块可以在相互不同的芯片中结合。作为网络拓扑结构的可选项,模块可以在一个或多个总线上排列,或具有点对点的连接。在总线和网络拓扑中,各种数据流都可以共享两个模块之间的公共通信路径,也表示为链路。20现在,假设系统中的数据传输是以流的方式来安排的,也就是,数据是周期性地传输的。为了使各个流存在较少的问题,这些流应当相互独立,也就是,增加额外的流不应影响已有的流。如果系统中的所有模块都由完全相同的时钟来控制,则可能通过网络来安排传输(即,调度),这样不同流的数据不会在网络中冲突。25但是,在各种实际的情况中,所有的模块只是标称地使用相同的频率。该频率还可以由于温度引起的漂移而在时间上不同。这意味着,允许它们的实际频率值在给定的容差内(准同步链路)略有不同。或者换句话说,每个设备/交换机/发射机自身具有在频率误差范围之内的独立时钟。30长期这样会分别在较慢的交换机内(读取速率小于写入速率)或较快的交换机内(读取速率高于写入速率)引起缓冲器溢出/下溢,以及引起在共享相同链路的属于不同流的数据之间的传输冲突。能够通过在模块之间交换流控制消息来克服这些问题。但是,在功率消耗的方面,特别是当使用串行链路的时候,流控制消息的交换会消耗很大。5例如,考虑基于2.5GHz10b/8bPLL的串行链路。当该链路活跃时,或当在低功率模式后被激活时,该链路消耗功率。通常的激活时间是上千ns的数量级(例如,2000ns)。为了仅发送例如32比特(16ns)的流控制消息,链路将需要消耗2016ns的功率,该功率消耗太大。另一种已知的在US6026133中所描述的方法是使用中央参考时10钟,用来调整模块的快速本地时钟。该调整是通过控制压控振荡器的电压来实现的。但是,这种设置在每个模块中都需要锁相环,这使设计复杂了。
发明内容15本发明的目的是提供相对简单的用于操作系统的系统和方法,其中避免了缓冲器溢出/下溢,而不需要流控制消息。根据本发明,在如权利要求1所述的系统中实现该目的。该目的进一步在用于操作根据权利要求5的系统的方法中实现。在根据本发明的系统和方法中,整个系统中的数据传输速度适于20最慢的链路的速度。为此,以规律的间隔校正在所有模块中的本地时间,以补偿最慢的时钟/交换机/链路的差值。在这些间隔中,即在校正情况之间,可以在所有的链路上都进行数据部分的传输,该数据部分不超过指定的最大值。假设在物理链路上设置这种数据部分需要N个时钟周期。因此,在本地时钟的每N个周期之后,模块等待与该组25中其他模块的对齐。同步算法按如下进行在链路传输的初始化时,每个交换机计数N个时隙,并通过返回链路向它所有直接的活跃邻居发送它准备好的信号。时隙与本地时钟的时钟周期具有固定的关系。当交换机已经从它所有直接的活跃邻居接收到了准备好的反馈,并完成了自身的N个时隙的计数后,将再次开始计数N个时隙,并再30次当完成时,向它的邻居发出准备好的反馈。这个步骤将重复。这样,将以有效的方式避免在各个流之间的溢出/下溢或冲突。优选地,多个模块的时钟的周期时间最多相差平均周期时间的预定分数,以及预定数量的时隙的持续时间小于所述分数的倒数值。该分数是由时钟周期时间中的最大差值(AT)除以平均时钟周期时间(T)5来定义的。通过在T/AT之后执行时隙计数器的初始化,避免了一个模块会提供比其他模块所能处理的数据更多的数据。更优选的是,预定数量的时隙的持续时间大于倒数值的四分之一,并小于倒数值的四分之三。通过使用小于四分之三的持续时间,10避免了在所允许的容差内的偏移会立即引起溢出。比倒数比值的四分之一小的持续时间会引起较大的开销。惊讶的是,系统的每个模块并不需要被每个其他模块通知。在实施例中,根据本发明的系统具有如权利要求l所述的另一模块组,其中当所述组和所述另一组处于第二操作状态中时,来自所述组的子组15的模块通知来自所述另一组的子组的模块,以及当所述组和所述另一组处于第二操作状态中时,来自所述另一组的子组的模块通知来自所述组的子组的模块。同样在这种情况中,会避免发生数据业务的溢出/下溢。同样己知的重复采样策略可以用于对从另一个模块所接收的数20据进行重复采样。这种策略在US5644604中举例描述。结合附图对本发明的上述和其他方面进行更详细的描述。其中图1表示根据本发明的数据处理系统的第一实施例,25图2表示更详细的根据本发明的数据处理系统的第二实施例,图3表示根据本发明的方法,以及图4表示根据本发明的进一步的实施例。具体实施方式30图1示意性地表示了包括多个模块的数据处理系统。实施例所示的数据处理系统包括具有四个交换机SWl,SW2,SW3和SW4的网络。该网络交换机以类链状的方式排列,即SW1和SW2可以相互交换数据,SW2和SW3可以相互交换数据,SW3和SW4可以相互交换数据。数据交换信道以对称的块箭头来示意性地表示。网络交换机还与功能5模块?1^1,...^]/[8相连。每个模块都具有数据处理装置,例如,交换机具有数据路由和缓冲装置,功能模块提供了用于数学和逻辑运算、存储等的装置。为了清楚起见,图2更详细地表示了具有两个模块M1,M2的另一系统。尽管拓扑结构不同,对模块的更详细的描述也与图1的模块10相关。其中,模块具有相互独立的时钟CL1,CL2。在所示的实施例中,时钟是本地时钟发生器,但是,也可以是接收时钟信号的输入。该时钟用于对从一个模块到另一个模块的数据传输计时。如图2所示,每个模块Ml,M2都分别具有时隙计数器CNT1,CNT2,用于对传输数据可用的时隙的数量进行计数。在系统上电或重置时,计数器被初始15化为计数0。模块具有第一操作状态,其中所计数的时隙的数量小于或等于预定值。在该第一状态中,启用数据传输。数据与模块的本地时钟同步传输。本地时钟可以独立地传输,或嵌在数据中一起传输,例如在10b/8b编码中。模块具有第二操作状态,其中所计数的时隙的数量超过了预定值。在该第二操作状态中,禁用数据传输。20每个模块都具有通知装置,用于当该模块在第二操作模式时进行通知。在所示的实施例中,模块M1具有通知信号线路N12,模块M2具有通知信号线路N22。处理系统具有检测装置DET,用于检测是否有其他模块通知了它们处于第二操作状态中。在所示的实施例中,Ml,M2共用一个检测25装置DET。可替换地,每个模块都可以具有独立的检测装置。该检测功能可以例如是与门,如果两个模块都使用逻辑"l"来通知它们处于第二操作状态,则该与门发出逻辑信号"r。可替换地,该检测装置可以是或门,如果两个模块都使用逻辑"O"来通知它们处于第二操作状态,则该或门发出逻辑信号"0"。很清楚,检测装置可以从任意数量的模块30中接收通知信号。时隙计数器CNT1,CNT2具有重置输入RES,它与检测装置的输出端相连接。当有来自检测装置DET的信号指示每个模块都处于第二操作模式时,将时隙计数器初始化为0。这样,模块重新进入第一操作状态,并恢复数据传输。5图3示意性地表示了模块组之一的处理步骤。该组中的其他模块以相同的方式进行操作。在步骤S1,初始化计数器,以对时隙的数量计数。该时隙具有固定的大小,这与本地时钟的时钟周期有关。例如,该时隙具有时钟周期的分数、单个时钟周期或多个时钟周期的持续时间。10在步骤S2,在每个时隙执行数据是否可以传输给另一个模块的确定,以及如果是,则在步骤S3传输所述数据。可替换地,可以接收数据。尽管数据处于总是被传送给该组中的模块的第一位置,但是也还可以被传送至该组以外的模块。如果没有可用的数据,则在步骤S4中无传输地度过该时隙。15在步骤S5,在时隙过去之后,或在该时隙中的另一时刻,增加对该时隙的数量的计数。在步骤S6,确定所计数的数量是否超过了预定数量。如果没有,则该方法继续进行步骤S2。如果所计数的数量超过了预定数量,则在步骤S7通知该组的其20他模块。这可以例如由信号或消息来传送。在步骤S8,模块一直等待,直到该组中的其他模块都通知了超过预定数量。如果该组中的每个其他模块都通知了它己经完成了它的时隙周期,则该方法从步骤S1开始重复。25并不需要每个模块都从每个其他模块得到它处于第二操作状态的通知。对模块的时隙计数器的初始化依赖于来自与该模块直接通信的那些模块的通知便是足够的。例如,考虑图4所示的4个模块线性阵列。该实施例具有以下的通知依赖性模块M1通知模块M2,模块M2通知模块Ml和M3,模块M3通知模块M2和M4,模块M430通知模块M3。图4中的系统可以被认为是具有另一模块组M3,M4,其中当来自Ml,M2的组的子组M2的模块处于第二操作状态时,通知来自另一M3,M4的组的子组M3的模块,且当来自另一M3,M4的组的子组M3的模块处于第二操作状态时,通知来自Ml,M2的组的子组M2的模块。为了举例,假设模块M1具有较慢的时钟,并且5需要参考时钟的10个时间单位的处理时间来达到预定的时隙的计数,而其他模块只需要相同的参考时钟的9个时间单位。下表表示了在哪个时刻初始化该系统中的时隙计数器。<table>tableseeoriginaldocumentpage9</column></row><table>10在上表,可以看出,模块M1在IO个时间单位后发出通知,而其他模块在9个时间单位后发出通知。从通知依赖性的角度,模块M2等待模块Ml,并都在时间10初始化它们的时隙计数器。M3和M4在时间9初始化。从处理时间的角度,模块会在完成2的时候给出下—个通知。Ml在时间20处完成。由于M2等待M2的初始化,因此15现在M2在时间19完成。其他两个模块在时间18处完成。Ml的时隙计数器在时间20处初始化。M2的时隙计数器等待M1,也在时间20处初始化。尽管M3在时间18处发送了它自身的通知,但是只有在也接收到来自M2的通知的时间19时,才初始化它的时隙计数器。M4在时间18处完成,并在相同的时间从M3接收通知。因此,M420在时间18处初始化它的时隙计数器。在完成3这一行,表示了模块在哪个时间第三次达到第二操作状态。现在可以看出,模块M4不会立即重置它的时隙计数器,而是等待一个时间单位,因为它仍必须从模块M3接收通知。这样,对每个模块之间的数据业务被同步,从而避免了缓冲器的溢出/下溢。应当强调,本发明的保护范围并不限于在此所描述的实施例。系5统部分可以在硬件、软件或其结合中实现。本发明的保护范围也不受到权利要求中的附图标记的限制。单词"包括"不排除在权利要求以外的其他部分。部件前的单词"一个"不排除这些部件的多个。组成本发明的部分的装置既可以在专用硬件的形式中实现,也可以在编程的通用处理器中实现。本发明在于每个新特征或这些特征的结合。权利要求1、一种数据处理系统,包括至少第一和第二模块的组,其中每5个模块具有-数据处理装置,-时钟,用于对从所述模块到另一个模块的数据传输进行计时,-时隙计数器,用于对数据传输可用的时隙的数量进行计数,所述模块具有第一操作状态和第二操作状态,其中,第一操作状态中的时隙的数量的计数小于或等于预定数量,在该操作状态中启用数据传输,而第二操作状态中的所述数量超过了预定数量,在该第二操作状态中禁用数据传输,每个模块具有通知装置,用于当所述模块处于第二操作状态中时进行通知,所述数据处理系统具有检测装置,用于检测是否所有其他模块都已经通知了它们处于第二操作状态中,所述模块具有初始化装置,用于当所述模块处于第二操作状态,且每个其他模块都已经通知了所述其他模块处于第二操作状态中时,重置时隙计数器。2、根据权利要求1所述的系统,其中所述模块的时钟的周期时间最多相差平均周期时间的预定分数,以及预定数量的时隙的持续时间小于所述分数的倒数。3、根据权利要求2所述的系统,其中预定数量的时隙的持续时间大于倒数值的四分之一,并小于倒数值的四分之三。4、根据权利要求1所述的系统,具有如权利要求1所述的另一模块组,其中当来自所述组的子组的模块处于第二操作状态中时,通知来自所述另一组的子组的模块,以及当来自所述另一组的子组的模块处于第二操作状态中时,通知来自所述组的子组的模块。5、一种用于操作数据处理系统的方法,该系统包括至少具有相互独立的时钟的第一和第二模块的组,对于每个模块,所述方法包括以下步骤a.初始化计数器,用于对时隙的数量进行计数,b.在每个时隙,确定数据是否可用于向另一个模块传输,如果是,则传输所述数据,C.在每个时隙增加对于时隙的数量的计数,d.如果所计数的数量没有超过预定数量,则从步骤b重复所述方法,e.如果所计数的数量超过了预定数量,则将所计数的数量超过了预定数量通知给所述组的其他模块,f.等待,直到所述组中的其他模块通知超过预定数量,g.从步骤a重复所述方法。全文摘要根据本发明的数据处理系统,包括至少第一和第二模块的组,其中每个模块具有数据处理装置;时钟,用于对从一个模块到另一个模块的数据传输计时;时隙计数器,用于对数据传输可用的时隙的数量计数。所述模块具有第一操作状态和第二操作状态,其中第一操作状态中的时隙的数量的计数小于或等于预定数量,在该操作状态中启用数据传输,而第二操作状态中的数量超过了预定数量,在该第二操作状态中禁用数据传输。每个模块具有通知装置,用于当该模块处于第二操作状态中时进行通知。数据处理系统具有至少一个检测装置,用于检测是否其他模块都已经通知了它们处于第二操作状态中,且每个模块具有初始化装置,用于当模块处于第二操作状态,且每个其他模块都已经通知处于第二操作状态中时,重置时隙计数器。文档编号H04J3/06GK101147345SQ200680006809公开日2008年3月19日申请日期2006年3月1日优先权日2005年3月4日发明者埃瓦·赫克斯特拉-诺瓦卡,安德烈·勒杜列斯库,彼得·范登哈默,科内利斯·H·范贝克莱申请人:Nxp股份有限公司